【发布时间】:2016-08-23 23:15:51
【问题描述】:
我的记录类型如下:
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,然后使用一些位操作将它们合并在一起?
【问题讨论】: