FPGA的学习:led的点亮

以前花了三天的时间把本科毕业设计的东西给复现了下。但能明显的感受到没有通过系统的学习,每行代码都须要本身一点一点的硬性理解,因此接下来的每一天我都准备记录本身的学习心得,天天学一点知识,学无止境,一块儿加油。编程

实验一  led的点亮dom

全部人都耳熟能详的第一个实验,点亮led。学习

首先,画出led的结构框图和时序图,做为新的起点,这两个图能帮助咱们理清时序的关系。设计

了解了led的实现过程和时序关系后,咱们进行编程来实现led的点亮。blog

module  ledinput

(it

    input   wire    key_in  ,   //输入按键变量

 

    output  wire    led_out     //输出控制led灯module

);随机数

//led_out:led灯输出的结果为key_in按键的输入值

assign  led_out = key_in;

 

endmodule

 

代码的实现并不难,可是我一开始写的时候不喜欢写注释,这是一个很差的习惯。到了后面程序多起来,难起来的时候,代码的注释对咱们回顾程序,改错等都有很大的帮助,因此要养成写注释的习惯。

 

当程序编写完成后,进行仿真,用来查看可否实现功能。

 

module  tb_led();

wire    led_out ;  //wire型变量的定义

reg     key_in  ;  //reg型变量的定义

initial key_in <= 1'b0;  //初始化输入信号

//key_in:产生输入随机数,模拟按键的输入状况

always #10 key_in <= {$random} % 2; //取模求余数,产生非负随机数0、1

                                      每隔10ns产生一次随机数

led led_inst

(

    .key_in (key_in ),  //输入     key_in

 

    .led_out(led_out)   //输出    led_out

);

 

endmodule

通过仿真后,能够获得这样的内容,至此功能得以实现。

最后就是上板验证。