CPLD/FPGA实验报告
专业:
学号:
姓名:
(1)掌握Verilog HDL模块的基本结构
(2)掌握模块的调用方法
(3)掌握基于Quartus II的CPLD/FPGA开发流程
本实验为数字时钟设计,要求设计模为24的加法计数器模块,分频模块,还有译码显示模块。最后编写顶层代码,完成系统的仿真。
实验设备
电脑一台,quartus、modelism软件。
本实验包括三个模块:计数器模块、分频模块、译码显示模块。实验原理框图如图3-1所示。
图3-1 实验原理框图
(1),建立一个工程digit_clk,如图3-2所示。
图3-2 建立quartus工程
(2)在这个工程中创建三个Verilog HDL文件,并分别命名为不同模块名。然后在每个模块中编写出对应的代码,最后编写顶层文件代码。如图3-3所示。
图3-3 各个模块代码编写
(3)当所有代码都编写完成后,需要对所都程序进行编译、分析综合。
(4)当程序无错误时,建立波形文件,在波形文件中加入相应的信号。
实验结果
在仿真过程中6MHZ分频是无法实现的,因此在仿真过程中不使用分频,只是给一个时钟脉冲,在仿真中为了观察方便,特意多设定了两个输出:h、l,h表示计数器计数值的高位,l表示计数值的低位,out1为低位显示端,out2为高位显示端,out1[0]与低位数码管的g端对应,out2[0]与高位数码管g端对应,out2[6]与高位数码管a端对应。仿真波形如下:
在quartus中仿真后,再在modelsim中仿真,如下图:
本次实验为设计实现模24的数字时钟设计,其中包括由6MHz到1Hz的分频模块、模24BCD码加法计数器模块、4-7译码器模块和顶层文件的设计,并通过QuartusⅡ和Modelsim进行仿真。在本次实验中,首先将6MHZ的频率分成1HZ的秒脉冲,由于实验要求为24进制的时钟,故将1HZ频率加在计数器上可以实现秒计数,同时通过译码程序将计数器当前的数值显示在7段数码管上。
分频模块将6MHZ的时钟变成1HZ的频率。具体代码如下:
module clk6m_to_1s(rst,clk6m,clk1s,clk1s_rising);
input rst;
input clk6m;
output reg clk1s;
output reg clk1s_rising;
reg clk1s_buf;
reg [31:0] cnt2999999;
always@(posedge clk6m)
if(!rst)
cnt2999999<=32'd0;
else
t2999999>=32'd3000000)
cnt2999999<=32'd0;
else
cnt2999999<=cnt2999999+32'd1;
always@(posedge clk6m)
if(!rst)
clk1s<=1'b0;
else t2999999==32'd1)
clk1s<=!clk1s;
always@(posedge clk6m)
if(!rst)
FPGA实验报告 来自淘豆网www.taodocs.com转载请标明出处.