数电大型实验报告Word格式.docx
《数电大型实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《数电大型实验报告Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
提交日期2013年11月4日
一、实验内容
1.38译码器设计。
本实验利用QuartusII软件开发利用,有两种设计模式:
一、用原理图输入法设计3线-8线译码器;
二、利用VHDL语言设计3线-8线译码器。
二.38译码器设计
1.设计要求
设计1个38译码器,完成规定的译码功能,并通过波形仿真验证。
2.原理图设计
38译码器原理图如图1所示。
图138译码器原理图
3.操作步骤
1)进入windows操作系统,打开quartusII
2)创建工程“数电”
3)打开原理图编辑器
4)原理图编辑。
如图所示
5)给输入、输出引脚命名(输入引脚分别命名为a,b,c,输出引脚为y0~y7)
6)保存原理图
7)编译
8)时序模拟。
(1)新建vwf文件
(2)确定仿真时间和网格宽度:
设置endtime为100ms,gridsize为10ms
(3)编辑vwf文件
(4)启动仿真
9)引脚分配
10)下载(以DE2开发板为例)。
设计文件下载至FPGA芯片后,根据步骤9引脚分配的结果,改变数据开关SW[2-0]的电平,验证发光管LEDR[0-7]的状态。
硬件系统的L1-L8对应于LEDR[0-7],K1-K3对应于SW[2-0]。
三.4位数字频率计设计
设计4位数字频率计,测频范围0000~9999Hz。
用DEII实验板验证。
2.数字频率计的工作原理
图2数字频率计原理框图
图3数字频率计原理框图工作时序
3.数字频率计顶层原理图设计
图中clk1为8赫兹周期信号,通过模块CONSIGNAL产生频率计工作中的三个控制信号,包括四个10进制的计数器开始计数时的清零信号与片选信号,频率计数完毕时的锁存信号。
以确定采样时间为1s,图中clkin为待测信号。
模块文件LOCK为锁存模块在计数完毕后锁存计数,以保证led显示不至于快速闪烁。
DECODER模块将BCD码计数器结果译码为七段显示码,以便于数码管显示。
数字频率计底层模块仿真
4.
(1)计数器模块仿真
十进制加法计数器:
1.当闸门信号cs为低电平时,计数器CNT10处于不工作状态,停止计数;
2.闸门信号cs为高电平,CNT10开始计数,qq记录被测信号clk的脉冲个数;
3.当清零信号clr有效,即clr处于高电平时,qq被清零,值为0;
4.进位信号co记录CNT10计数器的进位。
图5计数器模块仿真结果
(2)锁存器模块仿真
当输入clk为高电平时,将dd数据移入qq,当clk低电平时,保持qq不变。
图6锁存器模块仿真结果
(3)显示译码模块仿真结果
显示译码器将输入qq信号转化为led灯管显示的数字,固定引脚后,即可在从led灯管上读出被测信号的频率。
图7显示译码模块仿真结果
(4)控制模块仿真结果
图中clk为8赫兹脉冲信号,clr清零信号cs闸门信号,持续时间为8赫兹信号的8个周期,为1s。
1s过后锁存信号脉冲。
锁存计数。
5.数字频率操作过程
完成上述操作后,固定引脚,下载至开发板,在clk1端输入8赫兹信号不变,clkin输入待测信号,即可在数码管上读出被测信号的频率。
图8控制模块仿真结果
(1)器件选定
每个VHD文件经过置顶编译仿真后,通过“File-Create/Update-CreateSymbolFilesforCurrentFile”生成模块符号,在顶层原理图中调用。
(2)管脚分配
(3)编程下载
·
连接电脑与DE2开发板;
“Run/Program”开关打至“Run”档,启动DE2;
“Tools”→Programmer,“HandwareSetup”→USB-Blaster,将编程模式选为JTAG,在“Program/Configure”复选框内打√,点击Start;
四.实验体会
上个学期学的是课本上死板的题目数字什么的,但是这个学期的实验是叫我们如何灵活的运用QuartusII进行简单数字电路的探索,用VHDL硬件语言进行电路模拟,是对课本上的知识进行实践,我觉得让我更对数电产生了非常浓厚的兴趣,知道了电路还可以用代码的形式来变现,我觉得十分新奇。
以前学数电的时候只知道会做这类型的题目,现在了解了他的实际功能,在实验中我真是体会到了这些模块的功能。
做实验过程,我一直不太顺利,不是这个文件名输错,就是那个代码输错,而且往往要花很长的时间去寻找自己的错误所在,很多次都想放弃,但是我还是坚持了下来,一一找出我自己的错误所在,然后加以改正,培养了我的耐心。
总之这次实验让我受益匪浅。