您现在的位置:首页 > >

实验六 触发器的设计与仿真 湖南大学数字逻辑_图文

发布时间:

数字电路与逻辑设计实验报告
实验六 触发器的设计与仿真 一、实验目的 熟悉 QuartusⅡ仿真软件的基本操作,并用 VHDL 语言设计一个 D 锁存器、一个 D 触发器和一个 JK 触发器。 二、实验内容 1.用逻辑图和 VHDL 语言设计 D 锁存器,并进行仿真与分析 2.参看 QuartusⅡ中器件 7474(边沿 D 触发器)的逻辑功能,用 VHDL 语言设计边 沿触发式 D 触发器,并进行仿真与分析 3.参看 QuartusⅡ中器件 7476(边沿 JK 触发器)的逻辑功能,用 VHDL 语言设计 边沿触发式 JK 触发器,并进行仿真与分析 4. 三、实验原理 1.(1)D 锁存器逻辑电路的原理:

(2)通过实验实现逻辑的原理: EN 1 1 0 D 0 1 × Q 0 1 保持 Q 保持 QN QN

2.(1)边沿 D 触发器逻辑电路的原理:

(2)通过实验实现逻辑的原理: INPUTS OUTPUTS

第 1 页 共 14 页

数字电路与逻辑设计实验报告
PR 0 1 0 1 1 1 CLR 1 0 0 1 1 1 CLK × × × ↑ ↑ 0 D × × × 1 0 × Q 1 0 0(失效) 1 0 保持 Q QN 0 1 0(失效) 0 1 保持 QN

3.(1)JK 触发器逻辑电路的原理:

(2)通过实验实现逻辑的原理: INPUTs PR 0 1 0 1 1 1 1 1 CLR 1 0 0 1 1 1 1 1 CLK × × × ↓ ↓ ↓ ↓ 1 J × × × 0 1 0 1 × K × × × 0 0 1 1 × Q 1 0 1(失效) 保持 Q 1 0 OUTPUTs QN 0 1 1(失效) 保持 QN 0 1

Toggle(翻转) 保持 Q 保持 QN

四、实验方法与步骤 实验方法: 采用基于 FPGA 进行数字逻辑电路设计的方法。 采 用 的 软 件 工 具 是 QuartusII 软 件 仿 真 * 台 , 采 用 的 硬 件 * 台 是 Altera EPF10K20TI144_4 的 FPGA 试验箱。 1.D 锁存器的实验步骤: 1、编写源代码。打开 QuartusⅡ软件*台,点击 File 中得 New 建立一个文件。编写 的文件名与实体名一致,点击 File/Save as 以“.vhd”为扩展名存盘文件。VHDL 设
第 2 页 共 14 页

数字电路与逻辑设计实验报告
计源代码如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity dsuocunqi is port (EN,D : in std_logic; Q,QN : out std_logic); end dsuocunqi; architecture dsuocunqi of dsuocunqi is begin process(EN,D) begin if (EN='1')then case D is when '0' => Q <= '0'; QN <= '1'; when '1' => Q <= '1'; QN <= '0'; end case; end if; end process; end dsuocunqi; 2、按照实验箱上 FPGA 的芯片名更改编程芯片的设置。操作是点击 Assign/Device,选 取芯片的类型。建议选“Altera 的 EPF10K20TI144_4” 3、编译与调试。确定源代码文件为当前工程文件,点击 Complier 进行文件编译。编 译结果有错误或警告,则将要调试修改直至文件编译成功。 4、波形仿真及验证。在编译成功后,点击 Waveform 开始设计波形。点击“insert the node”,按照程序所述插入 EN,D,Q,QN 四个节点(EN,D 为输入节点,Q,QN 为输出节 点) 设置 EN, 的输入波形, 。 D 在仿真启动之前, 需要设置两个重要的参数——End Time 和 Grid Size , 点 击 保 存 按 钮 保 存 w 为 dsuocunqi 。 建 立 仿 真 网 表 : Proccessing->Generate Functional Sumulation Nelist . 选 择 Assignments->Settings->Simulation mode->Fouctional. 点击 Processing— >star Simulation 启动仿真,可以看到功能仿真图。 5、时序仿真。首先进行全编译,编译成功后,点击 Assignments 的 settings 的 simulation mode: Timing,仿真成功后即出带延时的波形图。 6、FPGA 芯片编程及验证。 (1)分配管脚:assignment—>Pins 在 Location 中选择合适的输入输出管脚并进行 编译。 ( 2 ) 下 载 验 证 : Tools->Programmer 进 入 下 载 窗 口 Hardware Setup —>ByteBlaster->Start->OK (3)初始化电路,根据设置好的管脚资源擦做实验电路板,完成数据测试。 五、实验结果与分析 1、 编译过程
第 3 页 共 14 页

