eda数码管的显示整个流程实验报告

上传人:自*** 文档编号:79604093 上传时间:2019-02-17 格式:DOCX 页数:17 大小:1.29MB
返回 下载 相关 举报
eda数码管的显示整个流程实验报告_第1页
第1页 / 共17页
eda数码管的显示整个流程实验报告_第2页
第2页 / 共17页
eda数码管的显示整个流程实验报告_第3页
第3页 / 共17页
eda数码管的显示整个流程实验报告_第4页
第4页 / 共17页
eda数码管的显示整个流程实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《eda数码管的显示整个流程实验报告》由会员分享,可在线阅读,更多相关《eda数码管的显示整个流程实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、EDA 实验报告王丹 计科一班 201208010122EDA 第一次实验报告实验目的:利用Quartus软件,采用自上而下或自下而上的模块化层次设计数码管扫描显示电路,通过仿真波形及硬件实验平台验证设计,从而熟悉Quartus的数字系统设计流程以及FPGA开发模式。一、 实验设计方案1. 原理说明:几个数码管在同一时间进行显示利用人眼的视觉暂留效应,把多个数码管按一定顺序(从左至右或从右至左)循环进行点亮,当点亮的频率足够高时,我们可以看到全部同时显示(点亮)。因此,我们只要给数码管驱动电路一个足够高的扫描工作频率,就可以实现几个数码管同时点亮。而用来产生这个扫描频率的驱动电路,可以通过BC

2、D七段译码器的输入数据切换电路,通过计数器的输出来控制几个多路数据选择器电路的实现,只要计数频率足够高,就可以实现我们的要求。2. 结构框图:3选1多路选择器模4计数器7段译码器产生00,01,10,11一次选择其中一组信号2-3译码器abcdefg不同的段位发光形成数字对数码管进行选择位选其中,3选1多路选择器以及2-3译码器的输入信号是由模4计数器统一输出控制,以达到数码管的位选以及段选同时变化的效果。二、 实验流程:1、 模4计数器设计并进行仿真,下载到电路板上测试2、 3选1多路选择器设计3、 2-3译码器设计并进行仿真4、 综合利用模4计数器,3选1多路选择器以及2-3译码器完成数码

3、管扫描显示电路的设计并进行仿真,下载到电路板上测试2-3译码器设计(仿真)3选1多路选择器设计模4计数器设计(仿真、下载测试)数码管扫描显示电路设计(仿真、下载测试)综合模4计数器与2-3译码器大同小异。所以,我就以2-3译码器为例简单的讲述一下演示工程的创建过程。3选1多路选择器:1) 打开Quartus,创建工程,点击File-New Project Wizard注意工程文件名一定要和顶层实体名一致,否则到后面编译的时候就有可能会报错并且还很难找出错误原因。2) 点击Next,下一步是添加工程所需子模块设计源文件及设置用户库,我们目前不需要,直接单击Next。3) 选择目标器件我在实验室里

4、截了图,其实可以看出,上面器件的选取和电板上的芯片型号相同。因此,一定要根据实际情况对器件进行选取,否则,仿真时就会出现问题。4) 点击Next,是用户根据需求确定工程所用的第三方综合、仿真、时序分析工具。本工程默认None,直接点击Next。5) 工程信息的确认核实工程信息设置,如果需要修改则可单击black返回相关页面重新设置。再单击Finish结束工程创建。6) 创建设计文件:选择File-New,弹出如图所示对话框,选择Block Diagram/Schematic File选项,弹出空白图形编辑器窗口。7) 元件的放置,命名及连接在空白处双击鼠标左键,弹出如图对话框,可以直接在Nam

5、e里面输入要找的器件(这样做会比较快一些),也可以一个一个打开查找。然后单击OK或者键盘Enter,放置元器件。右击选中器件并在快捷菜单中选择Properties命令,在Name栏中输入器件名。8) 连好的元件电路如图所示然后保存文件,选择File-save或者ctrl+s,弹出对话框,默认保存工程文件名为decoder2_3.bdf9) 编译选择菜单Processing-Compiler Tool命令,然后单击Start进行全编译。10) 仿真验证1. 建立波形文件:选择File-New,弹出的对话框中选择Vector Waveform File。2. 添加节点:选择菜单Edit-Inser

6、t-Insert Node or Bus,弹出对话框,单击Node Finder,弹出如图所示对话框。然后按照如图示进行选择编辑。3. 参数设置:有两个重要的参数需要设置End Time和Grid Size。 Edit-End Time弹出结束时间对话框如图,设置Time时间为2微秒。 Edit-Grid Size,弹出网格大小设置框,Period设置为100纳秒。4. 输入信号激励:选中节点clk,使其变为蓝色高亮,然后选择左侧按钮,弹出时钟设置。总体设置如图所示5. 保存波形文件:File-Save,弹出Save as,保存为默认decoder2_3.vwf,并选中Add to curre

