请教大侠,关于一个简单的Verilog程序
input reset,f100m;
output f1m;
reg f100m;
reg [7:0]j;
always@(posedge f100m)
if(!reset)
begin
f100m<=0;
j<=0;
end
else
begin
if(j=100)//对计数器进行判断,以确定F1m信号是否反转
begin
j<=0;
f1m<=~f1m;
end
else
j<=j+1;
end
endmodule
这是我做的一个简单的分频器程序,用于将100HZ的clk变为1M,但是在quartusII中,提示Error (10170): Verilog HDL syntax error at all_project.v(3) near text "input";expecting ";" 不知道为什么。请教大侠~~~
always@(posedge f100m)
if(!reset)
begin
f100m<=0;
j<=0;
end
是不是这里错了啊.F100M,应该是F1M 吧!
第四行也写错了。
一不小心看出4个错。
module f100m_f1m(reset,f100m,f1m)
inputreset;
inputf100m;
output f1m;
reg f1m;
reg [7:0]j;
always@(posedge f100m)
if(!reset)
begin
f1m<=0;
j<=0;
end
else
begin
if(j=100)//对计数器进行判断,以确定F1m信号是否反转
begin
j<=0;
f1m<=~f1m;
end
else
j<=j+1;
end
endmodule
Error (10170): Verilog HDL syntax error at all_project.v(3) near text "input";expecting ";"
刚才两个地方打错了。谢谢楼上两位,但是还是不对啊。
大侠,帮帮忙~~~~~~~~谢谢谢谢
if(j=99)//对计数器进行判断,以确定F1m信号是否反转
自己又找到一个 ^_^
第一行少了一个分号
hehe
按照出错提示慢慢找吧
找错也是一种能力
不敢当,我是个初学者,给你发了消息了。呵呵。
谢谢大家,学到了不少,哈哈~~~看来我真是眼高手低啊。
Error (10170): Verilog HDL syntax error at all_project.v(3) near text "input";expecting..........
说明input附近出错了,那就应该是第一行少了";"
if(j=100)应该为if(j==100)因为这里是判断语句,不是比较语句.
f100m<=0;应该为 f1m<=0;按照verilogHDL语法来说 f100m是被声明为nput端口,那只能是wire型;另一方面 f100m在always块内被复值
必须为reg型.所以在语法上矛盾的.
问题比较多,
1。第一行缺分号;
2。f100m是输入但是却在程序里赋值了;reset后应该是 f1m<=0;
3。reg f100m;应该为reg f1m。
按照提示来查就可以了:第一行少了一个分号
module f100m_f1m(reset,f100m,f1m);
应该有分号才对哈
你看看书吧,不是很难啊,你里面有好多语法错误的。
module f100m_f1m(reset,f100m,f1m);//少一分号
inputreset;
inputf100m;
output f1m;
reg f1m;
regj;//j都没定义
reg [7:0] j;//不要写在一起啊
always@(posedge f100m)
if(!reset)
begin
f1m<=0;
j<=0;
end
else
begin
if(j==100)//对计数器进行判断,以确定F1m信号是否反转//==
begin
j<=0;
f1m<=~f1m;
end
else
j<=j+1;
end
endmodule
就找到三个
四个
代码风格有点小恐怖..
先做好这个,有sytax error自己解决