当前位置: 首页 > 产品展示 > 数码模块

火博sports

PRODUCTS
×

火博sportsFPGA实验报告5篇

发布时间:2024-04-13 23:05:49 来源:火博体育首页 作者:HB火博APP官网

  编写counter计数器,在Quartus II仿真软件中生成网表,再在Modelsim中进行后仿线.在Modelsim编写源程序(counter计数器及激励),编译源文件,确保程序的正确性,并进行前仿真,生成波形图如下:

  end endmodule 2.新建文件夹,将源程序counter.v放进去。然后启动Quartus II仿线).在【File】下拉菜单中选中New Project Wizard选项,出现对话框。并指定工程工作目录、工程名称和顶层模块名,如图(a)所示。

  3.新建文件夹,将生成的vo,sdo文件,altera时延文件cyclone-atoms.v及编写的top.v文件拷入,在Modelsim中进行后仿线).新建工程,向工程中添加vo,top,及时延文件。

  通过本次实验,我基本熟悉掌握了前仿真、后仿真的整个实验步骤及流程,熟练掌握了Modelsim和Quartus仿真软件的使用方法。

  可在欢迎界面点击“Creat a New Project”进入工程建立界面,亦可关闭欢迎界面,点击菜单栏的“File”,点击“New Project Wizard”进入建立工程界面。右侧为建立工程界面,点击next。

  在此界面选定工程路径,取好工程名,点击“Next”。注意:路径中不能有中文,工程名也不能有中文。

  在管脚配置完成后,还需将工程再编译一次,成功后,点击主界面工具栏中的亦可点击主界面菜单栏中“Tools”,点击“Programmer”

  进入代码烧写界面后,点击“Start”,当“Progress”为100%时,表示烧写完成,这是可观察DE2-70板现象

  获得预期的效果,两组的信号红黄绿灯交替切换,计数器记为零时信号灯切换状态,红灯35s,黄灯5s,绿灯30s。三,心得体会

  1.进一步熟悉七段码译码器的硬件接口。2.掌握用扫描方法驱动多个数码管硬件接口。3.掌握秒表VHDL的编程方法。

  1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。

  2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。

  (2).实验原理: 秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。在设计秒表的时候,时钟的选择为100Hz。变量的选择:因为xx(0.01秒)和hh(小时)表示的范围都是0~99,所以用两个4位二进制码(BCD码)表示;而ss(秒钟)和mm(分钟)表示的范围是0~59,所以用一个3位的二进制码和一个4位的二进制码(BCD)码表示。显示的时候要注意的问题就是小时的判断,如果小时是00,则显示格式为mm-ss-xx,如果小时不为00,则显示hh-mm-ss。

  1.计时模块:计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。

  计时显示电路的作用是将计时值在LED数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示。部分源程序:

  1.进一步理解实验的原理,各部分的组成以及功能。2.运行程序之前仔细检查程序,并适当注释。3.按照规定分配管脚,注意区别不能定义的管脚。

  中我们遇到了很多困难,但通过从网上找一些相关资料,最终完成了设计任务。开始做设计时总是会出现各种错误,经过不停的编译及改错最终得到了正确的程序。其实这些错误的主要原因是自己的粗心造成的,如果细心一些这些错误时可以避免的。在编程时,要使用层次化结构的思想,这样程序检查起来也比较方便,调试时也给了自己很大的方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我们要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我们要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。

  在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。总之这次的设计受益匪浅。

  2、计数部分:采用低级影响高级的想法,类似进位加1的思路。对8个寄存器进行计数,同步数码管输出。

  3、数码管输出部分:用一个拨码开关控制显示,当sw0=0时,四位数码管显示秒、毫秒的计数。当sw0=1时,四位数码管显示时、分得计数。

  4、调整部分:分别用四个按键控制时、分、秒、毫秒的数值。先由一个开关控制计数暂停,然后,当按键按下一次,对应的数码管相对之前的数值加1,,通过按键实现时间控制,最后开关控制恢复计数,完成时间调整。

  各个引脚说明: Clk:50MHZ SW:数码管切换,SW=’0’时,数码管显示为秒,毫秒。SW=’1’时,数码管显示为时,分。

  SW2:时钟调整接通按钮,当SW2=’0’时,不进行调整,当SW=’1’时,通过按键调整时间。

  KEY2:分调整,按一次实现+1功能 KEY3:时调整,按一次实现+1功能 Q0;第一个数码管 Q1;第二个数码管 Q2: 第三个数码管 Q3: 第四个数码管

  实验结果均完成所有要求,但有一个bug,在实现调整功能的时候,不能实时调整数码管暂停下来的数字,只能从之前调整过的数值起开始调整,不过能实现调整之后,开启时钟,时钟即在设定的时间开始跑。当然找到解决的方法,当由于思路和已经 写好的程序冲突性较大,所以此处不再修改。

  本次实验在分频的基础上进行拓展,同时应用数码管显示,开关和按键的控制,比较系统的做了一个实验,对自身的提高还是很有帮助的。

  1、在开始写程序之前最好先评估好自己的思路,简易画出想象中的原理图,再进行编程,对之后的修改有很大的帮助。

  2、程序写长了,发现错得时候,修改比较麻烦,所有注意编程习惯很重要,适当的加一些注释,提高程序的可读性。

  1可编程逻辑实验箱EP3C55F484C8 一台(包含若干LED指示灯,拨码开关等)2计算机及开发软件QuartusII 一台套

  由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原参考程序改写为减法器,且”q1

  由于参考程序中的rst清零输入作用并未实现,所以应将程序主体部分的最外部嵌套关于rst输入是否为1的判断,且当rst为1时,给四位指示灯置数”1111”实现全灭,当rst为0时,运行原计数部分。

  (3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件(4)将文件下载至实验箱运行,观察计数器工作现象,调试拨动开关查看是否清零。可以通过改变与PIN_P20(工程中绑定为clk输入的I/O接口)相连导线的另一端所选择的实验箱频率时钟的输出口位置,改变LED灯显示变化频率。

  并且对照指导书上对实验箱自带时钟频率的介绍,可以通过改变导线接口转换输入快慢,排查由于clk输入管脚损坏而可能引起的故障。

  (2)图形源文件编辑:由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原电路图中两个输出管脚与非门串联以实现原参考输出“高电平亮,低电平灭”。

  (3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件(4)将文件下载至实验箱运行,观察半加器工作现象,调试拨动开关查看进位与置数指示是否正常工作。

  SW1下拨为0时,四个LED指示灯可以对输入脉冲从”0000”到”1111”进行十六位循环计数(其中亮为1,灭为0)。SW1上拨为1时可以实现四个LED灯保持全灭清零。且四位二进制加法计数器功能成功实现

  SW1与SW2输入分别为”00”、”01”、”10”、”11”时,进位指示与置数指示灯分别显示”00”、”01”、”01”、”10”(其中亮为1,灭为0)。且一位半加器功能成功实现。

  2实验箱上LED显示灯与设计逻辑相反时可以通过修改程序逻辑或给电路图添加非门实现正逻辑显示。

  2、学习并分析指导书中实例,从中发现感兴趣的题目,并以此自设计一个有内容,功能稍复杂的主、子程序综合应用例程,实现调试与验证。

  16×16扫描LED点阵的工作原理同8位扫描数码管类似,其结构示意图(图1)与等效电路图(图2)如下。它有16个共阴极输出端口,每个共阴极对应有16个 LED显示灯,所以其扫描译码地址需4位信号线),从右起为第一列且COL1-4对应”0000”。其汉字扫描码由16位段地址(从下至上管脚对应ROW1-ROW16)输入。本设计选用的LED列扫描,汉字信号行输入的方式,显示完整汉字。

  列循环扫描,通过对每一列的扫描来完成对字母的现实,本设计为使列扫描符合视觉暂留要求,扫描频率至少大于16×8=128Hz,周期小于7.8ms,以此给人以连续的感觉。汉字的信息储存

  用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作。第一步是在程序中建立汉字数据库。第二步是在扫描模块的控制下,配合列扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如(图3)所示的被分成16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,汉字取模可由专用软件进行。

  由于本实验箱为从右至左依次对应”0000”列到”1111”列,从下至上为最高位到最低位,于平时习惯的认字方向相反,所以注意在逐列扫描的设计中要对字取“反模”。

  例如要在右边起第2列的从上到下数2、4、6、8行亮,则列编号为”0001”、行输入为”***0”就可以实现了。

  为使汉字不断地循环显示,并且使每个汉子显示后停留,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改每个显示和停留周期包含的总时钟脉冲数值来控制每个字的显示时间,运用状态机设计方法给四个汉字对应的不同输入状态进行编码,即可使汉字依次清晰显示。

  1建立工。


火博sports