🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/开源蜂鸟E203/N101仿真运行C程序出错
N101仿真运行C程序出错
开源蜂鸟E203 作者 王志军 发布于 2020-11-18 10:23(2151 天前) 5859 浏览

公众号里面的微信不能添加了。。。。。能不能处理一下,帮我拉如讨论群,谢谢!

问题:芯来一分钱计划里面的N101SoC,然后将C程序编译好之后,仿真运行时出现错误,大家能不能看看时什么原因帮忙解决一下。。。。。,新手小白看不出什么出错了,谢谢大家

全部回复 12
拾柒?
拾柒?2129 天前 · 1 楼
回复 王志军:

加好友交流一下吧

好的,谢谢

王志军
王志军2129 天前 · 2 楼
回复 拾柒?:

你是运行的n101里面的例子吗,比如说helloword,我运行它里面的例子,最后用verdi看波形,它会循环执行两条指令,陷入死循环,您之前有遇到这种现象吗

加好友交流一下吧

拾柒?
拾柒?2129 天前 · 3 楼
回复 王志军:

我也是这样改的,然后可以运行了

你是运行的n101里面的例子吗,比如说helloword,我运行它里面的例子,最后用verdi看波形,它会循环执行两条指令,陷入死循环,您之前有遇到这种现象吗

王志军
王志军2129 天前 · 4 楼
回复 拾柒?:

但是我将地址改为@00000000为起始地址之后就能够运行了,因为我看仿真测试汇编语句的时候,它的测试用例的.verilog地址就是@00000000

同学,你把地址改了之后,可以正常运行吗,有进入一个死循环么

我也是这样改的,然后可以运行了

拾柒?
拾柒?2129 天前 · 5 楼

但是我将地址改为@00000000为起始地址之后就能够运行了,因为我看仿真测试汇编语句的时候,它的测试用例的.verilog地址就是@00000000

同学,你把地址改了之后,可以正常运行吗,有进入一个死循环么

拾柒?
拾柒?2129 天前 · 6 楼

我也遇到了同样的问题,有大佬解决了么,可以分享下解决办法么

X
XQS09272146 天前 · 7 楼

N101我没用过,不清楚,如果我猜的没错的话,N101的ITCM被映射到地址0x00080000。hello_world.verilog文件开头的@00080000表示程序要放到起始地址0x00080000的空间内。readmem读到文件中的这个地址标记之后,就试图把文件中的内容放到ilm_mem这个reg阵列中0x80000地址开始的地方,我猜你的ILM空间应该不到512K,所以报告一个illegal entry。所以就初始化失败,所以ilm_mem中0地址开始的部分就是未初始化状态,所以读取到的就是xxxxxxxx,所以就跑不起来。

以上是基于猜测的一些结论,我没用过N101,所以如果有不准确的地方,请大拿批评指正。;)

王志军
王志军2148 天前 · 8 楼
回复 XQS0927:

看截图中第一条waring信息,似乎是readmem语句没有读取到正确的文件,ILM中的指令存储器没有被初始化成功,以至于取指取到的都是X态数据,所以就运行不起来咯。

这几天一直在找原因,很困惑,希望您能帮忙看看,谢谢!

王志军
王志军2148 天前 · 9 楼


王志军
王志军2148 天前 · 10 楼


王志军
王志军2148 天前 · 11 楼
回复 XQS0927:

看截图中第一条waring信息,似乎是readmem语句没有读取到正确的文件,ILM中的指令存储器没有被初始化成功,以至于取指取到的都是X态数据,所以就运行不起来咯。

readmem函数需要读取hello_world.verilog文件,该文件的开头是@00080000;然后仿真的时候出现上面的错误ILM没有被初始化!! 但是我将地址改为@00000000为起始地址之后就能够运行了,因为我看仿真测试汇编语句的时候,它的测试用例的.verilog地址就是@00000000 请问这是什么原因呢?还有.verilog文件的开头@00080000地址代表着什么含义?readmem函数读到此代表什么?

X
XQS09272151 天前 · 12 楼

看截图中第一条waring信息,似乎是readmem语句没有读取到正确的文件,ILM中的指令存储器没有被初始化成功,以至于取指取到的都是X态数据,所以就运行不起来咯。

💡 请 登录 后参与讨论(微信扫码即登录/注册)