eda技术及应用实验报告

上传人:第*** 文档编号:34015826 上传时间:2018-02-20 格式:DOC 页数:28 大小:144KB
返回 下载 相关 举报
eda技术及应用实验报告_第1页
第1页 / 共28页
eda技术及应用实验报告_第2页
第2页 / 共28页
eda技术及应用实验报告_第3页
第3页 / 共28页
eda技术及应用实验报告_第4页
第4页 / 共28页
eda技术及应用实验报告_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《eda技术及应用实验报告》由会员分享,可在线阅读,更多相关《eda技术及应用实验报告(28页珍藏版)》请在金锄头文库上搜索。

1、参考模板千万不要 照抄否则后果很严重多写点自己在实验时遇到的问题前四个实验报告详细后四个报告可以适当简略EDA 技术及应用实验报告系 部: 电子通信工程系 指导教师: 张松炜 学 号: _ 姓 名: _ 同 组 人: _ 二 _年_月_日实验一 点亮 LED 设计一、实验目的通过此试验可以让大家逐步了解,熟悉和掌握 FPGA 开发软件Quartus II 的使用方法及 VerilogHDL 的编程方法。二、实验内容本实验是一个简单的点亮 LED 灯的实验,具体包括:1) 使用 Quartus II 建立一个工程;2) Quartus II 工程设计;3) 设置编译选项并编译硬件系统;4) 下载

2、硬件设计到目标 FPGA;5) 观察 LED 的状态;三、实验原理和单片机一样,向片子里写进数据,输出高电平(对于共阴极的) ,或者输出低电平(对于共阳极) 。根据 Cyclone 片子已经分配好的针脚设置好针脚。四、实验步骤建立-个工程-输入程序-软件编译-生成下载文件-下载调试。五、实验程序module led1(led); /模块名 led1output7:0 led; /定义输出端口reg7:0 led; /定义寄存器always /过程 1beginled = 8b10101010; /输出 0xAAendendmodule六、思考题(1)写出使用 QuartusII 软件开发工程的

3、完整的流程。建立一个工程输入程序软件编译综合生成下载文件下载硬件调。实验二流水灯实验一、 实验目的通过此试验让大家进一步了解熟悉和掌握 FPGA 开发软件的使用方法及软件编程方法。学习简单的时序电路的设计和硬件测试。二、实验内容本实验的内容是建立用于控制 LED 流水灯的简单硬件电路,要求在SmartSOPC 上实现 LED1-LED8 发光二极管流水灯的显示。三、实验原理这里的显示用分频模块(int_div)得到的较低的始终作为信号,在此时钟下,对输入数据进行移位,就得到了流水灯的效果。四、实验步骤建立工程输入源程序调用模块生成符号调用符号连成电路图编译下载调试五、实验程序原理图VCCclo

