完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-20 09:14 编辑
在进行GMPY4指令的时候,该指令受到两个参数的影响,一个是多项式,另一个是galois field。我想问一下,在具体指令执行的时候哪一个优先级高?还是同时作用?,另外galois field的格式是什么?例子中给出了galois field为256时的情况,我想问一下在这种情况下对应的寄存器里面是什么情况? |
|
相关推荐
6个回答
|
|
galois field 不是一个参数
参数有两个,多项式和多项式的size,配置在GFPGFR寄存器 GMPY4的功能如下: typedef struct _INT32X4U [ uint8 lo1; uint8 lo2; uint8 hi1; uint8 hi2; ] int32x4u; union reg32 [ int32 x1; int32x4u x4u; ]; int32 _gmpy4(int32 a,int32 b) [ uint16 k,m,mask; int32 maxpower2; uint32 poly,c,ytmp[4]; union reg32 a32,b32,y32; a32.x1 = a; b32.x1 = b; m = (GFPGFR >> 24) + 1; poly = (GFPGFR & 0xFF) | 0x100; mask = 1; /* zero out the tmp array */ for(k=0;k<4;k++) ytmp[k] = 0; /* multiply the four sets of polynomials together */ for(k=0;k<8;k++) [ c = mask&a32.x4u.hi2; ytmp[3] ^= b32.x4u.hi2*c; c = mask&a32.x4u.hi1; ytmp[2] ^= b32.x4u.hi1*c; c = mask&a32.x4u.lo2; ytmp[1] ^= b32.x4u.lo2*c; c = mask&a32.x4u.lo1; ytmp[0] ^= b32.x4u.lo1*c; mask <<= 1; ] /* divide each result by the generator polynomial */ for(k=0;k<4;k++) [ maxpower2 = 30-_norm(ytmp[k]); while(maxpower2 >= m) [ c = poly << (maxpower2 - m); ytmp[k] ^= c; maxpower2 = 30-_norm(ytmp[k]); ] ] y32.x4u.hi2 = (uint8)ytmp[3]; y32.x4u.hi1 = (uint8)ytmp[2]; y32.x4u.lo2 = (uint8)ytmp[1]; y32.x4u.lo1 = (uint8)ytmp[0]; return(y32.x1); ] /* end of _gmpy4() function */ |
|
|
|
GMPY4指令涉及到三个参数和1和寄存器: 参数分别是src1,src2,dst 寄存器是GFPGFR 其功能是将src1和src2看做4个单独的8bit byte来执行。 执行 dst = (src1.byten * src2.byten)% GFPGFR.poly 备注:这里的乘和取余都是指伽罗华操作 |
|
|
|
看了这段代码我有几点疑问: 1._norm是什么? 2.指令集给出的例子中1个是只给了polynomial没给size,另一个是给了size 没给polynomial。我想问的是没给的值是什么? 3.a32.x4u是否就是将a划成4个8bit后的值。上述代码没有赋值就开始使用了 |
|
|
|
寄存器里还有size呢!! |
|
|
|
1. norm 对应的就是指令NORM
2. size和poly是GFPGFR寄存器的两个控制域。我理解两个例子的size和poly设置是相同的。即:GFPGFR的size设置成7,对应2^(7+1) = 256. GFPGFR的poly 域是0x1d,对应多项式0x11d. 3. 是的 |
|
|
|
听你喜欢的歌 发表于 2018-6-20 08:16 我在6416里面GFPGFR的size设置成5, GFPGFR的poly 域是0x43,计算得到的结果不对。而且改变GFPGFR的poly 域对结果没有影响。不知道是怎么回事 |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
473 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
941 浏览 1 评论
547 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
423 浏览 1 评论
975 浏览 0 评论
72浏览 3评论
CC3100BOOST使用CC3200lunchXL进行烧录
916浏览 2评论
TAS5411-Q1喇叭有爆破音,电压就会被拉低,有什么好办法解决吗?
332浏览 2评论
159浏览 2评论
206浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-5 19:16 , Processed in 0.869465 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号