页数:21页文件大小:412.6 KB来源: 硬件描述语言和数字系统设计ppt课件
本课件对比组合逻辑与时序逻辑在Verilog描述上的区别,说明组合逻辑的连续赋值与电平敏感写法、时序逻辑的时钟边沿敏感写法,并重点分析锁存器LATCH与D触发器在代码风格、综合结果和电路特点上的差异及其对可靠性的影响。
第5章组合逻辑、时序逻辑的Verilog语言描述硬件描述语言和数字系统设计
组合逻辑、时序逻辑的Verilog语言描述5.2锁存器LATCH与D触发器的Verilog语言描述与电路特点主要内容:
以2路选择器为例:modulemux2to1( a, b, sel, out); input a, b; input sel; output out; assign out = (sel) ? b:a; endmodule注意:连续赋值语句的被赋值变量只能是线网wire型。;仍然以2路选择器为例:modulemux2to1( a, b, sel, out); input a, b; input sel; output out; reg out;always @(sel or a or b)out = (sel) ? b:a; endmodule注意:过程块描述的组合逻辑电路:1.被赋值变量只能是reg型;2.触发方式采用电平触发;3.always@()引导的敏感量要完整。;的组合逻辑电路效果相同两种方法描述的2路选择器电路均相同,综合工具根据Verilog代码综合自动生成的电路均为下图所示:
moduleDFF(clk, rst, d ,q); input clk, rst ,d; output q; reg q; always @( posedge clk)if (rst)q<=1'b0; elseq<=d; endmodule注意:1.过程块描述的时序逻辑电路,其敏感量采用边沿触发;2.为了避免竞争,描述时序电路只能用非阻塞赋值,不能用阻塞赋值。问题:为什么描述时序逻辑要采用边沿触发的方式?;modulelatch (data, enable, q); input data, enable; output q; reg q; always @( enable or data)if (enable)q <= data; 第10页:综合工具Leonardo所报
- 的Warning信息
- Warning,q is not always assigned. Storage may be needed..5.2.2锁存器-综合情况注意:锁存器是在敏感量为电平触发方式的组合逻辑电路中产生的。
第11页:问题:为什么锁存器要在电平触发方式下生成
?5.2.3 CMOS工艺下锁存器的电路结构
第12页:锁存器工作过程分析
- 锁存器-工作过程分析分析
- 因为当clk为高电平1时,传输门T1导通,输入端d到输出端q形成通路,所以输出q能够反映输入端d的信号;而当clk变为低电平0时,导致传输门T1关断,输出q就不能反映输入端口d的信号,此时由于传输门T2的导通,输出级有反馈环路,输出端q能够保持原值。
第13页:module asynrst_DFF
moduleasynrst_DFF(clk, rst, d ,q ); input clk, rst ,d; output q; reg q; always @(posedge clk or posedge rst)if (rst)q <= 1'b0; elseq <= d; endmodule5.2.5 D触发器的Verilog描述(异步复位);
第14页:说明:复位信号不受时钟信号clk
的影响。只要复位信号rst为高电平时,电路就复位,输出q为0。对应的CMOS工艺下D触发器的电路结构D触发器符号D触发器电路图
第15页:module asynrst_(续1)
moduleasynrst_DFF(clk, rst, d ,q ); input clk, rst ,d; output q; reg q; always @(posedge clk)if (rst)q <= 1'b1; elseq <= d; endmoduleD触发器的Verilog描述(同步复位);
第16页:说明:复位信号受时钟信号clk
的影响,只有在时钟上升沿来临后,复位信号rst为高电平时,电路就复位,输出q为0。对应的CMOS工艺下D触发器的电路结构D触发器符号D触发器电路图
第17页:不考虑复位信号后的D触发器的电路结构D触
- 发器符号D触发器电路图问题
- 1.为什么说d触发器是边沿触发?2.为什么当时钟信号clk变为高电平后,无论输入端d信号如何变化,都不能反映到输出端q上去?
第18页:D触发器-工作过程分析
- 分析
- 1.因为当clk为低电平0时,传输门T1导通,输入端d的信号被送到q_点;而当clk在由低电平0跳变到高电平1时刻(即clk上升沿时), T3导通,q_点的值得以被传到输出端q去,对外即好像在时钟上升沿触发,完成数据采集。2.在clk保持高电平1时,由于传输门T1处于关断状态,无论输入端d的信号如何变化,均不能被送到输出端口。
第19页:总结
- -锁存器与D触发器问题
- 锁存器与D触发器的区别?答案要点:从触发方式和电路结构两方面说明。
第20页:module LATCHorDFF
moduleLATCHorDFF (q, data, enable); input clk,data, enable; output q; reg q; endmoduleVerilog语法下的锁存器与D触发器always @( posedge clk)if (enable)q <= data;always @(enable or data)if (enable)q <= data;问题1.上面左边描述的电路,如果不加else q<=0,会生成锁存器吗?2.上面右边描述的电路,如果不加else q<=0,会生成锁存器吗?;
第21页:第二次作业:1.说明latch
(锁存器)与register(触发器)的区别,行为级描述中latch如何产生的.画出DFF的结构图,并用verilog实现之。2.用verilog实现4进制的计数,并画出用D触发器搭建的schematic图。3.用verilog实现10分频电路,占空比为50%,并画出D触发器搭建的schematic图,7分频呢?(请贴上仿真波形,并对波形进行分析)
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}