数字电路与逻辑设计实验报告
a)编译过程、调试结果

b)结果分析及结论 编译无错误,可进行下一步 2、 功能仿真 a)功能仿真过程及仿真结果 选择 processing---->Generate Functional Simulation Netlist 产生功能仿真网格 ---->Assigentnents--->Settings----->Functional---->Processing--->Start Simulation,启动功能仿真

b)结果分析及结论 当使能端 EN=1 时,若 D=1,Q 输出 0,QN 输出 1;若 D=0,Q 输出 1.QN 输出 0;当 EN=0 时,无论 D 输入何值,Q 与 QN 均保持原来的状态。 3.时序仿真 a)时序仿真过程及仿真结果

b)结果分析及结论 Q 与 QN 的翻转存在延迟,因为时序仿真存在延迟现象,是正常现象。 Programming 芯片编程
第 4 页 共 14 页

数字电路与逻辑设计实验报告
a)芯片编程过程

管脚分配:

b)编程芯片 FPGA 验证结果 c)结果分析与结论

当 D=1,EN=1 时,Q=1,QN=0;

当 D=1,EN=0 时,Q=1,QN=0; 当 D=0,EN=1 时,Q=0,QN=0;

第 5 页 共 14 页

数字电路与逻辑设计实验报告
2.D 触发器的实验步骤: 1、编写源代码。打开 QuartusⅡ软件*台,点击 File 中得 New 建立一个文件。编写 的文件名与实体名一致,点击 File/Save as 以“.vhd”为扩展名存盘文件。VHDL 设 计源代码如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity dchufaqiis port (PR,CLK,CLR,D : in std_logic; Q,QN: out std_logic); end biand; architecture dchufaqi of dchufaqi is begin process(PR,CLK,CLR,D) begin if (PR='0')then case CLR is when '1' => Q <= '1'; QN <= '0'; when '0' => Q <= '1'; QN <= '1'; end case; elsif (CLR = '0') then Q <= '0'; QN <= '1'; elsif (CLK'event and CLK = '1') then case D is when '1' => Q <= '1'; QN <= '0'; when '0' => Q <= '0'; QN <= '1'; end case; end if; end process; end dchufaqi;

2、按照实验箱上 FPGA 的芯片名更改编程芯片的设置。操作是点击 Assign/Device,选 取芯片的类型。建议选“Altera 的 EPF10K20TI144_4” 3、编译与调试。确定源代码文件为当前工程文件,点击 Complier 进行文件编译。编 译结果有错误或警告,则将要调试修改直至文件编译成功。 4、波形仿真及验证。在编译成功后,点击 Waveform 开始设计波形。点击“insert the node”,按照程序所述插入 PR,CLR,CLK,D,Q,QN 共 6 个节点(PR,CLR,CLK,D 为输入节 点,Q,QN 为输出节点) 。设置 PR,CLR,CLK,D 的输入波形,在仿真启动之前,需要设置
第 6 页 共 14 页

数字电路与逻辑设计实验报告
两 个 重 要 的 参 数 — — End Time 和 Grid Size 步 骤 : 点 击 Edit->End Time ->2.0us;Edit-.>Grid Time ->100.0ns,点击保存按钮保存保存文件名为 dchufaqi。 建 立 仿 真 网 表 : Proccessing->Generate Functional Sumulation Nelist . 选 择 Assignments->Settings->Simulation mode->Fouctional, 选择 Processing— >star Simulation 启动仿真,可以看到功能仿真波形图。 5、时序仿真。点击 Assignments ->settings-> simulation mode-> Timing,仿真成 功后即出带延时的波形图。 6、FPGA 芯片编程及验证。 (1)分配管脚:assignment—>Pins 在 Location 中选择合适的输入输出管脚并进行 编译。 ( 2 ) 下 载 验 证 : Tools->Programmer 进 入 下 载 窗 口 Hardware Setup —>ByteBlaster->Start->OK (3)初始化电路,根据设置好的管脚资源擦做实验电路板,完成数据测试。 五、实验结果与分析 3、 编译过程 b)编译过程、调试结果

