当前位置:文档之家› EDA实验报告

EDA实验报告

电子科技大学成都学院实验报告册课程名称:EDA实验与实践姓名:魏亮学号:2940710618院系:微电子技术系专业:集成电路设计与集成系统(嵌入式)教师:李海2011 年12 月12 日实验一:计数器一、实验目的:学习计数器的设计,仿真和硬件测试;进一步熟悉Verilog HDL的编程方法。

二、实验原理和内容:本实验的原理是利用复位信号rst,时钟信号clk,输出cout ,实现由0自加到学号(即18)。

本实验的内容是利用Quartus Ⅱ建立一个自加至18的计数器,并进行仿真测试。

三、实验步骤:1. 启动Quartus Ⅱ建立一个空白工程,然后命名为count . qpf 。

2. 新建Verilog HDL源程序文件count.v,输入程序代码并保存,然后进行综合编译,若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

3. 建立波形仿真文件并进行仿真验证。

四、实验数据和结果:module count (clk,rst,cout);input clk,rst;output[5:0] cout;reg[5:0] cout;always @ (posedge clk)beginif(rst)begincout=cout+1;if(cout==5'b10011)cout=0;endendendmodule五、实验总结:进一步熟悉仿真测试和Verilog HDL 编程方法。

实验二:流水灯一、实验目的:通过次试验进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Verilog HDL的编程方法;学习简单的时序电路的设计和硬件测试。

二、实验原理和内容:本实验的内容是建立可用于控制LED流水灯的简单硬件电路,要求在实验箱上时间LED1~LED8发光二极管流水灯显示。

原理:在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2。

流水一次后,输出数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,这样就可以实现LED流水灯,为了方便观察,在源程序中加入了一个分频程序来控制流水速率。

三、实验步骤:(1)启动QuartusII建立空白工程,然后命名为led.qpf。

(2)新建Verilog HDL源程序文件led.v,输入程序代码并保存(源程序参考实验内容),进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。

(3)FPGA引脚分配,在Quartus II主界面下,选择Assignments→Pins,按照实验课本附录进行相应的引脚分配,引脚分配好以后保存。

(4)对该工程文件进行最后的编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。

(5)打开试验箱的电源开关,执行下载命令,把程序下载到FPGA试验箱中,观察流水灯的变化。

四、实验数据和结果:module led(led,clk);input clk;output[7:0] led;reg[7:0] led_r;reg[31:0] count;assign led=led_r[7:0];always @ (posedge clk)begincount<=count+1';if(count==32'd2*******)count<=0;endalways @ (posedge count[24])beginled_r<=led_r<<1;if(led_r==8'b00000000)led_r<=8'b11111111;endendmodule观察试验箱上LED灯的闪烁情况。

五、实验总结:在保存文件名字时不能以数字开头,并文件名要和程序中的模且块名一致,不然编译的时候会报错,当程序编译时的警告超过25个以上后,程序不能在目标板上正常执行。

学会了怎么使用Quartus II,新建工程与下载程序的方法等等实验三:数码管学号显示一、实验目的:利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。

二、实验原理和内容:实验内容:(1)在SmartSOPC实验箱上完成了LED数码管的动态显示“40710618”八个数字。

(2)放慢扫描速度演示动态显示的原理过程。

实验原理:数码管的八个段:a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0-SEG7,8个数码管分别由八个选通信号DIG0-DIG7来选择,被选通的数码管显示数据,其余关闭。

三、实验步骤:1)启动QuartusⅡ建立一个空白工程,然后命名为scan_led.qpf。

(2)新建Verilog HDL源程序文件scan_led.v,输入程序代码并保存,进行综合编译知道成功为止。

(3)选择目标器件并对相应的引脚进行锁定。

(4)连接硬件,下载程序。

(5)观察数码管上的数字是否为“40710618”;适当修改分频程序,再重新编译下载,观察这次数码管上显示的数据是否动起来了。

四、实验数据和结果:module scan_led (clk,dig,seg);output[7:0] dig,seg;reg[31:0] count;reg[7:0] d;reg[3:0] disp;assign dig=dig_r[7:0];assign seg=seg_r[7:0];always @ (posedge clk)begincount<=count+1;if(count==25'd2*******)count<=25'd0;endalways @ (posedge clk)begincase (count)3'd0:begin dig_r=8'b01111111;seg_r=8'h99;end3'd1:begin dig_r=8'b10111111;seg_r=8'hc0;end3'd2:begin dig_r=8'b11011111;seg_r=8'hf8;end3'd3:begin dig_r=8'b11101111;seg_r=8'hf9;end3'd4:begin dig_r=8'b11110111;seg_r=8'hc0;end3'd5:begin dig_r=8'b11111011;seg_r=8'h82;end3'd6:begin dig_r=8'b11111101;seg_r=8'hf9;end3'd7:begin dig_r=8'b11111110;seg_r=8'h80;endendcaseendendmodule观察试验箱上的数码管是否显示“40710618”。

五、实验总结:通过数码管编译显示自己的学号后8位,学会数码管动显示的原理,以及如何编写程序来实现数码管的静态与动态显示。

实验四:状态机序列检测器(10001)一、实验目的:利用有限状态机实现一般时序逻辑分析的方法,了解一般状态机的设计和应用。

二、实验原理和内容:设计一序列检测器并在SmartSOPC实验箱上进行硬件测试。

利用Quartus Ⅱ软件进行设计、仿真验证,最后进行引脚锁定并完成硬件测试。

实验原理:序列检测器可用于检测由二进制码组成的脉冲序列信号。

当序列检测器连续收到进制码后,如果这组序列码与检测器中预先设置的序列码相同,则输出1,否则输出0。

三、实验步骤:(1)启动QuartusⅡ建立一个空白工程,并命名为fsm.qpf。

(2)新建Verilog HDL源程序文件fsm.v,输入程序代码并保存,进行综合编译直到完全通过为止(3)仿真:在Quartus II主界面中选择File→New命令,打开新建文件对话框,选择Vector Wareform File,建立一个空的波形编辑窗口并保存位默认名。

(4)在空的波形编辑窗口中进行节点的添加,并对加入的节点进行编辑,编辑后保存。

(5)在Quartus II主界面下选择Tools→Simulator Tool命令进行波形仿真。

(6)验证仿真结果是否与设计相符合,如果不符合,需要重新设计文件,再进行综合编译、仿真,直到仿真结果与设计相符合为止。

四、实验数据和结果:module fsm(clk,in,cout);input clk,in;output cout;reg cout;reg[2:0] state;always @(posedge clk)begincase(state)3'd0:begin if(in==1'b1)begin state<=3'd1;cout<=1'b0;endelse begin state<=3'd0;cout<=1'b0;endend3'd1:begin if(in==1'b0)begin state<=3'd2;cout<=1'b0;endelse begin state<=3'd1;cout<=1'b0;endend3'd2:begin if(in==1'b0)begin state<=3'd3;cout<=1'b0;endelse begin state<=3'd1;cout<=1'b0;endend3'd3:begin if(in==1'b0)begin state<=3'd4;cout<=1'b0;endelse begin state<=3'd1;cout<=1'b0;endend3'd4:begin if(in==1'b1)begin state<=3'd5;cout<=1'b1;endelse begin state<=3'd0;cout<=1'b0;endend3'd5:begin if(in==1'b1)begin state<=3'd1;cout<=1'b0;endelse begin state<=3'd2;cout<=1'b0;endendendcaseendendmodule五、实验总结:通过状态机的实验,成功的显示了10001,并且掌握了状态图推算方法和画状态图的方法。

相关主题