7、nt project。6. 进行功能仿真以及时序仿真:功能仿真:选择Processing-Generate Fuctional Simulation Netlist产生功能仿真网表。选择Assignments-Setting,做如图设置:然后File-Start Simulation启动功能仿真。功能仿真结果:data输入为00时,译出的seg为100,data输入为01时,译出的seg为010,其他情况为001.时序仿真只需要Assignments-Setting,将Simulation mode改为Timing然后再重复上述步骤就行了。时序仿真结果:7. 接下来进行管脚分配:Assignm

8、ents-Pin中分配管脚,具体如图所示:注意:input需要输入的是时钟信号,所以管脚的分配要对照你的电板进行分配。并且分配完之后还要再进行一次全编译。8. 最后是将你所做的下载到电板上:Tools-Programming,进入下载界面,单击Hardware Setup,弹出电缆配置对话框,下拉中选择ByteBlasterMV就好了,最后点击start进行下载显示。我这里只对模4计数器进行了下载显示,显示如图:以上流程无论是模4计数器、2-3译码器还是3选1多路选择器都差不多,只不过3选1多路选择器用的是VHDL语言,除了一开始创建的时候是File-New中选择的是WHDL File之外,后

9、面的工程差不多一样。所以下面就将重心放在数码管扫描电路上面。11) 数码管扫描显示电路结构1) 模4计数器根据时钟的周期性产生00,01,10,11信号同时输入给3选1多路选择器以及2-3译码器2) 3选1多路选择器获取输入的三次信号,但是只输出三次信号中的一次3) 2-3译码器接受模4计数器产生的信号并译出,进行数码管的位选4) 7499七段译码器接受3选1多路选择器输出的一次信号并将其在数码管上显示12) 波形仿真以下是数码管扫描显示电路的仿真波形图,用以在实际电路检测前发现逻辑错误。结束时间:2微秒周期100ns数码管段选三个输入信号,分别是5,9,E的二进制。数码管位选时钟信号13)

10、结果解释及验证:模4计数器产生时钟信号(clk)00,01,10,11通过sel传递给了2-3译码器对数码管进行位选。同时在din0,din1,din2输入你想要数码管显示的数据通过dout传递给了数码管,bsg则为数码管位选,根据周期性时间对数码管进行选择,而abcdefg则对应数码管的发光段。仿真图的数据提取如下:(时间段用T1,T2,T3表示)时间输入位选段选数码管显示T151001011011T290101110011T3E0010001111上面除了5之外其他的显示异常,是因为7449七段译码器有时候无法识别,会出现乱码,因此最好是用VHDL语言自己写一个七段译码器。于是,我重新写了

11、一个七段译码器。代码如下:library IEEE;use IEEE.std_logic_1164.all;entity myself isport( din:in std_logic_vector(3 downto 0); dou:out std_logic_vector(6 downto 0);end myself;architecture myself_arc of myself isbegindou = 1111110 when din=0000 else0110000 when din=0001 else1101101 when din=0010 else0110011 when d

12、in=0011 else1011011 when din=0100 else1011111 when din=0101 else1110000 when din=0110 else1111111 when din=0111 else1110011 when din=1000 else1110111 when din=1001 else1110111 when din=1010 else0011111 when din=1011 else1001110 when din=1100 else0111101 when din=1101 else1001111 when din=1110 else10

13、00111 when din=1111 else0000000;end myself_arc;并且编译通过后原图修改为我自己的七段译码器(myself):产生的刚好是正确的波形:时间输入位选段选数码管显示T1E1001001111T2C0101001110T3B00100111114) 管脚分配说明clk分配给125号管脚,为了产生一个快速的频率,使肉眼分辨不出数码管的显示是周期性扫描的结果。三、 实验日志:问题一:数码管扫描器那里总是编译不过去,并且我发现和书上有不一样的地方,decoder2_3的名字以及文件夹名字命名都不是书上的。解决方法:重新创建一个decoder2_3文件夹并将原来的

14、文件改名为decoder2_3.bfd,重新打开Quartus创建一个工程,打开decoder2_3.bdf并重新进行编译以及仿真问题二:数码管的顶层电路图怎么也编译不过去解决方法:(1)找了一下图,发现本来应该是粗导线的地方用的是细导线(2)并未将counter4.bdf,mux4_3_1.vhd,decoder2-3.bdf复制到新建工程所在文件夹中四、 实验总结:随着示波管上显示出我所想要的数据,这次试验圆满完结。通过这次试验,我了解了Quartus的平台和基本操作。对于这次的实验,我感觉熟练程度真的是逼出来的。由于一开始完全没有任何基础并且对EDA没有任何了解,所以出现了种种困难,比如模4计数器做了5遍都还是忘记要将工程保存,比如由对整个实验流程完全看不懂到最后能够熟练的操作Quartus平台,这是我这次实验的最大的收货。五、 思考题:(1) 图形输入法与硬件描述语言法优缺点是什么?举例说明一个Quartus最小工程必须维护哪些类型文件。答:图形输入法:(优点)能直接的用元件连接电路图,容易理解和思考,直观,连线简洁方便。(缺点)连线容易出错,器件容易搞混。硬件描述语言:(优点)逻辑性强

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号