lake198664 发表于 2007-8-27 01:04

verilog 请进!

&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;datan;<br />output&nbsp;dataa;<br />output&nbsp;datar;<br /><br />wire&nbsp;datan;<br />wire&nbsp;dataa;<br />wire&nbsp;datar;<br /><br />reg&nbsp;temp1;<br />reg&nbsp;temp2;<br />reg&nbsp;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;
页: [1]
查看完整版本: verilog 请进!