ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:127.81KB ,
资源ID:10873808      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10873808.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA技术及应用实验报告参考答案docx.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA技术及应用实验报告参考答案docx.docx

1、EDA技术及应用实验报告参考答案docxEDA技术及应用实验报告系 部:电子通信工程系指导教师: 学 号: 班 级: 姓 名:实验一 点亮LED设计一、 实验目的通过此试验可以让大家逐步了解,熟悉和掌握FPGA开发软件Quartus II的使用 方法及VerilogHDL的编程方法。二、 实验内容本实验是一个简单的点亮LED灯的实验,具体包括:1) 使用Quartus II建立一个工程;2) Quartus II工程设计;3) 设置编译选项并编译硬件系统;4) 下载硬件设计到目标FPGA;5) 观察LED的状态;三、实验原理和单片机一样,向片子里写进数据,输出高电平(对于共阴极的),或者输出低

2、电平(对于共阳极)。根据Cyclone片子已经分配好的针脚设置好针脚。四、实验步骤建立一个工程一输入程序一软件编译一生成下载文件一下载一调试五、实验程序/模块名Ied1/定义输出端口定义寄存器/过程1endendmodule六、思考题(1)写出使用QuartusII软件开发工程的完整的流程。建立一个工程一输入程序一软件编译综合一生成下载文件下载一硬件调试实验二流水灯实验一、 实验目的通过此试验让大家进一步了解熟悉和掌握FPGA开发软件的使用方法 及软件编程方法。学习简单的时序电路的设计和硬件测试。二、 实验内容本实验的内容是建立用于控制LED流水灯的简单硬件电路,要求在SmartSOPC上实现

