verilog 请进!
小弟在写一个Verilog程序,想让它在CLK1K高电平时输出一个数,而在低电平时输出另一个数,为什么仿针波形看到的全是低电平时产生的数,而看不到高电平时的数呢?急救啊!另附程序如下!请各位大虾指点!<br /><br />module ssj (<br /> //input<br /> clk1k,<br /> //output<br /> datan,<br /> dataa,<br /> datar<br /> );<br />input clk1k;<br />output datan;<br />output dataa;<br />output datar;<br /><br />wire datan;<br />wire dataa;<br />wire datar;<br /><br />reg temp1;<br />reg temp2;<br />reg temp3;<br />/********************************/<br />always @(temp1 or temp2 or temp3)<br /> begin<br /> if(clk1k==1)<br /> begin<br /> temp1<=10'b00_0100_1110;<br /> temp2<=6'b11_0000;<br /> temp3<=3'b101;<br /> end<br /> else<br /> begin<br /> temp1<=10'b00_0100_1111;<br /> temp2<=6'b01_1000;<br /> temp3<=3'b101;<br /> end<br /> end<br />assign datan=temp1;<br />assign dataa=temp2;<br />assign datar=temp3;<br /> <br />/**********************************/<br />endmodulealways @(temp1 or temp2 or temp3)
always @(temp1 or temp2 or temp3)<br /><br />这行有问题<br />改为<br />always @(temp1 or temp2 or temp3 or clk1k)always @(clk1k)
把结果当敏感变量??<br /><br />always @(temp1 or temp2 or temp3)<br /><br />=〉<br />always @(clk1k)<br />楼主是不是别的地方也发过啊
我怎么记得昨天回贴过啊,晕菜<br />3楼说的对,你把**生蛋和蛋生**的问题搞乱套了。谢谢!
呵呵,不好意思,那天搞不出来有点急了,不过现在已经调出来了,谢谢各位指点!我给你这个程序写了个test,成功了,也是我第一次写verilog
我给你这个程序写了个test,成功了,也是我第一次写verilog呵呵,慢慢学
多看看编译出错信息,一般是能分析出来的always@(clk1k)就可以了
up
<br />always @(temp1 or temp2 or temp3)<br /><br />改为always @(clk1k)<br /> <br />直接用赋值语句更好
assign datan = clk1 ? 10'b00_0100_1110 : 10'b00_0100_1111 ;<br />assign dataa = clk1 ? 6'b11_0000 : 6'b01_1000;<br />assign datar = clk1 ? 3'b101 : 3'b101;
页:
[1]