VHDL里 二维数组的赋值问题

ENTITYaaaisport(clk:instd_logic;b:instd_logic_vector(1to512));ENDSM3;ARCHITECTUREstru... ENTITY aaa is
port ( clk:in std_logic;
b:in std_logic_vector (1 to 512) );
END SM3;

ARCHITECTURE structural of aaa is
type logicvector2 is array (natural range<>,natural range<>) of std_logic;
signal w: logicvector2 (0 to 67,1 to 32);
signal ww:logicvector2 (0 to 63,1 to 32);

begin

w(0)<=b(1 to 32); 问题在这一行
Error (10382): VHDL error at Protocol.vhd(16): index of object of array type logicvector2 must have 2 dimensions
求解答
展开
 我来答
girlw555
2013-10-10 · TA获得超过1864个赞
知道答主
回答量:39
采纳率:0%
帮助的人:27.2万
展开全部
先假设你的定义正确,那么你的信号w一定是w(x,y)类型的,那你调用的时候就不能只用一个参数x,(y呢?);
其次,你的定义是相互矛盾的,本身就有问题。你想:端口b是一个标准逻辑位矢量的类型,把它赋给一个二维数组w(x,y)类型,本身就违反了同型赋值的规则,是不可能实现的;

正确的做法应该是:
定义
type logicvector2 is array (natural range<>) of std_logic_vector(0 to 31);
signal w: logicvector2 (0 to 67);
……
begin

w(0)<=b(1 to 32);

……
end arch;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyy20080901
2013-10-10
知道答主
回答量:7
采纳率:0%
帮助的人:7万
展开全部
ENTITY aaa is
port ( clk:in std_logic;
b:in std_logic_vector (1 to 512) );
END aaa;

ARCHITECTURE structural of aaa is
type logicvector2 is array (natural range<>,natural range<>) of std_logic;
signal w: logicvector2 (0 to 67,1 to 32);
signal ww:logicvector2 (0 to 63,1 to 32);

begin

w(0)<=b(1 to 32);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式