4、ck INPUT led7.0OUTPUTclkled7.0ledwaterinstF_DIV 24000000F_DIV_WIDTH25Parameter Valueclock clk_outint_divinst1六、思考题1.本实验顶层采用了图形输入的方式,若采用文本输入方式,如何编写顶层文件?写出相应程序。module led2(clock,led);input clock;output 7:0led;wire p;int_div u1( .clock(clock),.clk_out(p);ledwater u2(.clk(p),.led(led);endmodule实验三 键盘、LE

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

6、); /模块名 keyledinput7:0 key; /定义键盘输入口output7:0 led; /定义发光管输出口reg7:0 led_r; /定义寄存器reg7:0 buffer_r;assign led = led_r; /输出键值always(key) /过程 1beginbuffer_r = key; /读取键值case(buffer_r)8b11111110:led_r = 8b11111110; /是键 KEY1,则给寄存器赋值 0xfe8b11111101:led_r = 8b11111100; /是键 KEY2,则给寄存器赋值 0xfc8b11111011:led_r =

7、 8b11111000; /是键 KEY3,则给寄存器赋值 0xf88b11110111:led_r = 8b11110000; /是键 KEY4,则给寄存器赋值 0xf08b11101111:led_r = 8b11100000; /是键 KEY5,则给寄存器赋值 0xe08b11011111:led_r = 8b11000000; /是键 KEY6,则给寄存器赋值 0xc08b10111111:led_r = 8b10000000; /是键 KEY7,则给寄存器赋值 0x808b01111111:led_r = 8b00000000; /是键 KEY8,则给寄存器赋值 0x00defaul

8、t: led_r = 8b11111111; /否则给寄存器赋值 0xffendcaseendendmodule六、思考题1.能否用 if 语句改写本实验程序?如果能,写出相应程序。module keyled(key,led); /模块名 keyledinput7:0 key; /定义键盘输入口output7:0 led; /定义发光管输出口reg7:0 led_r; /定义寄存器reg7:0 buffer_r;assign led = led_r; /输出键值always(key) /过程 1beginbuffer_r = key; /读取键值if (buffer_r=8b11111110)

9、 led_r = 8b11111110;else if (buffer_r=8b11111101) led_r = 8b11111100;else if (buffer_r=8b11111011) led_r = 8b11111000;else if (buffer_r=8b11110111) led_r =8b11110000;else if (buffer_r=8b11101111) led_r = 8b11100000;else if (buffer_r=8b10111111) led_r = 8b10000000; else (buffer_r=8b01111111) led_r =

10、8b00000000;endendmodule实验四 静态数码管显示实验一、 实验目的学习 LPM 兆模块的调用。二、实验内容建立 7 段译码显示模块,用于控制 LED 数码管的静态显示。要求在实验箱上的数码管依显示 09 和个字符。三、实验原理本实验通过分频模块 int_div 分频得到 1HZ 的频率信号,加载 4 位计数器的时钟输入端,计数循环输出 0-9,A-F 16 个数,最后通过七段译码后在数码显示出来。四、实验步骤1:立源程序文件 dec17s.v,输入程序代码并保存,并对此生成符号。2:添加 LPM 模块并按需要生成相应的文件。五、实验程序VCCclock INPUT seg7

11、.0OUTPUTdig7.0OUTPUTup counterclock q3.0counterinst d3.0 seg7.0decl7sinst1F_DIV 48000000F_DIV_WIDTH26Parameter Valueclock clk_outint_divinst2GND 位位位位位位位位位位位位位位六、思考题1.本实验采用的是共阳极数码管,若采用共阴极数码管,有什么不同?答:对应显示相同的数时,输入的不同。2.如何显示 HHHHHHHH 和 PPPPPPPP?答:H 对应的 89h, P 对应的时 73h;实验五 动态数码管显示实验一、实验目的学习动态扫描显示的原理图及电路的

12、设计。二、实验内容1:在 SmartSOPC 试验箱上完成 LED 数码管的动态显示“1-8”个数字。2:放慢扫描速度演示动态显示的原理过程。三、实验原理虽然每次只有一个 LED 显示,但只要扫描显示速率够快,由于人的视觉余辉效应,使我们仍会感觉所有的数码管都在同时显示。四、实验步骤1:建立一个空白工程,并命名。2:对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更改,直至编译成功为止。3:从设计文件创建模块。4:将光盘中 EDA 目录文件拷贝到工程目录。5:添加常量兆功能模块。五、实验程序module scan_led(clk_1k,d,dig,seg); /模块名 scan_

13、ledinput clk_1k; /输入时钟input31:0 d; /输入要显示的数据output7:0dig; /数码管选择输出引脚output7:0 seg; /数码管段输出引脚reg7:0 seg_r; /定义数码管输出寄存器reg7:0 dig_r; /定义数码管选择输出寄存器reg3:0 disp_dat; /定义显示数据寄存器reg2:0count; /定义计数寄存器assign dig = dig_r; /输出数码管选择assign seg = seg_r; /输出数码管译码结果always (posedge clk_1k) /定义上升沿触发进程begincount = cou

14、nt + 1b1;endalways (posedge clk_1k) begincase(count) /选择扫描显示数据3d0:disp_dat = d31:28; /第一个数码管3d1:disp_dat = d27:24; /第二个数码管3d2:disp_dat = d23:20; /第三个数码管3d3:disp_dat = d19:16; /第四个数码管3d4:disp_dat = d15:12; /第五个数码管3d5:disp_dat = d11:8; /第六个数码管3d6:disp_dat = d7:4; /第七个数码管3d7:disp_dat = d3:0; /第八个数码管end

15、casecase(count) /选择数码管显示位3d0:dig_r = 8b01111111; /选择第一个数码管显示3d1:dig_r = 8b10111111; /选择第二个数码管显示3d2:dig_r = 8b11011111; /选择第三个数码管显示3d3:dig_r = 8b11101111; /选择第四个数码管显示3d4:dig_r = 8b11110111; /选择第五个数码管显示3d5:dig_r = 8b11111011; /选择第六个数码管显示3d6:dig_r = 8b11111101; /选择第七个数码管显示3d7:dig_r = 8b11111110; /选择第八个数码管显示endcaseendalways (disp_dat)begincase(disp_dat) /七段译码4h0:seg_r = 8hc0; /显示 04h1:seg_r = 8hf9;

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

当前位置:首页 > 办公文档 > 解决方案

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