建模方式
assign add = a + b;//通过跟踪数据流来改变信号,常见于wire型变量
initial // 用于仿真
always @ (list) //用于综合
begin
end
结构化建模
通过调用底层逻辑模块来进行电路描述,值得注意的是:底层模块中有参数时,可通过顶层模块修改底层模块的参数
module para1(C, D); //declaretion a module with param a and b;
parameter a = 1;
parameter b = 1;
...
endmodule
module para2;//reset the lower module para
para1 #(4,3) U1(C1, D1);
para1 #(.b(5), .a(6)) U2(C2, D2);
endmodule
时序逻辑
mealy :输出不仅与当前状态有关,还与输入有关;
moore: 输出只与当前状态有关。
二进制编码:节约资源,但状态翻转时容易引起毛刺。
2.格雷码: 减小状态翻转时的可能产生的毛刺。
独热码: N个状态采用n位来编码
两段式
同步时序:状态更新,复位
always(clock and rst)
组合逻辑块:case模块
always(current_state)
同时将状态更新放入组合逻辑中(非阻塞赋值)。
可能会存在隐患,状态更新放到组合逻辑中,可能会导致误翻转
三段式
时序同步模块:状态更新
always(clock ...)
组合逻辑确定下一个状态
always(current state)
时序输出模块:
always(clk rst)
case(next_state)//变化输出靠next_state。
最后编辑于 :2017.12.10 11:17:35
©著作权归作者所有,转载或内容合作请联系作者 【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。