微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:可综合的verilog代码的若干问题

求助:可综合的verilog代码的若干问题

时间:10-02 整理:3721RD 点击:
用verilog写可综合代码,综合后发现功能不对了。想请教一下:
1 可综合的verilog代码中,可以有不同的敏感信号吗?比如可以有多个always语句,有的敏感列表里是时钟上升沿有的是时钟下降沿吗?可以这样吗:
   always @(posedge clk)
     .
     .
     .
always @(negedge clk)
    .
    .
    .
2  可综合的verilog代码中,状态机的编写要注意哪些方面?我综合后的网表再仿真得到的结果不对,很大部分的原因是状态机没有按照预想的工作。不知道可综合的状态机的编写是不是有些我没注意到的地方。
3 可综合的verilog代码中,如果想要初始化,怎样做?因为在综合时,不认initial语句,怎样绕过initial语句做初始化呢?

1. 当然可以,但是不能驱动同一个触发器。
3. 用复位信号啊。

谢谢 挺有启发的

1.在同一個設計裏面可以用正緣or負緣觸發,就像你寫的例子   不過不建議,因為你的思緒更容易亂了,要不就通通正緣,要不就通通負緣,這樣好點,而且時序更緊了,以後用100Mhz設計的,正負緣都用的話    快等同在設計200 Mhz的設計了
2 state machine的寫法沒啥要顉,通常是設計一個combination logic來實現你的狀態機,然後再用一個flip-flop去鎖即可
例如:always @(posedge clk or negedge nrst)
begin
          if(~nrst)
              current_state <= idle;
        else
               current_state <= next_state;
end
always @*
begin
       case(current_state)        
           begin
               (next_state的程式碼)        
           end
end
這麼說也許蠻空洞的,把你的code貼上來給人家看看,會有更大的收獲
3可綜合的code請善用reset or nreset信號來初始化就像第一個例子所舉的

4楼强大

学习4楼

4#说的比较有道理。

学习消化一下。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top