b)结果分析及结论 编译无错误,可进行下一步 4、 功能仿真 b)功能仿真过程及仿真结果 选择 processing---->Generate Functional Simulation Netlist 产生功能仿真网格 ---->Assigentnents--->Settings----->Functional---->Processing--->Start Simulation,启动功能仿真

第 7 页 共 14 页

数字电路与逻辑设计实验报告

b)结果分析及结论 当 clk 位于上升沿时,输入端 PR=0,CLR=1,此时 Q 输出为 1,QN 输出为 0; 输入端 PR=1,CLR=0,此时 Q 输出为 0,QN 输出为 1; 输入端 PR=0,CLR=0,此时 Q 与 QN 输出端无效; 输 入 端 PR=1 , CLR=1 时 , 若 输 入 D=1 , 输 出 Q=1 , QN=0 , 若 D=0 时,输出 Q=0,QN=1; 当 clk=0 即时钟信号未处于上升沿时,同时输入端 PR=1,CLR=1,则 Q 与 QN 保持 原来的状态输出。 3.时序仿真 b)时序仿真过程及仿真结果

b)结果分析及结论 仿真结果与逻辑存在偏差,因为时序仿真存在延迟现象,是正常现象。 Programming 芯片编程 b)芯片编程过程

第 8 页 共 14 页

数字电路与逻辑设计实验报告
管脚分配:

b)编程芯片 FPGA 验证结果 c)结果分析与结论

图一:当 clk 位于上升沿状态时,当 PR=1,CLR=1,D=1 时,Q=1,QN=0; 图二:当 clk 位于上升沿状态时,当 PR=0,CLR=1,D=0 时,Q=1,QN=0; 图三:当 clk 位于上升沿状态时,当 PR=1,CLR=0,D=0 时,Q=0,QN=1; 图四:当 clk 位于上升沿状态时,当 PR=1,CLR=1,D=0 时,Q=0,QN=1; 图五:当 clk=0 时,输出保持原来的状态,前一周期 Q=1,QN=0,所以仍然是 Q=1,QN=0 3.JK 触发器的实验步骤: 1、编写源代码。打开 QuartusⅡ软件*台,点击 File 中得 New 建立一个文件。编写 的文件名与实体名一致,点击 File/Save as 以“.vhd”为扩展名存盘文件。VHDL 设 计源代码如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all;
第 9 页 共 14 页

数字电路与逻辑设计实验报告
entity jkchufaqi is port (PR,CLK,CLR,J,K : in std_logic; Q,QN: buffer std_logic); end jkchufaqi; architecture jkchufaqi of jkchufaqi is begin process(PR,CLK,CLR,J,K) begin if (PR='0')then case CLR is when '1' => Q <= '1'; QN <= '0'; when '0' => Q <= '1'; QN <= '1'; end case; elsif (CLR = '0') then Q <= '0'; QN <= '1'; elsif (CLK'event and CLK = '0') then if (J = '1') then case K is when '0' => Q <= '1'; QN <= '0'; when '1' => Q <= NOT Q; QN <= NOT QN; end case; elsif(K = '1') then Q <= '0'; QN <= '1'; end if; end if; end process; end jkchufaqi; 2、按照实验箱上 FPGA 的芯片名更改编程芯片的设置。操作是点击 Assign/Device,选 取芯片的类型。建议选“Altera 的 EPF10K20TI144_4” 3、编译与调试。确定源代码文件为当前工程文件,点击 Complier 进行文件编译。编 译结果有错误或警告,则将要调试修改直至文件编译成功。 4、波形仿真及验证。在编译成功后,点击 Waveform 开始设计波形。点击“insert the node”,按照程序所述插入 PR,CLR,CLK,J,K,Q,QN 共 7 个节点(PR,CLR,CLK,J,K 为输 入节点,Q,QN 为输出节点) 。设置 PR,CLR,CLK,J,K 的输入波形,在仿真启动之前,需 要设置两个重要的参数——End Time 和 Grid Size 步骤:点击 Edit->End Time ->2.0us;Edit-.>Grid Time ->100.0ns,点击保存按钮保存为 jkchufaqi。建立仿真网 表 : Proccessing->Generate Functional Sumulation Nelist . 选 择
第 10 页 共 14 页

数字电路与逻辑设计实验报告
Assignments->Settings->Simulation mode->Fouctional 选择激励文件”sjw_JK.选 择 Processing—>start Simulation 启动仿真,可以看到功能仿真图。 5、时序仿真。首先进行全编译,编译成功后,点击 Assignments 的 settings 的 simulation mode: Timing,仿真成功后即出带延时的波形图。 6、FPGA 芯片编程及验证。 (1)分配管脚:assignment—>Pins 在 Location 中选择合适的输入输出管脚并进行 编译。 ( 2 ) 下 载 验 证 : Tools->Programmer 进 入 下 载 窗 口 Hardware Setup —>ByteBlaster->Start->OK (3)初始化电路,根据设置好的管脚资源擦做实验电路板,完成数据测试。 五、实验结果与分析 5、 编译过程 c)编译过程、调试结果

