FPGA课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA课程设计
学院:
年级专业:
学生姓名:
日期:
题目:用Verilog语言设计一个程序来控制数码管动态显示0~F
小组成员:
指导老师:
开发板:A-C8V4
芯片型号:CycloneII EP2C8Q208C8N
设计目的:
本课程设计的目的是熟练掌握相关软件的使用和操作。能对Verilog语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。在成功掌握软件操作基础上,将所数字电路的基础课知识与Verilog语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。深入了解Verilog语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。
设计内容:利用verilog语言设计一个程序,其功能是使LED数码管循环动态显示0~F 程序设计:
module led0 (clk_50M,led_bit,dataout);
input clk_50M;
output [7:0] dataout;
output led_bit;
reg [7:0] dataout;
reg led_bit;
reg [27:0] count;
always led_bit <= 'b0;
always @ ( posedge clk_50M )
begin
count<=count+1;
end
always @ ( posedge clk_50M )
begin
case ( count[27:24] )
0: dataout<=8'b11000000;
1: dataout<=8'b11111001;
2: dataout<=8'b10100100;
3: dataout<=8'b10110000;
4: dataout<=8'b10011001;
5: dataout<=8'b10010010;
6: dataout<=8'b10000010;
7: dataout<=8'b11111000;
8: dataout<=8'b10000000;
9: dataout<=8'b10010000;
10:dataout<=8'b10001000;
11:dataout<=8'b10000011;
12:dataout<=8'b11000110;
13:dataout<=8'b10100001;
1
14:dataout<=8'b10000110;
15:dataout<=8'b10001110;
endcase
end
endmodule
仿真测试文件
`timescale 1ns/1ns`
include"led0.v"
module led0_test_tp;
reg clk_50M;
wire [7:0] dataout;
wire led_bit;
led0 i1(clk_50M,led_bit,dataout);
always #50 clk_50M=~clk_50M;
initial
begin
clk_50M=0;
#200 ;
#4000 $stop;
#200 $finish;
end
endmodule
仿真波形
2
仿真成功后需要将程序下载至开发板试运行,程序编译成功后配置引脚,因为要用到数码管,所以要对开发板原理图进行分析:
开发板上数码管原理图
引脚配置如下
配置完引脚后,将产生的SOF文件下载至开发板,运行正常
总结:本次数字系统仿真与Verilog课程设计的课程设计的设计任务是将本学期Verilog硬件描述语言与数字逻辑电路设计和上学期所学的数字电路中所学的知识运用的实践中去,提高自己在理论与实践的相结合能力,进一步掌握本专业的各项知识,为以后的专业学习打下良好的基础。从一些基础掌握一些本专业所学的知识了解一些基础的实验工具如Quartus II的使用,本次的设计基本达到预期的效果。过这次实训,我们在实践中学会了很多在平时的实验中无法学到得东西。将使我们在以后的工作和学习中受益匪浅。
3