QuartusII Verilog HDL语法错误?

下面的个程序为什么给寄存器赋值的时候,出现了语法错误。
module LED_Chinese(clk_H,ex_s,ex_l);
input clk_H;
output[15:0] ex_l;
reg[15:0] ex_l;
output[3:0] ex_s;
reg[3:0] ex_s;
reg[15:0] data[0:32];
data[0]='b0000000000000000;
data[1]='b0000000000010000;
data[2]='b0000000000010000;
data[3]='b0000000000010000;
data[4]='b0111111111111111;
data[5]='b1000000000010000;
data[6]='b0100000000010000;
data[7]='b0000011000010000;
data[8]='b0000000100010000;
data[9]='b0000000000010000;
data[10]='b0000000000010000;
data[11]='b0000000000000111;
data[12]='b1111111111111000;
data[13]='b0000000001100000;
data[14]='b0000000010000000;
data[15]='b0000000100000000;
always@(posedge clk_H)
begin
ex_s=ex_s+1;
ex_l=data[ex_s];
end
endmodule
错误如下:
Error (10170): Verilog HDL syntax error at LED_Chinese.v(8) near text "="; expecting ".", or an identifier, or "["
Error (10170): Verilog HDL syntax error at LED_Chinese.v(9) near text "="; expecting ".", or an identifier, or "["
Error (10170): Verilog HDL syntax error at LED_Chinese.v(10) near text "="; expecting ".", or an identifier, or "["
Error (10170): Verilog HDL syntax error at LED_Chinese.v(11) near text "="; expecting ".", or an identifier, or "["
Error (10170): Verilog HDL syntax error at LED_Chinese.v(12) near text "="; expecting ".", or an identifier, or "["

module LED_Chinese(clk_H,ex_s,ex_l,reset);
input clk_H;
input reset;
output[15:0] ex_l;
reg[15:0] ex_l;
output[3:0] ex_s;
reg[3:0] ex_s;
reg[15:0] data[0:32];

always@(posedge clk_H)
begin
if(reset) begin
data[0]<='b0000000000000000;
data[1]<='b0000000000010000;
data[2]<='b0000000000010000;
data[3]<='b0000000000010000;
data[4]<='b0111111111111111;
data[5]<='b1000000000010000;
data[6]<='b0100000000010000;
data[7]<='b0000011000010000;
data[8]<='b0000000100010000;
data[9]<='b0000000000010000;
data[10]<='b0000000000010000;
data[11]<='b0000000000000111;
data[12]<='b1111111111111000;
data[13]<='b0000000001100000;
data[14]<='b0000000010000000;
data[15]<='b0000000100000000;
ex_s<=1'b0;
ex_l<=32'b0;
end
else begin
ex_s<=ex_s+1;
ex_l<=data[ex_s];
end
end
endmodule

我修改了下,你可以试试看,应该是没有语法错误了,楼上说的挺对的
还有就是不可以采用阻塞赋值,应该采用非阻塞赋值的~~我已改过来了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-19
1. data是reg型,不能在always外赋值.
2. ex_i, ex_s这些reg输出都需要在always里做初始化.
第2个回答  2011-12-03
data[0]='b0000000000000000;这一句应该改成:data[0]=16'b0000000000000000;你是16位的数据嘛,前面需要注明的。
第3个回答  2011-12-02
data这行你是要用数组来表示的吧,但这这样子你还不如单独拿出来例化一个模块呢。这样子是找不到了,其实你是把地址计数器和ROM给结合起来了吧。

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

verilog语法求助
你可以把“always@(posedgeclkornegedger_est)”改为“always@(posedgeclkorposedger_est)”再编译试试,应该就没问题了。你右键该错误点击“Help”里是这么说的:CAUSE:InaconditionalstatementatthespecifiedlocationinaVerilogDesignFile(.v),youspecifiedaconditionthatQuartusIIIntegratedSynthesiscannotusetoc...

用quartus ii检验一个verilog程序是否正确应该怎么做?看软件的哪些部分...
(1)把程序输到quatus当中,(2)先进行编译(compile),看有没有语法错误;(3)然后进行仿真,看有没有逻辑错误;(3)下载到fpga当中,最后看硬件能不能实现;给你推荐两本好书:一是夏宇闻那本书,理论讲的很好;二是周润景那本书,比较侧重于quartus2软件的使用;...

关于Verilog hdl 中循环语句forever编译错误的疑问。
Verilog 这个语言有两个部分,一部分是可综合的用来生成电路,一部分是不可综合的用来写testbench(测试脚本)。你贴的程序是不能综合的那部分,是testbench。不能综合的那部分非常的接近C语言,适合写测试文件。我在网上看了一下,你是参考的《基于Verilog HDL设计的多功能数字钟》这篇论文 你贴的这...

请各位大神们帮帮忙,用的是quartus ii 9.0 写verilog代码,在编译的时候...
你在新建时选择的是VHDL语言,而你写的是Verilog语言,所以出错。你重新建一个就行了

quartus2中rom库生成出问题了 Error (10500): VHDL syntax error at r...
1、最后一行多了一个逗号吧,少了个endif 。总共9个if 对应的应该有9个endif 代码里只有8个数。2、CONSTANTrom_length:NATURAL:=256;SU**YPErom_wordISSTD_LOGIC_VECTOR(rom_width- 3、0010110","00001011","11110000","00000010","00000000","00010001",4、"11110000","00000110","...

初学QuartusII软件,最近用verilog编了一个程序,但是编译中出现Error...
1.需要用破解包里的一个sys_cpt.dll替换安装软件\/bin下边的"sys_cpt.dll"文件 2.既然你已经修改license.dat中的MAC,那么启动quartus,点击tools->license setup,然后将路径指定到你放置license.dat文件的地方。正常破解后你能在该页面下看到已经支持的器件 基于你目前的情况,有两个关键点需要确认:1...

quartus ii error(10014)
错误(10014):Verilog HDL语言支持的功能错误的文件“kaiguan_jianmo.v”(8):不能合成的MOS开关门

quartus错误问题
原因:vectorsource file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。措施:编辑vectorsource file 2.Verilog HDL assignment warning at<location>: truncated with size <number> to match size of target...

verilog quartus ii 调用Modelsim仿真问题Error in macro
先看看rtl编译有没有通过,如果通过了还有错,看看你的顶层模块是哪个,有没有与你要用的对应起来。这点信息量也够为难人的了。。

相似回答