使用vhdl中的类型创建二维数组
你能用VHDL中的类型帮我做这个矩阵声明吗使用vhdl中的类型创建二维数组,vhdl,Vhdl,你能用VHDL中的类型帮我做这个矩阵声明吗 ——A B Q Y (('0', '0', "000", 0), ('0','1','ZZ1',1), ('1','0','Z1Z',1), ('1','1','1ZZ',2)) 类型声明可能如下所示: type element_t is record A : std_logic; B : std_logic; Q : std_logic_vector(2 downto 0); Y : natural; end record; typ
——A B Q Y
(('0', '0', "000", 0),
('0','1','ZZ1',1),
('1','0','Z1Z',1),
('1','1','1ZZ',2))
类型声明可能如下所示:
type element_t is record
A : std_logic;
B : std_logic;
Q : std_logic_vector(2 downto 0);
Y : natural;
end record;
type array_t is array (0 to 3) of element_t;
constant VALUE : array_t :=
-- A B Q Y
(('0', '0', "000", 0),
('0', '1', "ZZ1", 1),
('1', '0', "Z1Z", 1),
('1', '1', "1ZZ", 2));
让我建议你得到一个VHDL编译器和模拟器,像免费的;然后您可以自己轻松地尝试使用VHDL。没有列连接。没有2d数组-“数组对象是由具有相同子类型的元素组成的复合对象。”(IEEE Std 1076-2008 5.3.2.1),这不符合数学定义“行和列中数量或表达式的矩形数组,被视为单个实体,并根据特定规则进行操作“它不是长方形的。一个数组被索引,一个记录元素被选中-。@user1155120:您的权利,这是一个重要的注释。从类型宽松语言(如Python)输入VHDL的程序员必须习惯VHDL的强大类型要求。构造是一个一维数组(1D)数组,其中的元素是记录(而不是另一个数组,即使赋值看起来是这样的)。显示的聚合表达式表示一个包含4个元素的一维数组类型。元素聚合表达式表示包含4个元素a、B、Q和Y的记录类型。从聚合中看,记录元素的类型并不明显。A和B可以是std_逻辑,例如,Q A std_逻辑向量和Y为整数类型。IEEE std 1076-2008 5.3.3记录类型中描述了记录类型,5.3.2阵列类型中描述了阵列类型。另见第8条。名称、8.4索引名称和8.3选定名称。