🍎
与其担心未来,不如现在好好努力。在这条路上,只有奋斗才能给你安全感。你若努力,全世界都会为你让路。
大家刚开始接触硬件编程的话,我想大多都是从点亮一颗LED灯开始,学习FPGA也不例外,接下来我们就从点亮一颗LED灯开启我们的学习之旅,不过要有一些数电基础和Verilog HDL语言基础哦~
上图是我们的硬件的一个电路图,如果想要灯亮的话,例如LED0点亮的话,我们需要在LED0口给一个低电平,这时候LED0就会被点亮,即LED0 = 0;反之,如果想要让LED0熄灭,就在LED0口给一个高电平,即LED0 = 1;有单片机基础的同学们应该会很熟悉。但是在verilog HDL语言中,我们对信号的赋值采用 [位宽]+[数据类型]+[数据] 的方式,例如想要LED0灯点亮,即LED0 = 1'b0;接下来我们开始编写程序,点亮一颗LED灯。
module LED( //定义一个模块,名称为LED
output wire LED1 //定义LED1为输出模式
);
assign LED1 = 1'b0; //把1位宽的0赋值给LED1
endmodule //模块结束
编译后的RTL电路图如下:
接下来,我们增加难度,添加一个按键用来控制LED灯的亮灭,首先我们来看一下电路图,在按键未按下时,KEY1端口的电平保持高电平,当按键按下时,KEY1端口的电平会被拉低,知道了按键的使用,我们就设计一个小任务,就是当按键未按下时,LED1为亮,当按键按下时,LED1未为灭。代码如下:
module LED( //定义一个模块,名称为LED
input wire KEY1, //定义KEY1为输入模式
output wire LED1 //定义LED1为输出模式
);
assign LED1 = ~KEY1;//把KEY1取反后的结果赋值给LED1
endmodule //模块结束
编译后的RTL电路图如下:
🔥🔥🔥本系列文章持续更新,喜欢的话可以关注收藏~🔥🔥🔥
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)