verilog 初试牛刀

yangtseriver1020 2011-04-06 08:39:02
//'define ADDFUN
module verilog_multf(clk,speaker,key,value,which,led);

input clk;
input [5:1]key;///按键引脚

output speaker;//输出扬声器控制引脚
output [7:0] value;///数码管的值
output [7:0] which;///数码管的选通信号
output [7:0] led;////流水灯

reg [7:0] val_arr[8];///用来记录各个数码管里面的值
reg [7:0] shuma_chance=0;///此时显示那个数码通道
reg [7:0] reg_led=8'b1111_1111;///LED流水灯的记录信息
reg [25:0] count=0;///用来分频的计数值
reg [7:0] shuma_value=0;
reg [7:0] dis_value=0;
reg speaker;

wire fre_200,fre_250;
always@(posedge clk)////分频
begin
count<=count+1;
end

assign led=reg_led;
assign fre_200=count[24];
assign fre_250=count[25];

always@(fre_250)////流水灯
begin
case(reg_led)
8'b0000_0001:reg_led<=8'b0000_0010;
8'b0000_0010:reg_led<=8'b0000_0100;
8'b0000_0100:reg_led<=8'b0000_1000;
8'b0000_1000:reg_led<=8'b0001_0000;
8'b0001_0000:reg_led<=8'b0010_0000;
8'b0010_0000:reg_led<=8'b0100_0000;
8'b0100_0000:reg_led<=8'b1000_0000;
8'b1000_0000:reg_led<=8'b0000_0001;
default reg_led<=8'b0000_0001;
endcase
end

endmodule

后面的流水灯在板子上跑一直不对,我一个同学说我是的流水灯设计是用的组合逻辑,是用的C语言的思维写的,我不明白,怎么才能设计成时序逻辑?我就是想每次分频后的时钟过来,然后流水灯动一下

...全文
67 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2011-04-07
  • 打赏
  • 举报
回复
做流水灯相当于规划一个有限状态机,
LZ需要用写个时序逻辑的思维。
zjdcmhb2 2011-04-07
  • 打赏
  • 举报
回复
学习了,谢谢。
jnwsh 2011-04-07
  • 打赏
  • 举报
回复
这貌似一个FSM,但不对。
jnwsh 2011-04-07
  • 打赏
  • 举报
回复
明确告诉你,不可综合
yangtseriver1020 2011-04-07
  • 打赏
  • 举报
回复
上楼的回答是对的,这个是可以综合的,只是综合成了组合逻辑。现在我在时钟前面加了posedge 综合成时序逻辑,然后就OK了
yangtseriver1020 2011-04-06
  • 打赏
  • 举报
回复
在线等啊
Great_Bug 2011-04-06
  • 打赏
  • 举报
回复
学习。。。。。。。

6,163

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