《数字电路与逻辑设计》综合性实验教学大纲.docx
《《数字电路与逻辑设计》综合性实验教学大纲.docx》由会员分享,可在线阅读,更多相关《《数字电路与逻辑设计》综合性实验教学大纲.docx(11页珍藏版)》请在冰点文库上搜索。
![《数字电路与逻辑设计》综合性实验教学大纲.docx](https://file1.bingdoc.com/fileroot1/2023-8/13/65ceba2d-ae2e-40fe-9448-f24df8393095/65ceba2d-ae2e-40fe-9448-f24df83930951.gif)
《数字电路与逻辑设计》综合性实验教学大纲
十进制可预置数的可逆计数器的开发
计算机科学与技术专业09级嵌入式
(2)班姓名:
学号:
1200911012指导老师:
罗海波实验日期:
2010-12-12
一、实验目的
(1)理解触发器的原理及常用的触发器编程。
(2)熟悉移位寄存器的基本原理、8位移位寄存器的开发。
(3)理解计数器的基本原理。
(4)熟悉计数器的CPLD开发、清0、预置的实现等。
二、实验内容
(1)各类基本触发器的开发。
(2)8位移位寄存器的开发。
(3)实现一个十进制可同步预置数的可逆计数器,并进行仿真验证、下载运行。
三、实验仪器设备和材料清单
(1)每2位同学为1组,每组一台PC机、一台DP-MCU/Altera实验仪。
(2)配套的软硬件设备:
并口JTAG下载线、QuartusII7.2安装程序等。
四、实验要求
(1)完成基本D触发器、带异步清0、异步置1的D触发器、带异步清0、异步置1的JK触发器的开发并仿真它们的逻辑功能。
(2)完成8位移位寄存器的开发并下载到实验板运行,观察结果。
(3)完成十进制可预置数的可逆计数器的开发并仿真结果或下载运行。
五、实验步骤及结果测试
(一)各类基本触发器的开发
1.基本D触发器
基本D触发器的次态方程为:
,则可写出基本D触发器的VerilogHDL源代码如下所示:
实验结果:
2.带异步清0、异步置1的D触发器
带异步清0、异步置1的D触发器的VerilogHDL源代码如下所示:
3.带异步清0、异步置1的JK触发器
基本JK触发器的次态方程为:
。
带异步清0、异步置1的JK触发器的VerilogHDL源代码如下所示:
2.实验结果:
.3.实验结果:
(二)8位移位寄存器的开发
要求:
实现8位左移移位寄存器
分析:
8位左移移位寄存器具有8位并行输出,1位串行移位输入,8位输出连接至DP-MCU/Altera实验仪的8个发光二极管L1~L8,1位同步清0连接至实验仪的按键KEY1,1位串行移位输入连接至实验仪的按键KEY2。
这样,可以控制串行移位输入及观察并行移位输出,移位寄存器所需要的时钟脉冲由实验仪上的脉冲产生电路产生,该脉冲电路的时钟输出通过跳线与芯片的83脚相连。
但由于硬件电路产生的脉冲频率较高,所以需要在软件上进行延时,以产生频率较低(1Hz)的脉冲信号,提供给8位移位寄存器,便于移位输出的观察。
一种具有同步清0功能的8位左移移位寄存器的VerilogHDL源代码如下:
请自行分析以上源代码。
实验方法:
1)建立项目工程shifter,并在此工程项目下新建VerilogHDL源程序文件shifter.v,输入上面的程序代码并保存。
2)对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
3)为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件应该是Altera公司的EPM7128SLC84-10芯片,引脚锁定方法如下表1所示。
表18位移位寄存器实验引脚锁定方法
引脚
信号
引脚
信号
30
dout[7]
35
dout[3]
31
dout[6]
36
dout[2]
33
dout[5]
37
dout[1]
34
dout[4]
39
dout[0]
56(KEY1)
clr
57(KEY2)
din
83(CLOCK)
clk
4)拿出跳线短接帽并跳到合适的位置,使LED1~LED8分别与引脚30、31、33~37和39相连。
KEY1、KEY2、CLOCK分别与56、57、83脚短接。
拿出JTAG下载电缆,并将此电缆的两端分别接到PC机和DP-MCU/Altera实验仪的JTAG下载接口上,打开工作电源,执行下载命令,把程序下载到DP-MCU/Altera实验仪的EPM7128SLC84-10芯片中,此时,观察L1~L8的亮灭情况,按下KEY1或KEY2,观察L1~L8的亮灭情况,结合程序代码,分析现象的原因。
(三)十进制可预置数的可逆计数器的开发
十进制计数器至少需要4位二进制输出,且输出的结果在十进制的0~9之间,即二进制的0000~1001之间,其余6个二进制状态1010~1111不允许出现。
还需要4位二进制预置输入,且输入也在0000~1001之间。
此外,其他必须的输入输出信号为:
时钟脉冲clk、清0信号CLR(低电平有效)、预置信号LD(低电平有效)、加法或减法的选择端口add_or_sub。
根据以上的分析,一种VerilogHDL语言实现代码如下:
实验方法:
1)建立项目工程ct,并在此工程项目下新建VerilogHDL源程序文件ct.v,输入上面的程序代码并保存。
2)对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
3)创建vwf波形文件,对程序进行仿真,验证逻辑的正确性,功能仿真的步骤如下:
1.clk为周期性脉冲信号,add_or_sub置为0,CLR为1,LD为1,LDInput为0,即工作在加法计数状态,且清0信号、置1信号都无效,仿真运行,观察波形,验证加法计数的正确性。
2.clk为周期性脉冲信号,add_or_sub置为0,CLR为随机,LD为1,LDInput为0,即工作在加法计数状态,且置1信号无效,仿真运行,观察波形,验证加法计数及清0的正确性。
3.clk为周期性脉冲信号,add_or_sub置为0,CLR为1,LD为随机,LDInput设定为一个常数,即工作在加法计数状态,且清0信号无效,仿真运行,观察波形,验证加法计数及置数的正确性。
4.clk为周期性脉冲信号,add_or_sub置为1,CLR为1,LD为1,LDInput为0,即工作在加法计数状态,且清0信号、置1信号都无效,仿真运行,观察波形,验证减法计数的正确性。
5.clk为周期性脉冲信号,add_or_sub置为1,CLR为随机,LD为1,LDInput为0,即工作在加法计数状态,且置1信号无效,仿真运行,观察波形,验证减法计数及清0的正确性。
6.clk为周期性脉冲信号,add_or_sub置为1,CLR为1,LD为随机,LDInput设定为一个常数,即工作在加法计数状态,且清0信号无效,仿真运行,观察波形,验证减法计数及置数的正确性。
7(选做).如果将代码下载到实验仪进行验证,根据DP-MCU/Altera实验仪的输入、输出、时钟资源,改如何进行引脚的分配?
提示:
可将输入分配到实验仪的按钮,将输出分配至LED灯开关进行观察,此外,根据实验六的内容,注意DP-MCU/Altera实验仪的时钟引脚分配,并需要在代码中对外部时钟信号进行分频,以便进行观察。
1.仿真结果
六、思考题
1)带同步清0、同步置1的D触发器该如何实现?
答:
改变if()里面的条件,低电平有效,或高电平有效,并且改变相应的输出端口编码,使之为0或为1。
2)将8位移位寄存器的的清0改成异步方式,观察异步清0对输出的影响并与同步清0进行比较。
答:
同步方式与异步方式不同在于,alwas语句内条件的不同。
对于异步清零不需要等下一个脉冲,只要条件一遍便可改变,所以图上改变是立即的,而同步清零需要配合下一个脉冲,即上冲沿或下降沿才能工作,所以它需要根据上一句子的状态来确定班次的状态。
3)如果将十进制可逆计数器的置数或清0改为异步方式,该如何实现?
并请说出同步清0(或置数)与异步清0(或置数)的区别所在,并进行验证。
答:
在alwas语句里面多加一个语句,即改为异步。
对于异步清零不需要等下一个脉冲,而同步清零需要配合下一个脉冲,即上冲沿或下降沿才能工作。