收藏 分销(赏)

EDA实验箱实验指导书.doc

上传人:精*** 文档编号:3383802 上传时间:2024-07-03 格式:DOC 页数:58 大小:750.54KB
下载 相关 举报
EDA实验箱实验指导书.doc_第1页
第1页 / 共58页
EDA实验箱实验指导书.doc_第2页
第2页 / 共58页
EDA实验箱实验指导书.doc_第3页
第3页 / 共58页
EDA实验箱实验指导书.doc_第4页
第4页 / 共58页
EDA实验箱实验指导书.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、实验二 流水灯1. 实验目的通过本实验让学生进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL语言的编程方法;学习简朴的时序电路的设计和硬件测试。2. 实验内容本实验的内容是控制实验箱上的发光二极管LED1LED8,使之实现流水灯显示。3. 实验原理在LED1LED8引脚上周期性地输出流水数据,即输出的数据依次为11111111、11111110、11111100、11111000、11110000、11100000、11000000、10000000、00000000,如此循环显示,输出数据“0”,表达点亮相应的LED小灯。为了方便观测,流水的速率控制在2Hz左右。在核心板

2、上有一个48MHz的标准时钟源,该时钟源与芯片EP2C5的23脚相连。为了产生2Hz的时钟源,在此调用了分频模块int_div。4. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为led_waterflow.qpf。(2) 新建ledwater.vhd源程序文献,源代码如下。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。生产符号文献ledwater.bsf (File Create/_Update Create Symbol Files for Current File)。流水灯程序参考LIBRARY IEEE; USE IEEE.STD

