TA的每日心情 | 奋斗 2014-2-9 10:11 |
---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
|
下面是板子的测试程序LED灯的,通过计数分频产生LED扫描时钟
/*-----版权声明-----
* ETRH Studio——带领入门FPGA,打造不一样的学习方式
* 网站:http://www.etrh.co
* 论坛:https://www.cirmall.com/
* 淘宝:http://etrh.taobao.com
* 邮箱:etrh@foxmail.com
*
*-----文件信息-----
* 文件名称:led.v
* 最后修改日期:14.1,2014
* 描述:2个流水灯,通过主时钟分频产生扫描时钟,在每个时钟来临led_r加1计数,
* 2位2进制计数,产生由00-01-10-11,循环点亮led
*------------------
* 创建者:ETRH
* 创建日期:14.1, 2014
* 版本:1.0
* 描述:原始版本
*-------------------
*/
module led(
input CLOCK_50, // 板载时钟50MHz
input Q_KEY, // 板载按键RST
output [1:0] LED // LED[1] ~ LED[8]
);
//++++++++++++++++++++++++++++++++++++++
// 分频部分 开始
//++++++++++++++++++++++++++++++++++++++
reg [23:0] cnt; // 计数子
// 溢出后自动重新计数
always @ (posedge CLOCK_50, negedge Q_KEY)
if (!Q_KEY)
cnt <= 0;
else
cnt <= cnt + 1'b1;
wire led_clk = cnt[23]; // 每(2^24/50M = 0.3355)sec取一次
//--------------------------------------
// 分频部分 结束
//--------------------------------------
//++++++++++++++++++++++++++++++++++++++
// 流水灯部分 开始
//++++++++++++++++++++++++++++++++++++++
reg [1:0] led_r; // 定义输出寄存器
always @ (posedge led_clk, negedge Q_KEY)
if (!Q_KEY) // 复位
led_r <= 2'b0;
else
led_r<=led_r+1'b1;
assign LED = led_r; // 寄存器输出
//--------------------------------------
// 流水灯部分 结束
//--------------------------------------
endmodule
|
|