ANG 发表于 2010-6-26 00:56:54

Verilog HDL一个小程序

本帖最后由 fpgaw 于 2010-6-28 01:08 编辑

............
;;intput clk;
;;output clk-2MHz;
; ;reg count;
.............
; ;clk-2MHz<=count;
..............
编译时提示说clk-2MHz<=count;有语法错误,但我查了Verilog HDL的教程找不出错误,这到底是怎么回事呢,是不是不应该这样赋值呢,正确的该怎么写呢?谢谢了!!

FFT 发表于 2010-6-26 02:17:15

clk-2MHz<=count; 是在always块里吗?如果是 clk_2MHz必须定义成reg型。

longt 发表于 2010-6-26 02:19:54

是的,那么就是说我必须在定义里加一句reg clk_2MHz;

CCIE 发表于 2010-6-26 03:42:09

应该是这样的,前面加个reg

UFP 发表于 2010-6-26 04:15:58

加了以后还是错的,郁闷

CHAN 发表于 2010-6-26 05:53:13

把整段程序贴上来吧,这样大家好给你看一下。

CHAN 发表于 2010-6-26 06:05:56

module divide (clk,clk_2MHz,clk_8MHz,);<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;input&nbsp;&nbsp;clk;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;output&nbsp;&nbsp;clk_2MHz;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;output&nbsp;&nbsp;clk_8MHz;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;regcount;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;reg&nbsp;&nbsp;clk_2MHz;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;reg&nbsp;&nbsp;clk_2MHz;<br>
always @(posedge clk)begin<br>
&nbsp;&nbsp;if (count=='b1111)<br>
&nbsp; &nbsp; count &lt;='d0;<br>
else<br>
count &lt;=count+1;<br>
end<br>
clk_2MHz&lt;=count;<br>
clk_2MHz&lt;=count;<br>
endmodule

CHANG 发表于 2010-6-26 07:11:25

好好看看 你帖的程序 ........

CTT 发表于 2010-6-26 08:33:20

1. clk_2MHz重复定义,重复赋值;<br>
2. always是有问题的,这也是为什么会报错的原因了。

usb 发表于 2010-6-26 09:06:10

把对那两个reg的定义去掉,然后在赋值的语句前面加assign,再改成阻塞赋值。
页: [1] 2
查看完整版本: Verilog HDL一个小程序