【平头哥开源CPU——玄铁C910】开源项目DC综合准备流程(SRAM处理)

项目库配置和前仿真可以参考我的上一个文章:http://t.csdnimg.cn/NDLAz

后端

要后端仿真首先就得找到对应的工艺库,没有库的仿真是仿真不成的。我们选择tsmc65nm工艺库做这个芯片的仿真库。

SRAM处理

在进行后仿真之前,注意到这个设计中用到了大量的sram,还有很多sram颇为巨大。如果我们不对这些sram做相关处理而直接使用dc综合的话,那么默认情况下dc就会生成大量的寄存器来构成这样的sram。这一方面会导致生成速度极为缓慢,另一方面会导致面积和功耗过大的问题。

因此对于这种问题的解决方法就是使用Memeory Complier(MC)来生成对应大小的sram,然后再把生成好的sram替换掉原本设计中的sram.

以下是整个设计中的所有sram:
端口类型_addrwidth x datawidth

不能直接生成的sram可以直接生成的sram
spsram_16384x128.v 2048x128x8(256KB)spsram_1024x128.v
spsram_256x196.v 256x98x2spsram_1024x144.v
spsram_32768x128.v 2048x128x16(512KB)spsram_1024x32.v
spsram_4096x128.v 2048x128x2(64KB)spsram_1024x59.v
spsram_4096x144.v 2048x144x2spsram_1024x64.v
spsram_4096x32.v 2048x32x2spsram_1024x92.v
spsram_4096x84.v 2048x84x2spsram_128x104.v
spsram_512x7.v 512x8spsram_128x144.v
spsram_64x108.v 128x108spsram_128x16.v
spsram_65536x128.v 2048x128x32(1MB)spsram_2048x128.v
spsram_8192x128.v 2048x128x4(128KB)spsram_2048x144.v
spsram_8192x32.v 2048x32x4spsram_2048x32.v
spsram_2048x32_split.v
spsram_2048x59.v
spsram_2048x88.v
spsram_256x100.v
spsram_256x144.v
spsram_256x23.v
spsram_256x52.v
spsram_256x54.v
spsram_256x59.v
spsram_256x7.v 256x8
spsram_256x84.v
spsram_512x144.v
spsram_512x22.v
spsram_512x44.v
spsram_512x52.v
spsram_512x54.v
spsram_512x59.v
spsram_512x96.v

生成SRAM

这里选择使用MC来生成相关的SRAM,MC的使用方法见我的另一篇文章:

调用SRAM .v进行仿真

内存扩展

由于C910里面的cache有些比较大,我使用的MC软件(也许是使用的工艺库的问题)无法完全编译出所有大小的SRAM,所以有些SRAM需要我们自行做处理。
具体替换sram的方法,在c910的用户手册里有提供示例,大家可以参考相关内容自行修改:
在这里插入图片描述

这里只总结一些关于替换SRAM的经验:

  • 替换一个sram之前,你需要看以下内容:
    • 哪些模块调用了该sram?
    • sram组合了哪些其他sram?
    • sram原本内部的控制逻辑?
    • 替换前后sram的区别?
      • 接口是否对应?
        • 不对应的接口如何处理?(生成本地zero信号,不能悬空)
      • 数据位宽是否一致?(A D BWEN Q)

路径替换

然后我们替换sram 这里建议是直接修改.fl文件的spsram路径:

/home/lizhaofeng/PRJ/Workbench/extended_sram

原来的.fl文件 copy一份备份
在这里插入图片描述

将所有名称有ct_f_spsram*的文件路径都删除掉,然后改成我们新路径下的ct_f_spsram*的路径。
注意,这里我们要保留几个例化了ct_f_spsram的ct_spsram文件

在前期生成好SRAM的.v文件后,需要修改原来的设计中例化的模块为刚刚生成好的例化模块。

我们使用脚本语言先生成我们修改过的SRAM的路径

find /home/lizhaofeng/PRJ/Workbench/extended_sram -type f -name "*.v" > v_files.txt

然后把这些路径粘贴到.fl文件中。
在这里插入图片描述

(注意,这里不能使用*符号代替所有.v文件,因为会无法识别)

CASE测试

先跑个hello_world看一下基础功能:

make runcase CASE=hello_world SIM=vcs

报了个小错,按照提示修改一下:
在这里插入图片描述
最后成功跑通:
在这里插入图片描述

再跑一些内存相关测试case:
和内存相关的case如下,这些case实测修改sram之前都可跑通,不会出现卡住的问题。

make runcase CASE=ISA_AMO SIM=vcs (pass)
make runcase CASE=cache_op SIM=vcs (pass)
make runcase CASE=debug_memory SIM=vcs (pass)
make runcase CASE=MMU SIM=vcs (unpass)
make runcase CASE=ISA_BARRIER SIM=vcs (pass)
make runcase CASE=sleep SIM=vcs (pass)