3、_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY ledwater ISPORT(clk:IN STD_LOGIC;led:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END;ARCHITECTURE one OF ledwaterISSIGNALled_r:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINled=led_r(7 DOWNTO 0);PROCESS(clk)BEGIN IF clkevent and clk=1 THE

4、N led_r=led_r(7 DOWNTO 0) & 0; IF led_r= THEN -循环完毕吗? led_r=; -是,则重新赋初值 END IF; END IF;END PROCESS;END;(3) 将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。(4) 新建图形文献,命名为led_waterflow.bdf并保存。在空白处双击鼠标,打开symbol对话框,在symbol对话框的左上角的libraies中,分别将project下的ledwater和int_div模块放在图形文献led_waterflow.bdf中,加入输入input、输出outpu

5、t引脚,双击各引脚符号,进行引脚命名。完整的顶层模块原理图如下图1所示。双击int_div中的参数框,并修改参数,如下图2所示。将F_DIV的值改为24000000,F_DIV_WIDTH的值改为25,单击“拟定”按钮保存修改的参数。图 流水灯顶层模块图 参数修改对话框假如在led_waterflow.bdf上不能看到参数设立框,在空白出右击鼠标,选择Show Parameter Assignments命令来显示参数设立框。(5) 将实验模块选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1

6、C12Q240C8。引脚锁定方法如下表所列。(6) 将led_waterflow.bdf设立成顶层实体Project Set as Top-level Entity。对该工程文献进行全程编译解决,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(7) 把JP20的led0led7的跳帽插上,使发光二极管有效。下载程序到芯片上,观测流水灯的变化。更改分频模块的分频系数,并重新编译下载,观测流水灯的变化。表 引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5EP1C12Led0116128Led5105123Led1110127Led663122Led2114126Led71

7、06121Led3107125clock23153Led4112124实验三 读取按键信号1. 实验目的通过本实验让学生进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL语言的编程方法;并熟悉VHDL文献为顶层模块的设计;学习和体会分支条件语句case的使用方法及FPGA I/O口的输出控制。2. 实验内容实验箱上有8个发光二极管LED1LED8和8个按键KEY1KEY8。本实验的内容是用这8个按键分别控制8个发光二极管,一旦有键按下,则点亮相应的发光二极管。3. 实验原理FPGA的所有I/O控制块允许每个I/O引脚单独配置为输入口,但是这种配置是系统自动完毕的。当该I/O口

8、被设立为输入口使用时(如定义key1为输入引脚:input),该I/O控制块将直接使三态缓冲的控制端接地,使得该I/O引脚对外呈高阻态,这样该I/O引脚即可用作专用输入引脚。对的分派并锁定引脚后,一旦在KEY1KEY8中有键输入,即可在检测到键盘输入的情况下,继续判断其键盘并作出相应的解决。4. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为key_led.qpf。(2) 新建key_led.vhd源程序文献,源代码如下。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。程序参考LIBRARY IEEE; USE IEEE.STD_LOGIC

9、_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITYkeyledISPORT(key:INSTD_LOGIC_VECTOR(7 DOWNTO 0);led:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END;ARCHITECTURE one OFkeyled ISSIGNAL led_r:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL buffer_r:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINled=led_r;PROC

10、ESS(key,buffer_r)BEGIN buffer_rled_rled_rled_rled_rled_rled_rled_rled_rled_r=11111111; END CASE;END PROCESS;END;(3) 选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。引脚锁定方法如下表所列。表引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5EP1C12Led0116Key056Led1110Key159Led2114Key257Led3107Ke

11、y361Led4112Key458Led5105Key564Led663Key660Led7106Key768(4) 对该工程文献进行全程编译解决,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(5) JP6是一个3针的插座,假如把短接帽接到下面,使下面两个插针短接,则按键有效;假如把短接帽接到上面,使上面两个插针短接,则矩阵键盘有效。本实验令按键有效,把短接帽接到下面。把JP20的led0led7的跳帽插上,使发光二极管有效。下载程序到芯片上,按下KEY1KEY8的任何一键,观测发光二极管LED1LED8的亮灭状态。实验四 静态数码管显示1. 实验目的通过本实验让学生学习7段数

12、码管显示译码器的设计,进一步了解、熟悉和掌握FPGA开发软件Quartus II的使用方法及VHDL语言的编程方法,学习LPM兆功能模块的调用。2. 实验内容实验箱上有2个4位动态共阳极数码管LEDD4和LEDD3,其中8个位码DIG0DIG7和8位段码SEG0SEG7分别与FPGA相应的引脚相连。这样只要DIG0DIG7上一直输出低电平“0”,则8个数码管将显示相同的数码,这样8位动态数码管就变成了静态数码管。本实验的内容是建立7段译码显示模块,用于控制LED数码管的静态显示。规定在实验箱上循环显示09和AF 16个字符。3. 实验原理数码管LED显示是工程项目中使用较广的一种输出显示器件。

13、常见的数码管有共阴和共阳两种。共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。公共端常称为位码,而将其它8位称为段码,分别为:a、b、c、d、e、f、g、h,其中h为小数点。对于共阳极数码管,只要公共端为高电平“1”,某个段输出为低电平“0”,则相应的段就亮。本实验通过度频模块得到1Hz的频率信号,加载于4位计数器的时钟输入端,计数循环输出09和AF 16个字符,通过7段译码模块后在数码管上显示出来。4. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为sled.qpf。(2) 新建decl7s.vhd源程

14、序文献,源代码如下。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。生产符号文献decl7s.bsf (File Create/_Update Create Symbol Files for Current File)。程序参考LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY decl7sISPORT(d:IN STD_LOGIC_VECTOR(3DOWNTO 0);-输入4位二进制码seg:OUTSTD

15、_LOGIC_VECTOR(7DOWNTO 0)-七段译码输出);END;ARCHITECTURE ONE OF decl7s ISSIGNAL seg_r:STD_LOGIC_VECTOR(7 DOWNTO 0);-定义数码管输出寄存器BEGINsegseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_r seg_r=XFF; END CASE; END PROCESS;END;(3) 将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。(4) 添加4位兆计数

16、器功能模块。环节如下: 在Quartus II主界面中选择ToolsMega Wizard Plug-In Manager,打开如图所示的兆功能模块向导。选择Create a new custom megafunction variation新建一个新的兆功能模块。图 添加兆功能模块向导对话框Page1 单击Next进入向导第2页,按照如下图所示填写。选择LPM_COUNTER,设立号输出文献的类型和途径,使用Cyclone族的器件。 单击Next进入向导第3页,按照如下图所示填写。选择4位计数器。 剩余环节不需更改设立,在这里可以一步一步单击Next,或者直接单击Finish结束。注旨在结束

17、时一定要选择生成“*.bsf”符号文献。图 添加兆功能模块向导对话框Page2图 添加兆功能模块向导对话框Page3(5) 新建图形设计文献,命名为sled.bdf并保存。文献的设计如下图所示。图 静态LED显示顶层模块图(6) 选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。引脚锁定方法如下表所列。表 引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5EP1C12seg0145161dig0135138seg1142144dig1127137seg21431

18、59dig2133136seg3139141dig3117135seg4141156dig4128134seg5137139dig5115133seg6138143dig6118132seg7134140dig7113131clock23153(7) 将sled.bdf设立成顶层实体(ProjectSet as Top-level Entity)。对该工程文献进行全程编译解决,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(8) 下载程序到芯片上,观测数码管的显示状态。实验五 动态数码管显示1. 实验目的学习动态扫描显示的原理及电路的设计。2. 实验内容本实验内容是建立数码管动态

19、扫描显示模块。在实验箱上完毕LED数码管的动态显示18这8个数。稳定显示后,放慢扫描速度演示动态显示的原理过程。3. 实验原理数码管LED显示是工程项目中使用较广的一种输出显示器件。常见的数码管共阴和共阳两种。共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。公共端常称为位码,而将其它8位称为段码,分别为:a、b、c、d、e、f、g、h,其中h为小数点,只要公共端为高电平“1”,某个段输出为低电平“0”,则相应的段就亮。把每个数码管的8个段都分别连接到SEG0SEG7,8个数码管分别由8个选通信号DIG0DIG7来选择。被选通的数

20、码管显示,其余关闭。例如在某一时刻,DIG2为“0”,其余数码管选通信号为“1”,这是仅DIG2相应的LED数码管显示来自段码信号端的数据,而其他数码管成关闭状态。根据这种电路状态,假如希望8个数码管全都显示想要的数据,就必须使得8个选通信号DIG0DIG7分别单独选通,同时在段输入端加上相应的数据。虽然每次只有一个LED显示,但只要扫描的速率够快,由于人眼视觉的余晖效益,我们仍会感觉所有数码管都在同时显示。4. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为dled.qpf。(2) 新建scan_led.vhd源程序文献,源代码如下。然后进行综合编译。若在编译过程中发

21、现错误,则找出并更正错误,直到编译成功为止。生产符号文献scan_led.bsf (File Create/_Update Create Symbol Files for Current File)。程序参考:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY scan_led ISPORT(clk_1k:INSTD_LOGIC;d:INSTD_LOGIC_VECTOR(31 DOWNTO 0);-输入要显示的数据dig:OU

22、TSTD_LOGIC_VECTOR(7 DOWNTO 0);-数码管选择输出引脚seg:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)-数码管段输出引脚);END ENTITY;ARCHITECTURE one OF scan_led ISSIGNAL seg_r:STD_LOGIC_VECTOR(7 DOWNTO 0);-定义数码管输出寄存器SIGNAL dig_r:STD_LOGIC_VECTOR(7 DOWNTO 0);-定义数码管选择输出寄存器SIGNALdisp_dat: STD_LOGIC_VECTOR(3 DOWNTO 0);-定义显示数据寄存器SIGNALco

23、unt:STD_LOGIC_VECTOR(2 DOWNTO 0);-定义计数寄存器BEGINdig=dig_r;seg=seg_r;PROCESS(clk_1k)BEGIN IFRISING_EDGE(clk_1k) THEN countdisp_datdisp_datdisp_datdisp_datdisp_datdisp_datdisp_datdisp_datdig_rdig_rdig_rdig_rdig_rdig_rdig_rdig_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rseg_rse

24、g_r=X8e;-显示f END CASE;END PROCESS;END;(3) 将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。(4) 添加4位兆计数器功能模块。环节如下: 在Quartus II主界面中选择ToolsMega Wizard Plug-In Manager,打开如图所示的兆功能模块向导。选择Create a new custom megafunction variation新建一个新的兆功能模块。图 添加兆功能模块向导对话框Page1 单击Next进入向导第2页,按照如下图所示填写。选择LPM_CONSTANT,设立好输出文献的类型和途径,使

25、用Cyclone族的器件。 图 添加兆功能模块向导对话框Page2 单击Next进入向导第3页,按照如下图所示填写。数据宽度32位,数值为12345678H。图 添加兆功能模块向导对话框Page3 剩余环节不需更改设立,在这里可以一步一步单击Next,或者直接单击Finish结束。如下图所示。注旨在结束时一定要选择生成“*.bsf”符号文献。图 添加兆功能模块向导对话框结束页(5) 新建图形设计文献,命名为dled.bdf并保存。文献的设计如下图所示。图 动态LED顶层显示模块(6) 选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q2

26、08C8,或者Cyclone I系列的EP1C12Q240C8。引脚锁定方法如下表所列。表 引脚锁定方法表 引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5EP1C12seg0145161dig0135138seg1142144dig1127137seg2143159dig2133136seg3139141dig3117135seg4141156dig4128134seg5137139dig5115133seg6138143dig6118132seg7134140dig7113131clock23153(7) 将dled.bdf设立成顶层实体(ProjectSet as Top-l

27、evel Entity)。对该工程文献进行全程编译解决,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(8) 下载程序到芯片上,观测数码管的显示状态。(9) 稳定显示后,放慢扫描速度演示动态显示的原理过程。实验 蜂鸣器输出报警声1. 实验目的学习交流蜂鸣器的发声原理。2. 实验内容在实验箱上的蜂鸣器输出报警笛声。3. 实验原理实验箱上有一个交流蜂鸣器BUZZER,只要在BEEP上输入一定频率的脉冲,蜂鸣器就会发出高低音调不同的声音。4. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为beep.qpf。(2) 新建beep.vhd源程序文献,源代码如下。然后

28、进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。程序参考:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY beep IS PORT(clk_48M:INSTD_LOGIC;output:OUTSTD_LOGIC);END ;ARCHITECTURE one of beep ISSIGNALcount:STD_LOGIC_VECTOR(27 DOWNTO 0);SIGNALbeep_r:STD_LOGIC;B

29、EGINPROCESS(clk_48M) BEGINIFRISING_EDGE(clk_48M)THENIFcount=1111THENcount = 0000;ELSEcount=count+1;END IF;END IF;END PROCESS;PROCESS(count(9)BEGINbeep_r= not (count(13) AND count(24) AND count(27);END PROCESS;output=beep_r;END;(3) 选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone

30、 I系列的EP1C12Q240C8。引脚锁定方法如下表所列。表 引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5EP1C12beep103119clk23153(4) 对该工程文献进行全程编译解决,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(5) 将JP2 和JP20的beep接上,使得蜂鸣器有效。下载程序到芯片上,将跳线短接帽接好,此时可以听到蜂鸣器发出“滴滴”的报警声。实验 1位全加器的文本输入(波形仿真用)1. 实验目的通过此实验让学生逐步了解、熟悉和掌握FPGA开发软件Quartus II的使用方法及VHDL的编程方法。学习电路的仿真方法。2. 实验内容本

31、实验的内容是建立一个1位全加器。在实验箱上的按键KEY1KEY3分别为A、B和Cin,并通过LED1LED3指示相应的状态。输出Sum和Cout通过LED7和LED8指示。3. 实验原理1位全加器的真值表如下所示。表 1位全加器逻辑功能真值表ABCinSumCout00000010101001011001001100110110101111114. 实验环节(1) 启动Quartus II,建立一个空白工程,然后命名为full_add.qpf。(2) 新建full_add.vhd源程序文献,源代码如下。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。程序参考:LI

32、BRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITYfull_add IS PORT(a,b,cin: IN STD_LOGIC;key1,key2,key3: OUT STD_LOGIC; sum,cout: OUTSTD_LOGIC );END;ARCHITECTURE one OFfull_addIS SIGNAL sum_r,a_r,b_r,cin_r:STD_LOGIC_VECTOR( 1 DOWNTO 0); BEGIN

33、 Key1=a; a_r=0 & a;-将1位矢量扩为2位 b_r=0 & b;-将1位矢量扩为2位 cin_r=0 & cin;-将1位矢量扩为2位 sum_r=a_r+b_r+cin_r; sum=sum_r(0); cout”按钮添加所有节点,最后按下“ok”按钮。图 添加节点 波形编辑器默认的仿真结束时间为1us,根据仿真需要可以设立仿真文献的结束时间。选择Edit End Time命令可以更改。这里采用默认值不需更改。图 添加完节点的波形图 编辑输入节点的波形。编辑时将使用到波形编辑工具栏中的各种工具。下图显示了工具栏中各种工具的功能。图 波形编辑器工具条 在Quartus II主界面下选择Processing Simulator Tool 命令,弹出如下图对话框。按下图环节进行选择和设立 观测仿真结果是否与设计相符合,假如不符合,须重新设计文献,再进行综合编译、仿真,直到仿真结果与设计相符为止。图 仿真设立对话框图 1位全加器仿真波形图(4)选择目的器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。引脚锁定方法如下表所列。表 引脚锁定方法信号引脚信号引脚EP2C5EP1C12EP2C5

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服