如何创建工程 新建一个测试平台 如何模拟 如何编译 如何配置引脚 如何导入程序 前面文章都已经介绍过了 这里不赘述了 大部分朋友已经学会了 很简单 如果又忘记了 可以看前面的文章复习一下
实验目的:
做一个2s为周期,每1s取反一次的led 1s亮 1s灭 计数器为时间1s
思路
因为我们的时钟为20ns一周期 所以我们需要计数50000000个个数才可以
二进制寄存器位宽为26 也就是 0到25 因为0是第一个数
代码
module f410(
clk,
rst_n,
led
);
input clk;
input rst_n;
output reg led;
reg [25:0]cnt;
//计数部分
always@(posedge clk or negedge rst_n)// 时钟上升沿 复位下降沿时 则
begin
if(!rst_n)//复位
cnt<=0;//计数归零 (非阻塞赋值)
//else if(cnt==26'd49_999) //测试平台的时候用 因为我们测试只需要验证正确性 所以时间可以取短一些
else if(cnt==26'd49_999_999)//计数满了
cnt<=0;//归零
else //计数没满 没复位
cnt<=cnt+1;//计数加一 (计49999999个数 一个数 20ns 也就是1s)
end
//led部分
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)//复位
led<=1;//不亮