我的记录类型如下:
type Rec_T is record
a : Bit_12_T;
b : Bit_4_T;
end record;
其中Bit_12_T is mod 2**12
和Bit_4_T is mod 2**4
。
为了告诉编译器这条记录的精确对齐,我使用了for use record
语句。但是,我想在字节之间拆分a
字段,所以我尝试按如下方式进行:
for Rec_T use record
a at 0 range 0 .. 7; -- The 1st byte
a at 1 range 0 .. 3; -- The 2nd byte
b at 1 range 4 .. 7;
end record;
显然,这不是这样做的方法,因为编译器抱怨"组件子句先前在行..."。
问题:是否可以在字节之间拆分组件以及如何进行操作?如果不可能,我应该有a_high和a_low然后使用一些位操作将它们合并在一起吗?
答案 0 :(得分:2)