本次实验分四步走
第一步(完成)
本步骤的目标如下:
1.让FPGA上的数码管每隔1秒钟全部点亮或熄灭
2.应该看到4个“8”在闪烁
3.验证了FPGA的管脚和数码管的连接是好的
4.本阶段使用原理图的完成设计
首先需要需要设计一个模块,此模块的功能为利用50M的时钟。经过分频产生1Hz的时钟然后,利用1Hz的信号不断翻转高低电平,然后把此信号输出给七段数码管的全部引脚,实现上述功能的代码如下
module LED(
CLK_50,
LED_ON_OFF
);
input CLK_50;
output LED_ON_OFF;
reg [25:0]couter_val;
reg LED_ON_OFF;
always @(posedge CLK_50)begin
if(couter_val<50000000)begin
couter_val<=couter_val+1'b1;
LED_ON_OFF<=LED_ON_OFF;
end
else begin
couter_val<=0;
LED_ON_OFF<=~LED_ON_OFF;
end
end
endmodule
然后把此代码综合为一个器件,接着创建一个顶层文件BDF,设计顶层文件如下图所示

接着设计管教约束如下图所示

此步骤的RTL图如下图所示

最后编译下载代码第一步功能实现
第二步 (完成)
目标
1.全部的电路功能使用Verilog代码实现
2.使用“Assignments — Import Assignments”的管脚指派方法
意思就是与第一步相同,但是要全部用代码实现。
实现此功能的代码如下:
module step2(
output reg HEX0_D0,
output reg HEX0_D1,
output reg HEX0_D2,
output reg HEX0_D3,
output reg HEX0_D4,
output reg HEX0_D5,
output reg HEX0_D6,
output reg HEX0_DP,
output reg HEX1_D0,
output reg HEX1_D1,
output reg HEX1_D2,
output reg HEX1_D3,
output reg HEX1_D4,
output reg HEX1_D5,
output reg HEX1_D6,
output reg HEX1_DP,
output reg HEX2_D0,
output reg HEX2_D1,
output reg HEX2_D2,
output reg HEX2_D3,
output reg HEX2_D4,
output reg HEX2_D5,
output reg HEX2_D6,
output reg HEX2_DP,
output reg HEX3_D0,
output reg HEX3_D1,
output reg HEX3_D2,
output reg HEX3_D3,
output reg HEX3_D4,
output reg HEX3_D5,
output reg HEX3_D6,
output reg HEX3_DP,
input CLOCK_50
);reg led_ON_off;
reg [25:0]cnt;
always @(posedge CLOCK_50)
begin
if (cnt<=50_000_000)begin
led_ON_off<=led_ON_off;
cnt=cnt +1'b1;
end
else begin
led_ON_off<=~led_ON_off;
cnt=0;
end
end
always @(*)begin
HEX0_D0<=led_ON_off;
HEX0_D1<=led_ON_off;
HEX0_D2<=led_ON_off;
HEX0_D3<=led_ON_off;
HEX0_D4<=led_ON_off;
HEX0_D5<=led_ON_off;
HEX0_D6<=led_ON_off;
HEX0_DP<=led_ON_off;
HEX1_D0<=led_ON_off;
HEX1_D1<=led_ON_off;
HEX1_D2<=led_ON_off;
HEX1_D3<=led_ON_off;
HEX1_D4<=led_ON_off;
HEX1_D5<=led_ON_off;
HEX1_D6<=led_ON_off;
HEX1_DP<=led_ON_off;
HEX2_D0<=led_ON_off;
HEX2_D1<=led_ON_off;
HEX2_D2<=led_ON_off;
HEX2_D3<=led_ON_off;
HEX2_D4<=led_ON_off;
HEX2_D5<=led_ON_off;
HEX2_D6<=led_ON_off;
HEX2_DP<=led_ON_off;
HEX3_D0<=led_ON_off;
HEX3_D1<=led_ON_off;
HEX3_D2<=led_ON_off;
HEX3_D3<=led_ON_off;
HEX3_D4<=led_ON_off;
HEX3_D5<=led_ON_off;
HEX3_D6<=led_ON_off;
HEX3_DP<=led_ON_off;
end
endmodule
RTL视图如下

第三步 (完成)
目标:本阶段的设计目标为设计一个可以从0.01秒计数到99.99秒的计时器电路。
思路如下:
- 复位按键使用拨码开关,不需要去抖
- 脉冲生成模块:带工作使能的计数器
- 对输入时钟信号计数,生成四种尺度的时间脉冲信号
- 所有的时间脉冲信号都是单周期高电平有效的

最低0.47元/天 解锁文章
1906

被折叠的 条评论
为什么被折叠?



