用QuartusII 9.1编写VerilogHDL出现语法错误 15
错误提示:Error(10170):VerilogHDLsyntaxerroratMD5_self_test.v(34)neartext"=";expecting".",...
错误提示:Error (10170): Verilog HDL syntax error at MD5_self_test.v(34) near text "="; expecting ".", or an identifier
代码:
(第31行)reg[31:0] cons_FF[15:0];//,cons_GG[15:0],cons_HH[15:0],cons_II[15:0];
(第32行)//initialize the four constant memory
(第33行)//cons_FF
(第34行)cons_FF[0]=32'hd76aa478;//cons_FF[1]=32'he8c7b756;cons_FF[2]=32'h242070db;cons_FF[3]=32'hc1bdceee;
(第35行)cons_FF[4]=32'hf57c0faf;cons_FF[5]=32'h4787c62a;cons_FF[6]=32'ha8304613;cons_FF[7]=32'hfd469501;
(第36行)cons_FF[8]=32'h698098d8;cons_FF[9]=32'h8b44f7af;cons_FF[10]=32'hffff5bb1;cons_FF[11]=32'h895cd7be;
(第37行)cons_FF[12]=32'h6b901122;cons_FF[13]=32'hfd987193;cons_FF[14]=32'ha679438e;cons_FF[15]=32'h49b40821;
声明一个reg[31:0] cons_FF[15:0]和新建一个宽度为32bit,深度为16bit的ram有什么区别?reg[31:0] cons_FF[15:0]应该怎么样向其中赋值?
另外我想问一下在quartus里面我新建了一个ram,要怎么读写ram中的数据?ram的控制方式是什么样子的,有代码或者例子可以参考吗? 展开
代码:
(第31行)reg[31:0] cons_FF[15:0];//,cons_GG[15:0],cons_HH[15:0],cons_II[15:0];
(第32行)//initialize the four constant memory
(第33行)//cons_FF
(第34行)cons_FF[0]=32'hd76aa478;//cons_FF[1]=32'he8c7b756;cons_FF[2]=32'h242070db;cons_FF[3]=32'hc1bdceee;
(第35行)cons_FF[4]=32'hf57c0faf;cons_FF[5]=32'h4787c62a;cons_FF[6]=32'ha8304613;cons_FF[7]=32'hfd469501;
(第36行)cons_FF[8]=32'h698098d8;cons_FF[9]=32'h8b44f7af;cons_FF[10]=32'hffff5bb1;cons_FF[11]=32'h895cd7be;
(第37行)cons_FF[12]=32'h6b901122;cons_FF[13]=32'hfd987193;cons_FF[14]=32'ha679438e;cons_FF[15]=32'h49b40821;
声明一个reg[31:0] cons_FF[15:0]和新建一个宽度为32bit,深度为16bit的ram有什么区别?reg[31:0] cons_FF[15:0]应该怎么样向其中赋值?
另外我想问一下在quartus里面我新建了一个ram,要怎么读写ram中的数据?ram的控制方式是什么样子的,有代码或者例子可以参考吗? 展开
1个回答
展开全部
1.目的:RTL code or simulation testbench?
2.如果是RTL code ,与该memory相连的应该使用寄存器,然后在不同的时间段给该寄存器赋值
3.如果是simulation testbench,你的赋值没有时序的概念
应该把赋值写到 initial块里面
如: initial begin...
end
4 memory是有自己的总线的,一般有CEN WEN DATA_IN ADDR这几个信号
通过这4个信号的固定的总线操作写进对应的memory里面去
2.如果是RTL code ,与该memory相连的应该使用寄存器,然后在不同的时间段给该寄存器赋值
3.如果是simulation testbench,你的赋值没有时序的概念
应该把赋值写到 initial块里面
如: initial begin...
end
4 memory是有自己的总线的,一般有CEN WEN DATA_IN ADDR这几个信号
通过这4个信号的固定的总线操作写进对应的memory里面去
追问
我是小白不太明白RTL code和simulation testbench是什么,但是就是在新建的verilog HDL文件里面设计一个module,设计这个module的时候想在最开始的时候开辟一个存储区域用来存数据。
另外对memory里面的存储单元的初始化只能在仿真的时候进行吗?
追答
简单点的初始化赋值可以这样:
always@( posedge clk or negedge rstn )
if( !rstn ) // 复位赋值相当于初始化赋值
begin
cons_FF[0]=32'hd76aa478;
cons_FF[1]=32'he8c7b756;
...
end
else ...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询