如何为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发布于 2018-01-19 11:40:41
查看维基百科页面的PIC24显示,SE指令具有这样的beahviour:
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的所有位,第二行用src的7:0位覆盖dst的7:0位。
https://stackoverflow.com/questions/48339772
复制相似问题