一、认识D触发器
D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。
(一)D触发器结构
从图中可以发现D触发器有四个管脚,分别是输入信号D,输出信号Q,时钟信号CLK以及复位信号RESET。
其功能是当RESET为低电平(0),Q处于低电平状态;当RESET为高电平(1),通过观察CLK状态,当CLK信号由0变1(上升沿)的时候,若D为低电平,Q就为低电平,若D为高电平,Q就为高电平。
(二)D触发器的波形图
理想状态
初始状态:
设置复位信号(rst_n)为1,d为0,q为1
变化过程:
rst_n为0的时候,q的值始终为0;rst_n为1的时候,当clk由0变为1,q的值根据d值而发生变化(值同)
实际状态
q值发生变化的时候,存在一定的延时(上升沿的时候q的值为变化之前的值)
二、Quartus-II输入原理图及时序仿真
(一)创建工程
File->New Project Wizard
填写工程名称
根据使用的FPGA,进行选择芯片系列及类型
直接Next
完成工程创建,点击Finish
(二)创建方框文件
选择New
选择Block Diagram/Schematic File
选择nand2,二个输入的与非门,依次添加四个and2和一个非门not
添加完成
选择连线工具
连线效果
保存电路图
(三)编译原理图文件
启动分析与综合(全编译)
rtl viewer,查看硬件电路图
硬件电路图
(四)创建vwm格式波形文件
选择VWF
选择Edit->Insert->Insert Node or Bus
添加Node or Bus
添加效果
编辑输入Clk,产生时钟信号
鼠标选择D,Q信号Q_n,,进行编辑
(五)时序波形仿真
功能仿真后的波形,满足D latch的时序(全编译后,也可以运行时序仿真)
出现下图错误
解决方法
选择tools->Launch Simulation Library Compiler
返回vwm文件中,点击时序仿真,仿真结果如下
三、Quartus-II调用D触发器及时序仿真
(一)创建工程
方法同上
(二)创建方框文件
调用D触发器
添加完成效果
(三)编译原理图文件
启动分析与综合(全编译),使用rtl viewer查看硬件电路图
硬件电路图
(四)创建vwm格式波形文件及时序仿真
创建文件方法同上
编辑好的波形
功能仿真结果
时序仿真结果
通过功能仿真和时序仿真的结果对比可以发现,时序仿真存在时延,更加和实际结果相匹配。
四、Quartus-II用Verilog语言实现D触发器及时序仿真
(一)创建工程
方法同上
(二)编写Verilog文件
创建Verilog文件
点击File->New,选中Verilog
代码如下
//dwave是文件名
module dwave(d,clk,q);
input d;
input clk;
output q;
reg q;
always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
begin
q <= d;//上升沿有效的时候,把d捕获到q
end
endmodule
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
保存文件并编译
(三)查看生成的电路图
使用rtl viewer查看硬件电路图
硬件电路图
(四)利用Verilog语言编写测试代码实现时序仿真
具体仿真过程,参考链接:
http://iyenn.com/rec/349400.html
测试代码
//测试代码
`timescale 1ns / 1ns
module dwave_tb;
reg clk,d;
wire q;
dwave u1(.d(d),.clk(clk),.q(q));
initial
begin
clk = 1;
d <= 0;
forever
begin
#60 d <= 1;//人为生成毛刺
#22 d <= 0;
#2 d <= 1;
#2 d <= 0;
#16 d <= 0;//维持16ns的低电平,然后让它做周期性的循环
end
end
always #20 clk <= ~clk;//半周期为20ns,全周期为40ns的一个信号
endmodule
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
仿真效果
通过三种方式实现D触发器及时序仿真的过程,可以发现D触发器的基本功能是在复位信号为1的时候,CLK的上升沿会引起Q值的变化。由此,可以得出次态方程为
Q
n
+
1
=
D
color{red}{Q_{n+1}=D}
Qn+1=D。三种方式来说对于输入原理图可以更加清楚D触发器的结构,直接调用实际上就是不用自己了解D触发器的组成,Verilog语言实现会要求对语言有所掌握。三种方式来说,要想对结构有所了解,输入原理图会更好,对于元件比较多的来说,采用Verilog语言编程会更好。
参考资料
Quartus II自带仿真工具的使用
Quartus-II输入原理图及仿真步骤.docx
通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)
一、认识D触发器
D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。
(一)D触发器结构
从图中可以发现D触发器有四个管脚,分别是输入信号D,输出信号Q,时钟信号CLK以及复位信号RESET。
其功能是当RESET为低电平(0),Q处于低电平状态;当RESET为高电平(1),通过观察CLK状态,当CLK信号由0变1(上升沿)的时候,若D为低电平,Q就为低电平,若D为高电平,Q就为高电平。
(二)D触发器的波形图
理想状态
初始状态:
设置复位信号(rst_n)为1,d为0,q为1
变化过程:
rst_n为0的时候,q的值始终为0;rst_n为1的时候,当clk由0变为1,q的值根据d值而发生变化(值同)
实际状态
q值发生变化的时候,存在一定的延时(上升沿的时候q的值为变化之前的值)
二、Quartus-II输入原理图及时序仿真
(一)创建工程
File->New Project Wizard
填写工程名称
根据使用的FPGA,进行选择芯片系列及类型
直接Next
完成工程创建,点击Finish
(二)创建方框文件
选择New
选择Block Diagram/Schematic File
选择nand2,二个输入的与非门,依次添加四个and2和一个非门not
添加完成
选择连线工具
连线效果
保存电路图
(三)编译原理图文件
启动分析与综合(全编译)
rtl viewer,查看硬件电路图
硬件电路图
(四)创建vwm格式波形文件
选择VWF
选择Edit->Insert->Insert Node or Bus
添加Node or Bus
添加效果
编辑输入Clk,产生时钟信号
鼠标选择D,Q信号Q_n,,进行编辑
(五)时序波形仿真
功能仿真后的波形,满足D latch的时序(全编译后,也可以运行时序仿真)
出现下图错误
解决方法
选择tools->Launch Simulation Library Compiler
返回vwm文件中,点击时序仿真,仿真结果如下
三、Quartus-II调用D触发器及时序仿真
(一)创建工程
方法同上
(二)创建方框文件
调用D触发器
添加完成效果
(三)编译原理图文件
启动分析与综合(全编译),使用rtl viewer查看硬件电路图
硬件电路图
(四)创建vwm格式波形文件及时序仿真
创建文件方法同上
编辑好的波形
功能仿真结果
时序仿真结果
通过功能仿真和时序仿真的结果对比可以发现,时序仿真存在时延,更加和实际结果相匹配。
四、Quartus-II用Verilog语言实现D触发器及时序仿真
(一)创建工程
方法同上
(二)编写Verilog文件
创建Verilog文件
点击File->New,选中Verilog
代码如下
//dwave是文件名
module dwave(d,clk,q);
input d;
input clk;
output q;
reg q;
always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
begin
q <= d;//上升沿有效的时候,把d捕获到q
end
endmodule
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
保存文件并编译
(三)查看生成的电路图
使用rtl viewer查看硬件电路图
硬件电路图
(四)利用Verilog语言编写测试代码实现时序仿真
具体仿真过程,参考链接:
http://iyenn.com/rec/349400.html
测试代码
//测试代码
`timescale 1ns / 1ns
module dwave_tb;
reg clk,d;
wire q;
dwave u1(.d(d),.clk(clk),.q(q));
initial
begin
clk = 1;
d <= 0;
forever
begin
#60 d <= 1;//人为生成毛刺
#22 d <= 0;
#2 d <= 1;
#2 d <= 0;
#16 d <= 0;//维持16ns的低电平,然后让它做周期性的循环
end
end
always #20 clk <= ~clk;//半周期为20ns,全周期为40ns的一个信号
endmodule
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
仿真效果
通过三种方式实现D触发器及时序仿真的过程,可以发现D触发器的基本功能是在复位信号为1的时候,CLK的上升沿会引起Q值的变化。由此,可以得出次态方程为
Q
n
+
1
=
D
\color{red}{Q_{n+1}=D}
Qn+1=D。三种方式来说对于输入原理图可以更加清楚D触发器的结构,直接调用实际上就是不用自己了解D触发器的组成,Verilog语言实现会要求对语言有所掌握。三种方式来说,要想对结构有所了解,输入原理图会更好,对于元件比较多的来说,采用Verilog语言编程会更好。
参考资料
Quartus II自带仿真工具的使用
Quartus-II输入原理图及仿真步骤.docx
通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)
评论记录:
回复评论: