verilog HDL语法查错,在Quartus II 中编译,是一个分频器。

module int_div(clock,clock_out);
input clock;
output clk_out;
reg clk_P_r;
reg clk_n_r;
reg[F_DIV_WIDTH - 1:0]count_p;
reg[F_DIV_WIDTH - 1:0]count_n;
parameter F_DIV = 48000000;
parameter F_DIV_WIDTH = 32;
wire full_div_p;
wire half_div_p;
wire full_div_n;
wire half_div_n;
assign full_div_P = (count_p<F_DIV - 1);
assign half_div_p = (count_P<(F_DIV>>1) - 1);
assign full_div_n = (count_n<F_DIV - 1);
assign half_div_n = (count_n<(F_DIV>>1) - 1);
assign clk_out = (F_DIV == 1)?clock:(F_DIV[0]?(clk_p_r&clk_n_r):clk_p_n);
always@(posedge clock)
begin
if(full_div_p)
begin
count_P<=count_p + 1'b1;
if(half_div_p)
clk_p_r<=1'b0;
else
clk_P_r<=1'b1;
end
else
begin
count_P<=0;
clk_p_r<=1'b0;
end
end
always@(negedge clock)
begin
if(full_div_n)
begin
count_n<=count_n + 1'b1;
if(half_div_n)
begin
count_n<=count_n + 1'b1;
if(half_div_n)
clk_n_r<=1'b0;
else
clk_n_r<=1'b1;
end
else
begin
count_n<=0;
clk_n_r<=1'b0;
end
end
endmodule
你给我一个分频器的verilog代码吧!我改了一下,错误太多了!

错误不少,首先是定义端口时写的是 output clk_out;,但在上边端口列表中写的却是clock_out,名字根本就不一样;下面这样的错误更多,count_p后面的p有时是大写的时是小写,Verilog应该是区分大小写的;还有F_DIV_WIDTH,工程中没有这个的定义,却直接使用了,你应该是参考了别的工程中写义的常数吧?人家是包含了其它的头文件的,所以才能用F_DIV_WIDTH 代替某些数字;还有你第二个always块中的第二个if语句没有对应的end,目前就看到了这么多错误,也许全部修改之后会出现新的错误,你先改改试度吧
温馨提示:内容为网友见解,仅供参考
无其他回答

verilog HDL语法查错,在Quartus II 中编译,是一个分频器。
错误不少,首先是定义端口时写的是 output clk_out;,但在上边端口列表中写的却是clock_out,名字根本就不一样;下面这样的错误更多,count_p后面的p有时是大写的时是小写,Verilog应该是区分大小写的;还有F_DIV_WIDTH,工程中没有这个的定义,却直接使用了,你应该是参考了别的工程中写义的常数吧?

QuartusII Verilog HDL语法错误?
我修改了下,你可以试试看,应该是没有语法错误了,楼上说的挺对的 还有就是不可以采用阻塞赋值,应该采用非阻塞赋值的~~我已改过来了

Verilog代码报错,Error (10170): Verilog HDL syntax error at Seg_Sc...
\/\/quartus ii告诉我出错的位置在一二行,我看了很久也没看出来Error (10170): Verilog HDL syntax error at Seg_Scanner.v(1) near text "Â"; expecting an identifier 展开  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览43 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜...

...设计与verilog HDL第四版 王金明 中的quartus ii 是哪个版本的_百度...
quartus都是向下兼容的,quartus的界面变化都不打,建议用9.0学习,如果版本太低,以后工作中也不会用的。

如何用Quartus II对用Verilog HDL语言编写的源码进行仿真
要使用QuartusII 进行仿真,首先进行代码编译。代码输入完成后,点击start compilation按钮开始编译,编译完毕后,点击新建按钮,新建一个WaveForm文件。然后打开Node Finder,将Pin选择为 All,然后点击 find 按钮,将会将你的代码中的所有输入输出管脚都显示出来,用鼠标选择所有管脚,拖动到WaveForm文件的波形...

我在用quartus编写vhdl文件时,只要用到library ieee时,总会出现下面错 ...
仅从错误提示来看,说的是Verilog HDL语言语法错误,我认为应该是你在使用软件建立VHDL文件是选 错了选项,错选成了Verilog HDL文件,你应该选择VHDL文件.你可以尝试一下,如果正确请采纳.

...Error (10170): Verilog HDL syntax error at xxxx.v(1) near...
出现此错误一般有以下三种情况:1.某一句代码后面缺少“;”;2.begin 和end不对应;3.某一个变量在always语句中等号的左边却没有定义成reg类型。

verilog hdl程序中出现错误,在哪里能看到错误原因?
在编译完成后,一般会在程序的下半部分出现编译的结果,如果有错误或者警告会以红色字体标注,可以使用鼠标点击错误,对应错误的部分会在程序中高亮显示。这种方式与C语言的编写是一样的。如答主这里使用的是Quartus,出现错误会出现如下提示:望采纳!

verilog编译出错, unexpected '=', expecting "IDENTIFIER" or "T...
你把always那句话最后的分号去掉看看还有问题吗!以后这种问题的话放在quartus ii里面一编译就会发现错误的。

Verilog编译出错
解决方法一般有两种 1.跟换代码顶层名,也就是你这里的adder4,但是这种一般不会采用,因为这个顶层名一般是有意义的,大多是根据功能来命名的,一般看到顶层模块名就大概知道功能了,乱改不是好习惯 2.更换设置中的quartus要求的顶层,一般采用这种方法,步骤:打开setting菜单,然后在general中它就描述了...

相似回答