EDA技术及应用实验报告(完整版纯手打)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《EDA技术及应用》

实验报告

系部:

指导教师:

学号:

姓名:

实验一点亮LED设计

一、实验目的

通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及Verilog HDL的编程方法。

本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。

二、实验内容

SmartSOPC实验箱上有8个发光二极管LED1~8,并分别与FPGA的50、53~55、176和47~49引脚相连。本实验的内容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC实验箱上的4个发光二极管(LED1、LED3、LED5和LED7)。

三、实验原理

FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。作为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可以实现点亮该发光二级管的功能。

四、实验步骤

1、启动Quarters II建立一个空白工程,命名为led_test.qpf。然后分别建立图形设计文件,命名为led_test.bdf,以及文本编辑文件led1.v,将他们都添加进工程中。

2、对工程进行设计。在led1.v中输入程序代码,并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。从设计文件中创建模块,由led1.v生成名为led1.bsf的模块符号文件。在led_test.bdf中任意空白处双击鼠标左键,将symbol对话框中libraries:project下的led1模块添加到图形文件led_test.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。完整的顶层模块原理图如下图所示。选择目标器件并进行引脚锁定。将未使用的管脚设置为三态输入。

3、设置编译选项并编译硬件系统。将led_test.bdf设置为顶层实体。对该工程文件进行全程编译处理。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

4、下载硬件设计到目标FPGA。将产生的led_test.sof输出对FPGA进行配置。

5、观察LED的状态。

五、实验程序

//利用连续赋值assign语句实现

module led1(led); //模块名led1

output[7:0] led; //定义输出端口、

assign led =8'b10101010; //输出0xAA

endmodule

//利用过程赋值语句实现(暂时已屏蔽)

/*

module led1(led); //模块名led1

output[7:0] led; //定义输出端口

reg[7:0] led; //定义寄存器

always //过程1,无敏感变量

begin

led = 8'b10101010; //输出0xAA

end

endmudule*/

六、思考题

写出使用QuartusII软件开发工程的完整的流程。

实验二流水灯实验

一、实验目的

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

二、实验内容

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

三、实验原理

1、在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2,流水一次后,输出的数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,就可以实现LED流水灯。为了观察方便,流水速率最好在2Hz左右。在QuickSOPC核心板上有一个48MHz的标准时钟源,该时钟脉冲Clock与芯片的28管脚相连。为了产生2Hz的时钟脉冲,在此调用了一个分频模块(int_div模块,位于光盘中EDA_Component目录下),通过修改分频系数来改变输出频,当分频系数为24x10^6时,输出即为2Hz的频率信号。

2、Int_div分频模块说明:int_div模块是一个占空比为50%的任意整数分频器。输入时钟为clock,输出时钟为clk_out。其中F_DIV为分频系数,分频系数范围为1~2^n (n=F_DIV_WIDTH),若要改变分频系数,改变参数F_DIV和F_DIV_WIDTH到相应范围即可。在本例中输入时钟为48MHz,要得到2Hz的信号,所以分频系数为48x10^6/2=24x10^6;对于分频系数为24x10^6的数需要一个25位宽的计数器即可。

四、实验步骤

1、启动Quarters II建立一个空白工程,命名为led_water.qpf。

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

3、从设计文件中创建模块,由ledwater.v生成名为ledwater.bsf的模块符号文件。

4、将光盘中EDA_Component目录下的int_div.bsf和int_div.v拷贝到工程目录。

5、新建图形设计文件命名为led_water.bdf并保存。在空白处双击鼠标左键,分别将symbol对话框中libraries:project下的ledwater和int_div模块放在图形文件led_water.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。双击int_div 的参数框,并修改参数,将F_DIV的值改为24000000,F_DIV_WIDTH的值改为

相关文档
最新文档