完善资料让更多小伙伴认识你,还能领取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 域对结果没有影响。不知道是怎么回事 |
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:09 , Processed in 0.626344 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
593