微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教大侠,关于一个简单的Verilog程序

请教大侠,关于一个简单的Verilog程序

时间:10-02 整理:3721RD 点击:
module f100m_f1m(reset,f100m,f1m)
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自己解决

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top