明德扬设计规范对电路设计做了较高的要求,其目就在于用最简单的代码、最简洁的方式,设计出最易读、最健壮、最高效的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)更加不可以。
|