爱捣鼓

在CME-M5开发板上运行的第1个Verilog HDL跑马灯程序

0
阅读(3134)

/***************************************** 程序名称:8位LED跑马灯 程序功能:8个LED灯,从1至8循环间隔500ms逐个点亮,单个LED亮时,其它7个LED灭 FPGA型号:CME-M5C06N3L144C7 开发工具版本:Primace 4.2 程序版本:V0.0.1 作者:谭鹏超 ******************************************/ module pmdled(clk0,rst_n,led); input clk0; //输入时钟 input rst_n; //复位按键 output[7:0] led; //8个LED输出口 parameter led_cnt = 24'h989680; //500ms,计数2000000次 reg[7:0] r_led; reg[23:0] r_cnt; //分频计数器 reg r_clk1Hz; //分频输出 //1Hz分频 always @(posedge clk0 or negedge rst_n) begin if(!rst_n) begin r_cnt <= 24'h000000; end else if(r_cnt == led_cnt) begin r_clk1Hz <= ~r_clk1Hz; r_cnt <= 24'h000000; end else begin r_cnt <= r_cnt+1'b1; end end //Led灯移位控制 always @(posedge r_clk1Hz or negedge rst_n) begin if(!rst_n) begin r_led <= 8'hfe; end else begin r_led[0] <= r_led[7]; r_led[7:1] <= r_led[6:0]; end end //移位后的LED值分配给输出端口 assign led =r_led; endmodule

该程序使用Primace 4.2编译时,还有下面这个警告:
  1. Warning: RTLW_XASYNCINIT_001:'/cygdrive/E/CMEFPGA/01StudyVideo/00Practice/PMDLED/PMDLED/src/PMDLED.v', line 11... In this procedure block, variable 'r_clk1Hz' (bit-0) is not initialized in asynchronous branch(es) even though the process is controlled by asynchronous controls.

复制代码
通过该警告大概能看出是r_clk1Hz这个变量没有初始化的警告。可是,我在r_clk1Hz定义出赋值为0后,进行编译,依旧有这个警告。不知是为啥。不过,该程序下载到CME-M5开发板中运行正常。已经过第2天0点了,先发出来展示一下。希望有高手能帮忙看一下。先行谢过。


来源:爱捣鼓网

作者:爱捣鼓

原文链接:http://www.aidaogu.com/forum.php?mod=viewthread&tid=198



Baidu
map