3、LED1-LED8发光二极管流水灯的显示。三、 实验原理这里的显示用分频模块(int_div)得到的较低的始终作为信号,在此时钟下,对输入数据进行移位,就得到了流水灯的效果。四、 实验步骤建立工程一输入源程序一调用模块一生成符号一调用符号一连成电路图一编译一下载一调试五、 实验程序原理图:六、思考题1.本实验顶层采用了图形输入的方式,若采用文本输入方式,如何编 写顶层文件?写出相应程序。module led2 (clock, led):input clock;output 7:0led;wire p;int_div ul( .clock (clock), , elk out (p):ledwa

4、ter u2 (. elk (p), . led (led);endmodule实验三键盘、LED发光实验一、 实验目的本实验的主要目的是联系顶层模块的设计。学习和体会分支条件语句 case的使用及FPGA的I/O控制。二、 实验内容用跳线把keyl-key8和指定的引脚连起来,以实现功能控制。三、 实验原理FPGA的所有的I/O控制块允许每个引脚单独的配置为输入口。只要 配置正确,则一暗淡几个键中有键输入,在检测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。四、实验步骤1:按以前的步骤建立工程,并按说明书进行配置引脚,未用的按三态处理。2:对文件进行编译,并检错。3:按说明短接跳帽和

5、连接跳线。4:观察输入情况。五、实验程序module keyled (key, led);input7:0 key;output7:0 led;reg7:0 led_r;reg7:0 buffer_r;assign led 二 ledr;always(key)beginbuffer_r = key;case(buffer_r)8blllllllO:ledr =811111110;模块名keyled定义键盘输入口定义发光管输出口定义寄存器输出键值过程1读取键值是键KEY1,则给寄存器赋值Oxfe8bllllll01:led_r 二二 811111100;是键KEY2,则给寄存器赋值Oxfc8bl

6、llll011:led_r 二二 811111000;是键KEY3,则给寄存器赋值0xf88f bllllOlll:ledr -=811110000;是键KEY4,则给寄存器赋值0xf08f blllOllll:ledr -=811100000;是键KEY5,则给寄存器赋值0xe08bllOlllll:ledr =811000000;是键KEY6,则给寄存器赋值0xc08blOllllll:ledr =810000000;是键KEY7,则给寄存器赋值0x808bOlllllll:ledr =800000000;是键KEY8,则给寄存器赋值0x00default: led_r =二 811111

7、111;否则给寄存器赋值Oxffendcaseendendmodule六、思考题1.能否用if语句改写本实验程序?如果能,写出相应程序。/模块名key ledmoduIe key Ied (key, Ied);i nput 7:0 key;定义键盘输入口output7:0 Ied;定义发光管输出口reg7:0 led_r;定义寄存器reg 7:0 buffer_r;assign led = led_r;输出键值always(key)/过程1beg i nbuffer_r = key;读取键值if (buffer_r=8, b11111110) led_r 二 8* b11111110;e I

8、se i f (buffer_r=8, b11111101)led_r 二 8b11111100;else if (buffer_r=8b11111011)led_r 二 8b11111000;else if (buffer_r=8, b11110111)led_r =8*611110000;else if (buffer_r=8b11101111)led_r 二 8b11100000;eIse i f (buffer_r=8, b10111111)led_r = 8b10000000;else (buffer_r=8, b01111111)led_r 二 8 bOOOOOOOO;endend

9、moduIe实验四静态数码管显示实验一、 实验目的学习LPM兆模块的调用。二、 实验内容建立7段译码显示模块,用于控制LED数码管的静态显示。要求在 实验箱上的数码管依显示09和A-F 1 6个字符。三、 实验原理本实验通过分频模块int_div分频得到1HZ的频率信号,加载4位 计数器的时钟输入端,计数循环输出0-9, A-F16个数,最后通过七 段译码后在数码显示出来。四、 实验步骤1:立源程序文件decl7s.v,输入程序代码并保存,并对此生成符号。2:添加LPM模块并按需要生成相应的文件。五、 实验程序六、思考题1.本实验采用的是共阳极数码管,若采用共阴极数码管,有什么不同?对应显示相

10、同的数时,输入的不同。2.如何显示 和 PPPPPPPP?H对应的89h, P对应的是73h;实验五动态数码管显示实验、实验目的 学习动态扫描显示的原理图及电路的设计。二、实验内容 1:在SmartSOPC试验箱上完成LED数码管的动态显示“1-8”个数字。2:放慢扫描速度演示动态显示的原理过程。三、实验原理虽然每次只有一个LED显示,但只要扫描显示速率够快,由于人的 视觉余辉效应,使我们仍会感觉所有的数码管都在同时显示。四、实验步骤 1:建立一个空白工程,并命名。2:对该工程文件进行全程编译处理,若在编译过程中发现错误,则 找出并更改,直至编译成功为止。3:从设计文件创建模块。4:将光盘中E

11、DA目录文件拷贝到工程目录。5:添加常量兆功能模块。五、实验程序module scan_led(clk_lk,d,dig,seg);input clk_lk;input31:0 d;output 7:0 dig;output 7:0 seg;reg7:0 seg_r;reg7:0 dig_r;reg3:0 disp_dat;reg2:0count;assign dig = dig_r;模块名scan_led输入时钟输入要显示的数据/数码管选择输出引脚数码管段输出引脚定义数码管输出寄存器定义数码管选择输出寄存器定义显示数据寄存器定义计数寄存器输出数码管选择 assign seg = seg_r;

12、always (posedge clk_lk)begincount = count + 1bl;endalways (posedge clk_lk)begincase(count)3*d0:disp_dat = d31:28;3*dl:disp_dat = d27:24;3*d2:disp_dat = d23:20;3d3:disp_dat = d19:16;3*d4:disp_dat = d15:12;3d5:disp_dat = dll:8;3*d6:disp_dat = d7:4;3d7:disp_dat = d3:0;endcasecase(count)3,d0:dig_r = 8,b

13、01111111;3,dl:dig_r = 8bl0111111;3,d2:dig_r = 8bll011111;3,d3:dig_r = 8,blll01111;3,d4:dig_r = 8bllll0111;3,d5:dig_r = 8,blllll011;3,d6:dig_r = 8,bllllll01;3,d7:dig_r = 8blllllll0;endcaseendalways (disp_dat)begincase(disp_dat)4h0:seg_r = 8*hc0;4hl:seg_r = 8*hf9;4*h2:seg_r = 8*ha4;4*h3:seg_r = 8*hb0;

14、/输出数码管译码结果定义上升沿触发进程选择扫描显示数据第一个数码管第二个数码管/第三个数码管/第四个数码管第五个数码管第六个数码管/第七个数码管第八个数码管选择数码管显示位选择第一个数码管显示选择第二个数码管显示选择第三个数码管显示选择第四个数码管显示选择第五个数码管显示选择第六个数码管显示选择第七个数码管显示选择第八个数码管显示七段译码显示0显示1显示2显示34h4:seg_r = 8*h99;显示44h5:seg_r = 8h92;显示54h6:seg_r = 8h82;显示64h7:seg_r = 8hf8;显示74h8:seg_r = 8h80;显示84h9:seg_r = 8h90;

15、显示94ha:seg_r = 8h88;显示a4hb:seg_r = 8h83;显示b4hc:seg_r = 8hc6;显示C4hd:seg_r = 8*hal;显示d4he:seg_r = 8h86;显示e4hf:seg_r = 8h8e;显示fendcaseendendmodule六、思考题1.说出数码管动态显示的原理。每一位都是将8个发光二极管(下面简称LED)的负极接在一块,就有8个负 极,接上8个10 ,这个就是位选,相应I。口输出低电平算是选通该位。相同字段LED的正极连在一起,也有八根线,接上8个I。口,这就是段选,相 应10 口输出高电平算是选通该段。实验六按键去抖动实验一、

16、实验目的学习按键去抖动电路的硬件设计。二、 实验内容本实验的内容是建立按键消抖模块,对比有加消抖模块和没加消抖模 块电路的区别。三、 实验原理 作为机械开关的键盘,在按键操作时,机械触点的弹性及电压突跳等原因,在触点或开启的瞬间会出现电压抖动。四、实验步骤 1:启动QuartusII建立一个空白工程并命名。2:将电路用Verilog VHDL语言描述出来,并扩展多个通道。3:从设计文件创建模块,由debounce.v生成命名为debounce.vbsfo 4:其他步参考顶层模块原理图。五、实验程序按键消抖模块module debounce(clk,key_in,key_out);input e

17、lk;/系统时钟输入按键消抖输出assign key_out = (doutl I dout2 I dout3);always (posedge elk) begindoutl = key_in;dout2 = doutl;dout3 = dout2;end endmodule六、思考题always ( posedge elk) begindout l=key_in; /非阻塞赋值dout2=doutl;dout3=dout2;end/其RTL描述为:always ( posedge elk)begindoutl=key_in; /阻塞赋值dout2=doutl;dout3=dout2;end

18、 /其RTL描述为:实验七硬件电子琴实验I、实验目的学习利用蜂鸣器和按键设计硬件电子琴。二、 实验内容在SmartSOPC实验箱上的实现一个简单的电子琴。三、 实验原理由于组成乐曲的每个音符的频率值及其持续时间是乐曲演奏的2个 基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频 率信号持续的时间。四、实验步骤1:在QuartusII中建立一个工程项目文件,输入程序代码并保存。2:选择目标器件并对相应的引脚进行锁定。3:对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更改,直至编译成功为止。4:打开电源,执行下载命令。五、实验程序default :count_end =

19、16hffff;endcase endassign beep =beep_r;assign led =key_r;endmodule六、思考题1.举例说明产生不同音符的原理。由于组成乐曲的每个音符的频率值及其持续时间是乐曲演奏的2 个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该 频率信号持续的时间。频率的高低决定了音调的高低,而乐曲的简谱 与各音名的频率关系是对应的,只要求出对应的分频分数,这样利用 程序可以很轻松的得到相应的乐声。实验八数字时钟设计一、 实验目的学习数字时钟的硬件设计。二、 实验内容在SmartSOPC试验箱上完成一个可以计时的数字时钟,其显示时间范围是 00:

20、 00: 00-23:59:59三、 实验原理一个完整的时钟应由3部分组成,秒脉冲发生电路,计数显示部分和 时钟调整部分。本实验的校时电路在此仅仅完成了暂停,清零的基本 功能。四、 实验步骤1:在QuartusII中建立一个工程项目文件。2:选择目标器件并对相应的引脚进行锁定。3:对该工程文件进行全程编译处理。4:硬件连接,下载程序。五、实验程序module clock(clk,key,dig,seg);input elk;inputl:O key;output7:0 dig;output7:0 seg;reg7:0 seg_r;reg7:0 dig_r;reg3:0 disp_dat;reg

21、 24:0 count;reg23:0hour;reg sec,keyen;reg 1:0 dout 1 ,dout2,dout3;wirel :0key_done;assign dig = dig_r;assign seg = seg_r;秒信号产生部分always (posedge elk)begincount = count + 1bl;if(count = 2524000000)begincount = 25dO;sec =sec;endend按键消抖处理部分模块名clock输入时钟输入按键数码管选择输出引脚数码管段输出引脚定义数码管输出寄存器定义数码管选择输出寄存器定义显示数据寄存器

22、定义计数寄存器定义现在时刻寄存器定义标志位寄存器按键消抖输出输出数码管选择输出数码管译码结果定义clock上升沿触发/0.5S 到了吗?计数器清零置位秒标志/按键消抖输出assign key_done = (doutl I dout2 I dout3);always (posedge count17)begindoutl = key;dout2 = doutl;dout3 = dout2;endalways (negedge key_done0)beginkeyen =keyen;end数码管动态扫描显示部分always (posedge elk)begincase(count17:15)3*

23、d0:disp_dat = hour3:0;3*dl:disp_dat = hour7:4;3d2:disp_dat = 4ha;3d3:disp_dat = hourll:8;3*d4:disp_dat = hour15:12;3d5:disp_dat = 4ha;3*d6:disp_dat = hour19:16;3d7:disp_dat = hour23:20;endcasecase(count 17:15)3,dO:dig_r = 8,blllllllO;3,dl:dig_r = 8,bllllll01;3,d2:dig_r = 8,blllll011;3d3:dig_r = 8bll

24、ll0111;3,d4:dig_r = 8blll01111;3,d5:dig_r = 8bll011111;3,d6:dig_r = 8bl0111111;3d7:dig_r = 8b01111111;endalways (posedge elk)begincase(disp_dat)将琴键开关转换为乒乓开关/count17:15大约 1ms 改变一次选择扫描显示数据秒个位秒十位显示分个位/分十位显示/时个位时十位选择数码管显示位选择第一个数码管显示选择第二个数码管显示选择第三个数码管显示选择第四个数码管显示选择第五个数码管显示选择第六个数码管显示选择第七个数码管显示endcase4h0:s

25、eg_r = 8*hcO;4hl:seg_r = 8hf9;4h2:seg_r = 8*ha4;4h3:seg_r = 8hbO;4h4:seg_r = 8h99;4h5:seg_r = 8h92;4h6:seg_r = 8h82;4h8:seg_r = 8h80;4h9:seg_r = 8h90; /4ha:seg_r = 8hbf;default: seg_r = 8hff;endcaseif(count 17:15= 3d2)&sec)seg_r = 8hff;endalways (negedge sec or negedge key_donel)/beginif(!key_donel)

26、beginhour = 24hO;endelse if(!keyen)beginhour 3:0 = hour 3:0 + 1bl;if (hour 3:0 = 4ha)beginhour 3:0 = 4hO;hour 7:4 = hour7:4 + 1bl;if(hour7:4 = 4h6)beginhour 7:4 = 4hO;hourll:8 = hourU:8 + 1bl;if(hourll:8 = 4ha)beginhourll:8 = 4h0;hour15:12 = hour15:12 + 1bl;if(hour15:12 = 4*h6)beginhour15:12=4h0;hou

27、r19:16 = hour19:16 + 1bl;if(hour19:16 = 4ha)beginhour19:16 = 4*h0;hour 23:20 = hour23:20 + 1bl;endif(hour23:16 = 8h24)hour23:16 = 8h0;endendendendendendendmodule六、思考题1.自己动手添加校时程序,module clock(clk,key,dig,seg);input elk;inputl:0 key;output7:0 dig;output7:0 seg;reg7:0 seg_r;reg7:0 dig_r;reg3:0 disp_dat;reg24:0count;reg23:0hour;reg sec,keyen;reg 1:0dout 1 ,dout2,dout3;wire 1:0 key_done;assign dig = dig_r;assign seg = seg_r;秒信号产生部分always (posedge elk)写出相应程序。模块名clock输入时钟输入按键数码管选择输出引脚数码管段输出引脚定义数码管输出寄存器定义数码管选择输出寄存器定义显示数据寄存器定义计数寄存器定义现在时刻寄存器定义标志位寄存器按键消抖输出输出数码管选择

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1