再跑完其他case,看有哪些不能通过(实测不进行sram修改的情况下都能跑通):

make runcase CASE=smoke_bus SIM=vcs (unpass)
make runcase CASE=debug_gpr SIM=vcs (pass)
make runcase CASE=ISA_THEAD SIM=vcs (pass)
make runcase CASE=hello_world SIM=vcs (pass)
make runcase CASE=csr SIM=vcs (pass)
make runcase CASE=plic_int SIM=vcs (pass)

以下case默认情况下就无法跑通:

make runcase CASE=coremark SIM=vcs (error ee_ptr_type)
make runcase CASE=ISA_FP SIM=vcs (build error)
make runcase CASE=ISA_IMAC SIM=vcs (finished with error)

有部分case跑不通,但是不太影响DC的后续流程。

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 玄铁C910是一款高性能的外部设备,适用于个人电脑的用户手册主要包含以下几个方面的内容: 1. 产品概述:用户手册首先介绍了玄铁C910的基本信息,包括外形特点、主要功能和适用范围等内容。用户可以通过阅读概述部分快速了解到这款设备的基本情况。 2. 安装与设置:接下来的章节详细介绍了玄铁C910的安装和设置方法。用户手册提供了图文并茂的教程,帮助用户轻松完成设备的连接和软件的安装,以及对设备进行一些基本设置的操作。 3. 使用说明:在这一部分,用户手册解释了玄铁C910的各个功能和使用方法。从设备的启动方法到具体的应用场景,用户可以通过手册了解设备的操作指南和使用技巧。 4. 常见问题解答:用户手册还为一些常见问题和故障提供了解决方案。从设备无法识别到连接不稳定等问题,用户可以通过查询这个章节找到解决问题的方法。 5. 其他说明:用户手册最后还包含了一些其他相关的说明,比如保修条款、技术支持联系方式等等。用户在遇到问题时可以及时联系售后服务或者技术支持部门。 综上所述,玄铁C910用户手册提供了一份全面且易懂的说明书,可以帮助用户正确安装、设置和使用这款设备。用户可以根据手册里的步骤和指南,充分发挥玄铁C910的性能和功能,提高个人电脑的使用体验。 ### 回答2: 玄铁C910是一款智能手机,用户手册是为了帮助用户正确使用和了解该手机的功能和操作而编写的指南。 首先,用户手册详细介绍了玄铁C910的外观和主要硬件配置。从外观方面,它可能具有精致的金属机身,屏幕大小和分辨率等信息。在硬件配置方面,用户手册会列出处理器、内存、存储容量和电池等关键参数,让用户对手机的性能有一个整体的了解。 其次,用户手册会详细介绍玄铁C910的系统操作。它会解释如何开关机、解锁屏幕、切换语言等基本操作,也会介绍如何连接无线网络、蓝牙和GPS等其他常用功能。此外,用户手册还可能提供有关如何调整音量、亮度和屏幕时间等设置,以及如何使用指纹或面部识别等高级安全功能的指导。 此外,用户手册还将详细介绍玄铁C910的系统应用和核心功能。它可能包括如何设置和使用各种通信应用程序,如电话、短信和电子邮件,以及如何浏览互联网、访问社交媒体和下载应用程序等。对于那些喜欢拍照的用户,用户手册可能会介绍如何使用相机应用程序,并提供一些摄影技巧和特殊功能的指导。 最后,用户手册还会对其它一些特殊功能进行讲解,比如如何使用语音助手、设置定时提醒或闹钟等。同时,可能还会列出一些常见问题和解决方案,以帮助用户自行解决一些常见的疑问和故障。 总之,玄铁C910用户手册是一个重要的辅助工具,它通过详细而清晰的指导,帮助用户更好地理解和使用这款智能手机的各项功能和操作。 ### 回答3: 玄铁C910是一款高性能的电视机顶盒,提供了丰富的功能和应用。用户手册是为了让用户更好地了解和使用这款产品而编写的指南。 这本用户手册主要分为几个部分:产品介绍、使用指南、功能说明和故障排除。在产品介绍部分,手册会详细介绍玄铁C910的外观、硬件配置以及支持的技术规格,帮助用户了解产品的性能和功能。使用指南部分会教用户如何正确安装电视机顶盒并与电视机连接,以及如何进行基本设置和使用。功能说明部分则会逐一介绍电视机顶盒的主要功能模块,如:电视节目收看、网络连接、应用程序安装等,用户可以根据自己的需求和兴趣选择和操作。最后,故障排除部分则会列举一些常见问题和解决办法,帮助用户在使用电视机顶盒时遇到问题能够迅速解决。 玄铁C910用户手册将以简明清晰的语言、图文并茂的实例来说明产品的使用方法和注意事项,以确保用户能轻松地掌握电视机顶盒的操作。用户手册的编写旨在提供全面的信息和指导,并提供实用的技巧和建议,让用户能够充分享受玄铁C910带来的高质量的电视娱乐体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值