vhdl 程序中如何定义二维数组?要求存放40个数,每个数占16位?

 我来答
kevingar
2010-08-26 · TA获得超过479个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:175万
展开全部
type array_type is (39 downto 0) of std_logic_vector(15 downto 0);
signal array : array_type;
这是定义40个16bit的数。

如果你的40个数是又是5行8列的,可以这么写
type array_1type is (4 downto 0) of std_logic_vector(15 downto 0);
type array_2type is (7 downto 0) of array_1type;

signal array: array_2type;
宣义甫裳
2020-04-11 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:1113万
展开全部
先假设你的定义正确,那么你的信号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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangshuhe33
推荐于2018-03-29 · TA获得超过752个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:263万
展开全部
type shu_zu is array (0 to 5,7 downto 0) of std_logic_vector;
constant rom_data:shu_zu:=
(('0','0','0','0','0','0','0','0'),
('0','0','0','0','0','0','0','0'),
('0','0','0','0','0','0','0','0'),
('0','0','0','0','0','0','0','0'),
('0','0','0','0','0','0','0','0'),
('0','0','0','0','0','0','0','0'));
不知道你的40个数是要怎么分各维元素个数的。自己看着改下就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式