一、基础知识
- 由于二极管样机与ZYNQ的管教相连,只需要改变与LED灯相连的ZYNQ管脚的电平,LED灯的亮灭状态就会发生变化。
- 高电平——亮,低电平——灭。
- 频率50MHz,周期20ns(1/50MHz)。1S需要累加5000 000次。
二、程序
module LED_twrinkle(
input clk, //输入时钟
input rst_n, //输入复位
output[1:0] led //输出LED
);
reg [25:0]cnt; //50000000二进制位26位,所以从0到25是26位
assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10; //当250000000次计数前为1亮,后为0灭
always @ (posedge clk or negedge rst_n) begin //时钟上升沿,复位下降沿
if(!rst_n) //是否复位
cnt <= 26'd0; //复位为0
else if(cnt < 26'd5000_0000) //当小于50000000次时
cnt <=cnt+1'b1; //计数值+1
else
cnt <= 26'd0; //否则计数值为0
end
endmodule
三、总结
- 关于testbench还是没明白,看看后面能搞懂不
- 程序编写一开始正确,再打开出现错误,不知道因为什么
- 想出波形图,不知道是不是因为没有板子,还是哪里操作失误,只有直线