找回密码
 注册
关于网站域名变更的通知
查看: 318|回复: 3
打印 上一主题 下一主题

如何从32位数据总线转换为64位数据总线呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-10-24 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我必须为具有64位数据总线(ARM11,Cortex-R4)的ARM处理器编写C程序,然后再执行一些仿真(Verilog)。到目前为止,我仅使用具有32位宽AHB数据总线(ARM9)的处理器。当我从32位数据总线转换为64位数据总线时,我还不清楚在这里对我有什么变化?在此问题上,我必须考虑哪些主要考虑因素?我为ARM966编写的程序是否可以为ARM11编译,并且ELF文件中的全局更改是什么?我假设ARM指令和地址总线为32位宽(并且还没有ARM处理器具有32位宽的地址总线)。我打算将ELF文件放入64位宽的Verilog存储器中进行仿真-在这种情况下,是否所有内容都必须对齐8个字节?
) H5 B% i) g  {* R# D

该用户从未签到

2#
发表于 2022-10-24 13:08 | 只看该作者
ARM9编写的C程序可以被编译并以ARM11为目标。但是,当然,诸如MMU设置和CP15寄存器之类的东西将有所不同。
1 u* f8 E2 B; [* G& x

该用户从未签到

3#
发表于 2022-10-24 13:27 | 只看该作者
对于Cortex-A8(AXI总线),ARM Fabric IP还具有可配置的AXI组件,该组件可以将64位AXI总线转换为32位总线,您可以使用我们的AXI内存控制器之一,例如PL350。在这种情况下,您可以将内存模型开发为SRAM类型的设备。* f: E4 J( n5 r( ?* `$ y; i

该用户从未签到

4#
发表于 2022-10-24 13:44 | 只看该作者
对于Verilog仿真,可以使用32位或64位内存。
; `. ^4 |8 b2 e% C1 {如果使用的是ARM1136(64位AHB),则可以使用AHB精简器将总线转换为32位AHB,然后使用32位内存仿真模型。+ G2 D. v; @0 ]  t
AHB缩小器是AMBA开发套件(ADK)的一部分。当然,您也可以开发64位AHB存储器仿真并直接连接到64位AHB。您可以像往常一样将数据数组创建为32位,将程序映像读取到该数组中,然后为每个64位访问将两个字合并为一个64位数据。代码和数据不必是64位对齐的。但是,如果您使用的是双字数据,则将其与8字节边界对齐将有助于提高访问速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-16 09:33 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表