如何为PIC24实现VHDL(ALU中)的符号扩展指令? 我需要实施以下说明,而且我不知道如何实施SE。
LOOP:
mov 0x1020, w1 ; INW0=ff7f
mov 0x1022, w2 ; INW1=8001
ior w2, w2, w3 ; N=1
se w1, w1 ; N=0
REP1:
bra n, REP1
add w1, w1, w5
se w5, w6 , N=1
bra n, CONT1
REP2:
bra rep2
CONT1:
mov w6, 0x1024
bra LOOP
答案 0 :(得分:0)
查看PIC24的Wikipedia page表明SE
指令具有以下功能:
SE src,dst C Z N dst ← sign_extend(src), copy bit 7 to bits 15:8
可以使用连接运算符(&
)将第7位复制到位15:8,它将数组连接在一起以构成更大的数组:
dst <= src(7) & src(7) & src(7) & src(7) & src(7) & src(7) & src(7) & src(7) & src(7 downto 0);
通过将这两行拆分并使用部分选择和聚合,可以使其更具可扩展性:
dst <= (others => src(7));
dst(7 downto 0) <= src(7 downto 0);
第一行用dst
的第7位填充src
的所有位;第二行用dst
的位7:0覆盖src
的第7位:0。