为了帮助大家更好学习FPGA硬件语言,创立此资源
包含文件有:实验报告、仿真文件,资料很全,有问题可以私信
一、实验内容
1、利用QuartusII和Modelsim实现100进制可逆计数器编码显示实验。
二、实验步骤
(1)安装软件
事先安装好QuartusII和Modelsim两个软件。
(2)创建工程
(3)编写代码
编写的.v顶层文件:
module counter_1(
input clk,
input rst,
input flag,
output out_c
);
reg [9:0] count;
always@(posedge clk or negedge rst)begin
if(!rst)begin
count <= 0; //复位
end
else if(flag==1)begin
if(count<99)
count <= count + 1; //flag为1,是加法计数器
else
count <= 0; //计到99复位
end
else begin
if(count==0)
count <= 99; //计到0复位
else
count <= count - 1; //flag为0,是减法计数器
end
end
endmodule
编写的textbench文件:
`timescale 1 ns/ 1 ps
module counter_tb();
// constants
// general purpose registers
// test vector input registers
reg clk;
reg flag;
reg rst;
// wires
wire out_c;
// assign statements (if any)
counter_1 i1 (
// port map - connection between master ports and signals/registers
.clk(clk),
.flag(flag),
.out_c(out_c),
.rst(rst)
);
initial
begin
// code that executes only once
// insert code here --> begin
clk = 0;
rst = 0;
#100 rst = 1;
flag = 1;
#1000 flag =0; //初始化
// --> end
end
always #5000 flag = ~flag; //每5000ns之后flag翻转
always #10 clk = ~clk; //时钟周期20ns
endmodule
三、实验结果