verilog快速掌握之程序设计

2020-02-17 19:51发布

明德扬设计规范对电路设计做了较高的要求,其目就在于用最简单的代码、最简洁的方式,设计出最易读、最健壮、最高效的Verilog代码。

看过FPGA代码的同学,应该能够发现代码里基本上就是always语句和assign语句,这些就是FPGA的程序。

为了方便同学们学习,明德扬要求同学们只用以下两种结构,即always@(*)和always@(posedge clk  or negedge rst_n )两种。

1)组合逻辑写法

       always@(*)begin

           语句

       end

2)时序逻辑的写法---异步复位时序电路

always@(posedge clk  or negedge rst_n )begin

     if(rst_n==1’b0)begin

         语句   

     end

     else begin

         语句

     end

end



注意,结构是固定的,您所能做的,只是补充“语句”那些行的内容。

组合逻辑的敏感列表是“*”,一定要这个,没有其他可能。always@(a,b,c)是不允许的。

时序逻辑的敏感列表是“posedge clk  or negedge rst_n”,一定是时钟上升沿;一定是时钟信号,绝对不能是非时钟信号;一定是复位下降沿;一定是复位信号,不能是非复位信号。例如这样是不允许的always@(posedge a or negedge rst_n),其中a不是时钟信号。always@(posedge clk or negedge clk)更加不可以。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。