微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 中怎样对一个reg变量边写边读

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]

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

网站地图

Top