verilog 请进!

[复制链接]
2999|9
 楼主| lake198664 发表于 2007-8-27 01:04 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;小弟在写一个Verilog程序,想让它在CLK1K高电平时输出一个数,而在低电平时输出另一个数,为什么仿针波形看到的全是低电平时产生的数,而看不到高电平时的数呢?急救啊!另附程序如下!请各位大虾指点!<br /><br />module&nbsp;ssj&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//input<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk1k,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//output<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datan,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataa,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datar<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />input&nbsp;clk1k;<br />output&nbsp;[9:0]datan;<br />output&nbsp;[5:0]dataa;<br />output&nbsp;[2:0]datar;<br /><br />wire&nbsp;[9:0]datan;<br />wire&nbsp;[5:0]dataa;<br />wire&nbsp;[2:0]datar;<br /><br />reg&nbsp;[9:0]temp1;<br />reg&nbsp;[5:0]temp2;<br />reg&nbsp;[2:0]temp3;<br />/********************************/<br />always&nbsp;@(temp1&nbsp;or&nbsp;temp2&nbsp;or&nbsp;temp3)<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(clk1k==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp1&lt=10'b00_0100_1110;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp2&lt=6'b11_0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp3&lt=3'b101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp1&lt=10'b00_0100_1111;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp2&lt=6'b01_1000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp3&lt=3'b101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />assign&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datan=temp1;<br />assign&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataa=temp2;<br />assign&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datar=temp3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/**********************************/<br />endmodule
pearcaoer 发表于 2007-8-27 13:02 | 显示全部楼层

always @(temp1 or temp2 or temp3)

always&nbsp;@(temp1&nbsp;or&nbsp;temp2&nbsp;or&nbsp;temp3)<br /><br />这行有问题<br />改为<br />always&nbsp;@(temp1&nbsp;or&nbsp;temp2&nbsp;or&nbsp;temp3&nbsp;or&nbsp;clk1k)
wuzm02 发表于 2007-8-28 13:05 | 显示全部楼层

always @(clk1k)

把结果当敏感变量??<br /><br />always&nbsp;@(temp1&nbsp;or&nbsp;temp2&nbsp;or&nbsp;temp3)<br /><br />=〉<br />always&nbsp;@(clk1k)<br />
McuPlayer 发表于 2007-8-29 00:28 | 显示全部楼层

楼主是不是别的地方也发过啊

我怎么记得昨天回贴过啊,晕菜<br />3楼说的对,你把**生蛋和蛋生**的问题搞乱套了。
 楼主| lake198664 发表于 2007-8-30 03:44 | 显示全部楼层

谢谢!

呵呵,不好意思,那天搞不出来有点急了,不过现在已经调出来了,谢谢各位指点!
西岳使者 发表于 2007-10-13 20:12 | 显示全部楼层

我给你这个程序写了个test,成功了,也是我第一次写verilog

我给你这个程序写了个test,成功了,也是我第一次写verilog
flydpl 发表于 2007-10-18 20:08 | 显示全部楼层

呵呵,慢慢学

多看看编译出错信息,一般是能分析出来的
harlemjia 发表于 2007-10-20 18:37 | 显示全部楼层

always@(clk1k)就可以了

  
wwh_nuaa 发表于 2007-10-21 23:24 | 显示全部楼层

up

<br />always&nbsp;@(temp1&nbsp;or&nbsp;temp2&nbsp;or&nbsp;temp3)<br /><br />改为always&nbsp;@(clk1k)<br />&nbsp;<br />
zgl7903 发表于 2007-10-23 12:20 | 显示全部楼层

直接用赋值语句更好

assign&nbsp;datan&nbsp;=&nbsp;clk1&nbsp;?&nbsp;10'b00_0100_1110&nbsp;:&nbsp;10'b00_0100_1111&nbsp;;<br />assign&nbsp;dataa&nbsp;=&nbsp;clk1&nbsp;?&nbsp;6'b11_0000&nbsp;:&nbsp;6'b01_1000;<br />assign&nbsp;datar&nbsp;=&nbsp;clk1&nbsp;?&nbsp;3'b101&nbsp;:&nbsp;3'b101;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

113

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部