跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. TRNG 真随机数产生时间计算

TRNG 真随机数产生时间计算

已定时 已固定 已锁定 已移动 YTM32B1M系列
11 帖子 7 发布者 3.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • QiankQ 离线
    QiankQ 离线
    Qiank YunTu
    写于 最后由 编辑
    #2

    1.减小ent_dly的值可以缩减随机数生成时间
    2.后续项目中可以根据项目情况减小sample size的值,最大设置为0x100,也可以缩减时间

    1 条回复 最后回复
    0
    • EnweiE 离线
      EnweiE 离线
      Enwei YunTu
      写于 最后由 编辑
      #3

      Qiank 客户的实际应用,在bootloader中会使用TRNG作为握手通信的一个种子使用,所以客户希望TRNG初始化到产生第一个随机数的时间越短越好,最好能够缩短到5ms以内。

      除了减少sample size,是否还可以加快其工作时钟,比如将其接到Core_CLK?

      QiankQ 1 条回复 最后回复
      0
      • QiankQ 离线
        QiankQ 离线
        Qiank YunTu
        在 回复了 Enwei 最后由 编辑
        #4

        Enwei 因为要保证随机性,所以不能随意更改TRNG的bus clock,设计上要求TRNG内部时钟频率需要>=5*bus clock,TRNG内部时钟频率又和工艺相关,所以改时钟的方式行不通,建议还是改ent_dly或者sample size,另外我们sample size如果设置0x100,TRNG随机数的结果为256bit,如果只需要32bit,则可以设置为0x20,这个可以根据实际需求做调整

        1 条回复 最后回复
        0
        • zhaoqiuhongZ 离线
          zhaoqiuhongZ 离线
          zhaoqiuhong
          写于 最后由 编辑
          #5

          和上述应用场景一致,在bootloader中会使用TRNG作为握手通信的一个种子使用,所以希望TRNG初始化到产生第一个随机数的时间越短越好,最好能够缩短到5ms以内。只需要32bit,但是设置为0x20之后,产生的随机数基本都是重复的,原因是什么呢?

          1 条回复 最后回复
          0
          • houjun_xiaoH 离线
            houjun_xiaoH 离线
            houjun_xiao YunTu
            写于 最后由 编辑
            #6

            TRNG随机数产生后,必须将TRNG_ENT寄存器的数据全部取走, TRNG才能再次产生新的随机数. 所以如果你需要的随机数位数小于TRNG生成数据的默认长度,同样需要将TRNG_ENT寄存器全部都读一次, 使用的时候根据你需要的长度截取即可.

            1 条回复 最后回复
            0
            • zhaoqiuhongZ 离线
              zhaoqiuhongZ 离线
              zhaoqiuhong
              写于 最后由 编辑
              #7

              调用了TRNG_DRV_Get_Ent接口(TRNG_INST, temp),应该是全部读了的对吧,读出来的数组temp[8]里面的值都是一样的。只是把sample size设置为0x20之后随机数出现重复。是不可以这样改吗?

              1 条回复 最后回复
              0
              • houjun_xiaoH 离线
                houjun_xiaoH 离线
                houjun_xiao YunTu
                写于 最后由 编辑
                #8

                你说的是这个trngCfgSetting.sampleSize吗? 如果是这个,这不是配值TRNG生成位数的. TRGN模块生成的数据位数是不可修改的, 必须生成RM规定的位数, 读取后软件截取使用需要的位数.

                1 条回复 最后回复
                0
                • lswsjrmL 离线
                  lswsjrmL 离线
                  lswsjrm
                  写于 最后由 编辑
                  #9

                  请问这个问题解决了吗,我这边也遇到trng初始化时间太久问题。

                  1 条回复 最后回复
                  0
                  • 番茄+两个蛋番 离线
                    番茄+两个蛋番 离线
                    番茄+两个蛋
                    回复了Diga 最后由 编辑
                    #10

                    Diga 我按照你的方式测试 但是我修改这个A00改成其他值后 理论值和实际值对不上了。

                    1 条回复 最后回复
                    0
                    • DigaD 离线
                      DigaD 离线
                      Diga
                      编写于 最后由 编辑
                      #11

                      最新版的 demo 会把生成随机数的时间打印出来

                      1 条回复 最后回复
                      0

                    • 云途开发生态介绍

                      快速上手云途开发生态

                    • 云途论坛规则/Yuntu Forum Rules

                      发帖前请查看

                    • YT CONFIG TOOL调查问卷

                      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                    • can
                      24
                      demo
                      21
                      lin stack
                      13
                      uds
                      13
                      md14
                      6
                      fbl
                      5
                      yt-link
                      5
                      adc模块
                      4
                      Online Users
                      • 登录

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门