b)结果分析及结论 编译无错误,可进行下一步 6、 功能仿真 c)功能仿真过程及仿真结果 选择 processing---->Generate Functional Simulation Netlist 产生功能仿真网格 ---->Assigentnents--->Settings----->Functional---->Processing--->Start Simulation,启动功能仿真

b)结果分析及结论 当输入端 PR=0,CLR=1 时,输出 Q=1,QN=0; 当输入端 PR=1,CLR=0 时,输出 Q=0,QN=1;
第 11 页 共 14 页

数字电路与逻辑设计实验报告
当输入端 PR=0,CLR=0 时,输出 Q=1,QN=0; 当输入端 PR=1,CLR=1 且时钟信号位于下降沿时输出由输入端 J,K 控制, 当 J=0,K=0 时,Q 与 QN 保持原来的输出状态; 当 J=1,K=0 时,输出 Q=1,QN=0; 当 J=0,K=1 时,输出 Q=0,QN=1; 当 J=1,K=1 时,Q=1,QN=0,即输出端 Q 与 QN 进行看翻转输出。 3.时序仿真 c)时序仿真过程及仿真结果

b)结果分析及结论 仿真结果与逻辑存在偏差,因为时序仿真存在延迟现象,是正常现象。 Programming 芯片编程 c)芯片编程过程

管脚分配:

b)编程芯片 FPGA 验证结果 c)结果分析与结论
第 12 页 共 14 页

数字电路与逻辑设计实验报告

上图可知:PR=1,CLR=0 时,Q=0,QN=1; 当 PR=0,CLR=1 时,Q=1,QN=0; 当 PR=CLR=1,J=0,K=0 时,Q=1,QN=0; 当 PR=CLR=1,J=0,K=1 时,Q=0,QN=1; 当 PR=CLR=1,J=1,K=0 时,Q=1,QN=0;
第 13 页 共 14 页

数字电路与逻辑设计实验报告
当 PR=CLR=1,J=1,K=1 时,Q=0,QN=1; 六、实验结论 1.实验结论: (1)逻辑图和 VHDL 语言设计 D 锁存器,并进行仿真与分析,实验结 果正确(2)参看 7474(边沿 D 触发器)的逻辑功能,用 VHDL 语言设计边沿触发式 D 触发器,并进行仿真与分析,实验结果符合理论,实验成功。 (3)参看 7476(边沿 JK 触发器)的逻辑功能,用 VHDL 语言设计边沿触发式 JK 触发器,并进行仿真与分析, 实验结果符合理论,实验成功。 2.实验心得 通过逻辑功能表再看锁存器, 触发器的功能时就了解得更清楚, 并且学到了锁存 器与触发器的功能是相似的,只是触发器可以在触发边沿发生反应,锁存器只用一个 使能端和一个数据输入端控制,D 触发器有时钟信号和清零端作为控制,在时钟上升 沿有效,JK 触发器在时钟下降沿有效。 所以根据逻辑功能表在调节输入信号的时候,就是根据功能表来看,在输出信号判 断实验结果是否正确就是看在上升沿或者下降沿的时候,Q 和 QN 是不是有翻转。 在这次实验中对我来说最难的部分就是写出 VHDL 语言, 我觉得在这部分还是需要加强。

第 14 页 共 14 页



热文推荐
猜你喜欢
友情链接: 医学资料大全 农林牧渔 幼儿教育心得 小学教育 中学 高中 职业教育 成人教育 大学资料 求职职场 职场文档 总结汇报