verilog 中怎样对一个reg变量边写边读
时间:10-02
整理:3721RD
点击:
a_d_csout,writein,fpgadata输入信号,data[]是一组255个寄存器变量,在writein作用下,将输入口信号fpga状态写入data中,写完255个就结束了,然后在a_d_csout信号作用下读data寄存器,并将其输出到输出口dspdata中,但是老是出错,假如把第二个always中的data换成常量,就没有问题,请高手指点一下到底应该怎么操作。
ERROR:MapLib:93 - Illegal LOC on IPAD symbol "a_d_csout" or BUFGP symbol
ERROR:MapLib:93 - Illegal LOC on IPAD symbol "writein" or BUFGP symbol
always@(negedge writein)
begin
if(!a_d_csin && stopflag==0)
begin
data[cnt]<=fpgadata;
cnt<=cnt+1;
if(cnt==255) stopflag<=1;
end
else
cnt<=0;
end
always@(negedge a_d_csout)
begin
if(stopflag==1)
begin
dspdata<=data[cnt_dsp];//8'b00000000;//
cnt_dsp<=cnt_dsp+1;
if(cnt_dsp==255) cnt_dsp<=0;
end
end
我觉得和data的类型无关呀。 你的错误指示你的约束文件有问题。
另外,你说“data换成常量”,是不是说 wire data[255];你是这个意思吗?
用的是xilinx的FPGA吧,难道你要把writein和a_d_csout作为时钟信号,这样writein和a_d_csout信号的管脚需要分配到时钟管脚
你把dsp_data赋值为0,ISE会自动优化里面大部分的逻辑,包括data[0:255]
