实验二 流水灯
1、 实验目的
通过此实验进一步熟悉和掌握FPGA开发软件的使用方法及VERILOG HDL的编程方法,学习简单时序电路的设计和硬件测试。 2、 实验内容
建立可用于控制LED流水灯的简单硬件电路,要求在EDA实验箱上实现LED1-LED8发光二极管流水灯显示。
实验内容(1)新建工程及源程序文件ledwater.v,然后按实验一的方法实现流水灯设计。 实验内容(2)通过图形设计文件实现流水灯
A:通过ledwater.v文件创建相应的模块符号文件ledwater.bsf(在Project Navigator窗口中,点击Files标签,然后右击ledwater.v文件,选择Create Symbol Files for Current File,即可生成对应的图形符号文件)。 B: 新建图形设计文件ledwater.bsf并保存
步骤1:点击File/NEW,出现新建对话框如图2.1所示。按图示进行选择。然后点击OK并出现图2.2所示的图形编辑框。
图2.1 新建对话框
图2.2图形设计文件编辑框
步骤2:在编辑框的空白处双击,将symbol对话框中library:project下的ledwater模块放在图形设计文件编辑框中,加入输出输入引脚,最后的总电路图如图2.3所示。
图2.3 总体图形设计文件图
步骤3:将ledwater.bsf设为顶层实体(在Project Navigator窗口中,点击Files标签,然后右击ledwater.bsf文件,选择Set as Top-level Entity)。
步骤4:编译文件,分配引脚,下载程序到实验箱。 3、 电路连接
(1)PIN_130 -to clk PIN_74 -to led\\[0\\]
PIN_72 -to led\\[1\\] PIN_69 -to led\\[2\\] PIN_68 -to led\\[3\\] PIN_67 -to led\\[4\\] PIN_64 -to led\\[5\\] PIN_63 -to led\\[6\\] PIN_61 -to led\\[7\\]
(2)将EDA-MK-01模块跳线帽设置为LED1-LED8和KEY0-KEY7端。 (3)确保数字信号源的X12中CLOCK0的短路帽处于4HZ位置。 4、实验程序
module led_water(led,clk);
input clk;//clock0,采用数字信号源 output [7:0]led; reg [8:0]led_r;
assign led = led_r[7:0];
always @(posedge clk) begin
led_r <= led_r << 1;
if(led_r == 9'd0)
led_r <= 9'b111111111; end
endmodule
实验三 一位全加器测试
1、实验目的
通过此实验让用户逐步了解、熟悉和掌握 FPGA 开发软件 QuartusⅡ的使用方法及 Verilog HDL 的编程方法。学习用 Verilog HDL 语言以不同方式描述1 位全加器及电路设计的仿真和硬件测试。 2、实验内容
通过实验箱EDA-MK-01模块上的开关S1-S3输入信号,分别为 A、B和Cin,并通过LED1-LED3 指示相应的状态。输出 Sum和 Cout 通过LED7和LED8 指示(灯亮表示输入或输出为“1”)。 3、实验步骤
1)启动 QuartusⅡ建立一个空白工程,然后命名为fulladd.qpf。
2)新建 Verilog HDL 源程序文件 fulladd.v,输入程序代码并保存(进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。然后再生成图形符号文件 fulladd.qpf(在Project Navigator窗口中,点击Files标签,然后右击fulladd.v文件,选择Create Symbol Files for Current File,即可生成对应的图形符号文件)。
3)新建图形设计文件命名为 top.bdf 并保存(点击File/New,出现图3.1,按图示选择再点击OK,便出现图形文件编辑框)。模块图如图3.2所示,因为实验平台上的 LED 发光二级管是低电平亮,所以在每个输入口都加了反相器。
4)选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为 Altera 公司 CycloneII 系列的EP2C5Q208C8 芯片,将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。
5)将 top.bdf设置为顶层实体。对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6)最后把程序下载到 FPGA 器件中。按下S1-S3,观察发光二极管 LED1-LED3,LED7,LED8的状态。
图3.1 新建图形文件
图3.2 顶层模块原理图
4、 电路连接(引脚分配)
PIN_74 -to A PIN_72 -to B PIN_69 -to CIN PIN_63 -to SUM PIN_61 -to COUT PIN_86 -to SW1 PIN_84 -to SW2 PIN_82 -to SW3
5、 实验程序
module fulladd(a,b,cin,sum,cout); input a,b,cin; output sum,cout; assign {cout,sum} = a + b +cin; endmodule
//1位加器 //输入端口 //输出端口