2 Star 2 Fork 0

OSCC SoC/ysyx_ci_result

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

ysyx_ci_result

注意:从这次流片班车开始,CICD的代码分支命名方式修改为当前班车接收代码的起始时间,格式为年份+月份,比如这次班车的分支就是test

这是存放一生一芯CICD测试后返回报告的仓库。report目录存放有SoC和后端团队对前端代码进行功能仿真和综合后返回的报告。运行一次完整的vcs测试时间大约在40-50分钟之间,一次完整dc测试时间在0.5-2个小时不等。由于一次测试时间较长,所以我们在report自己学号目录下的state文件记录有当前核在提交队列中的位置,具体格式为:

state: under test

表示当前核正在测试中,或者为:

state: wait [nums] duts

表示前面还有[nums]个核在等待测试。自己核的测试在[nums]+1个。

CICD功能

目前测试环境已经切换到28nm,并添加了新的功能:

  1. 支持将vcs测试中fail时的run.log添加到返回的报告中。比如跑sdram中的rtthread出错,则会在vcs_report中的!!!!rtthread test in sdram fail!!!!一行下添加运行log:
!!!!rtthread test in sdram fail!!!!


The run log is:
======================================================
Chronologic VCS simulator copyright 1991-2020
Contains Synopsys proprietary information.
Compiler version R-2020.12_Full64; Runtime version R-2020.12_Full64;  Mar  1 12:37 2023
==============================================
===INFO=== Model Configuration Info
===INFO=== Device Name:  N25Q128A13E
===INFO=== DQ3 = HOLD pin
===INFO=== XIP type = Numonyx
===INFO=== VCC 3V
==============================================
[0.0 ns ns] ==INFO== Load sdram content.
[0.0 ns ns] ==INFO== Hold condition disabled: communication with the device has been activated.
[0.0 ns ns] ==INFO== Protocol selected is extended
[0.0 ns ns] ==INFO== 2. Load memory content from file: "mem_Q128_bottom.vmf".
[0.0 ns ns] ==INFO== Power up: polling allowed.
[0.0 ns ns] ==INFO== VCC has been driven below threshold : internal logic will be reset.
[0.0 ns ns] ==INFO== Protocol selected is extended
[0.0 ns ps] ==INFO== Single Transfer Rate selected
[1.0 ns ns] ==INFO== Load flash discovery paramater table content from file: "sfdp.vmf".
[150.0 ns ns] ==INFO== Power up: device fully accessible.
[150.0 ns ns] ==INFO== Protocol selected is extended
[150.0 ns ps] ==INFO== Single Transfer Rate selected
jump to sdram...
heap: [   0022280 - 0 88422210]
 2006 - 2021 Copyright by rt-thread team
$finish called from file "../tb/asic_system.v", line 431.
$finish at simulation time 200000000.0 ns
           V C S   S i m u l a t i o n   R e p o r t 
Time: 200000000000 ps
CPU Time:    345.030 seconds;       Data structure size:  38.5Mb
Wed Mar  1 12:43:25 2023
======================================================

注意:[150.0 ns ps] ==INFO== Single Transfer Rate selected的下一行开始到$finish called from file "../tb/asic_system.v", line 431.的上一行截止为vcs仿真运行的结果。上面可以明显看到仿真时处理器核打印的结果异常。

  1. 支持进行单独的dc测试并设置时钟约束的频率,并返回相应的报告。
  2. 对于dc+vcs的联合测试,为了尽可能减少核等待测试的时间,CICD设置了一个测试策略:
    • 先运行vcs测试,如果vcs编译出错,则直接返回结果。
    • 如果vcs编译通过,则会依次运行全部的9个测试程序。
    • 如果9个测试程序中有一个出错,则会直接返回结果,否则开始运行dc测试。

目前CICD使用 提交仓库中的 config.toml 来配置测试任务config.toml 可配置内容见:def_config.toml,添加并修改 config.toml 的具体步骤如下。

  • 拷贝 def_config.toml 到自己代码提交仓库,并修改文件名为 config.toml

  • 按照 config.toml 中的注释要求修改 [dut], [vcs][dc] 下的配置选项。

  • 注意:当设置 [vcs] 下的 wave = on时, CICD会返回vcs的仿真波形。考虑到仿真波形的大小,目前暂且只支持生成 hello-flash, hello-mem, hello-sdram 这3个程序的波形,波形返回时间大约30~40分钟。波形文件格式为FST,可以使用GTKWave打开。文件命名方式为:处理器核顶层名_hello_[flash|mem|sdram]_待测试commit的提交时间.fst.tar.bz2。波形文件存储在网盘服务器上,并只会存储24小时,过时自动删除。网盘服务器地址为:http://wave.maksyuki.com/share/65ec12649eb39/

实际config.toml设置可参考:ysyx_000000/config.toml

CICD目录结构

report 目录结构

├─ ysyx_XXXXXX(学号)          #每位同学的报告存放在自己学号的顶层目录下
   ├─ 2024-3-xx...xx:xx:xx    #根据不同的代码拉取时间,支撑团队返回的报告存放在不同的目录下
   │  ├─ dc_report            #DC综合报告
   │  └─ vcs_report           #VCS仿真报告
   └─ state                   #当前提交测试状态

report

SoC和后端团队的report返回后,同学需要按照以下步骤确认报告内容及对代码做出相应的修改。

一、确认功能正确性

  • 阅读VCS报告 report/ysyx_学号/2024-3-xx...xx:xx:xx/vcs_report,确认编译结果是否有错误,确认VCS流程是否存在 fail。如果VCS程序未通过,则首先需要修改代码以确保功能正确,确认控制信号寄存器是否已做初始化。

二、消除DC综合报告Warning/Error

  • 阅读DC综合报告 report/ysyx_学号/2024-3-xx...xx:xx:xx/dc_reportRUN LOG 部分,关注报告中的Warning和Error。清除所有的Warning和Error,根据Warning的提示相应地去修改代码,对于无法清除的Warning,需要填写该仓库下的syn_warning.md,发给各自的组长,由组长反馈给支撑团队。

注意:必须要修改代码清除掉的Warning/Error类型为LINT-3、LINT-38、LINT-59、LINT-60、LINT-X4和LINT-58

三、确认综合后面积是否在约束范围内

同学需要确保设计综合后的 Total cell area 在约束范围内,整个SoC面积应不超过 2.0平方毫米,其中共享SRAM的大小约为 0.4平方毫米所以同学们自己核的面积应不超过1.6平方毫米

注意:以上面积约束大小需要根据最终综合后结果确定。

  • 阅读DC综合报告 report/ysyx_学号/2024-3-xx...xx:xx:xx/dc_reportAREA REPORT 部分,确认 Total cell area 是否满足约束范围内。
    • 如做了五级流水线的设计 Total cell area 超过了约束范围,请对设计进行优化,将面积优化到约束范围内。
    • 如果做了乱序多发射的设计 Total cell area 超过了约束范围,请分析报告,找出面积较大的模块,说明面积过大的原因,编写说明文档area_warning.md,没有具体格式要求,按要求说明原因即可,编写完成后发给各自的组长,再由组长反馈给支撑团队进一步评估,如果支撑团队评估后觉得不合适,则需要请设计人员进一步简化设计。

四、确认频率

支撑团队提供 100MHz 约束基准的DC综合流程。这里采用100MHz频率综合是为了给后端设计修时序留余量,设了0.35的过约比,实际的频率会比100M高,时序约束条件更为严格。

注意:通过100MHz的时序约束是满足流片要求的最低要求,目前CICD已经提供返回更高频率dc报告的功能,学有余力的同学可以自己尝试依据报告优化时序。

例如: 1633343064(1)

在100MHz频率下,图中标记的data required time应该接近10ns,可以看到实际的data required time只有6.2189ns,约束更为严格。

  • 阅读DC综合报告 report/ysyx_学号/2024-3-xx...xx:xx:xx/dc_reportSTATISTICS REPORT 部分,查看DC综合流程在100MHz频率下是否 PASS。时序通过的标志为: wns >= 0tns >= 0
#========================================================================
# Timing
#========================================================================
group      org_freq  over_freq  wns    tns    num
CLK_clock  100.0     153.8      0.000  0.000  0 

注意:由于存在DC license的问题,支撑团队无法提供DC工具的使用,工程师人力及资源不足,无法提供一对一优化。因此,支撑团队只保证芯片的正确性,不辅助优化设计,有意愿追求高性能的同学可以自行优化,例如:参考开源EDA工具yosys。如果核的设计足够好,回片后是可以进行调频的。

100MHz频率未通过或想要做优化的同学,可以关注报告中以下部分的关键时序路径。

  • 阅读DC综合报告 report/ysyx_学号/2024-3-xx...xx:xx:xx/dc_reportTIME REPORT 部分,报告中列出5条最长路径供参考,关于时序报告的格式可自行参考相关资料,例如:Vivado的时序报告。

代码拉取时间

支撑团队提供的CICD流程,每隔3分钟 都会拉取一次代码。每次拉取代码后,报告返回时间不是确定的。当次拉取的所有代码在跑完DC&VCS流程后,会将当次拉取的所有代码的报告会按照学号划分返回到github仓库ysyx_submit/report目录下。

代码提交截止日期

  • 2024年4月1日之后不允许修改代码。

空文件

简介

代码和功能的测试仓库 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/oscc-soc/ysyx_ci_result.git
git@gitee.com:oscc-soc/ysyx_ci_result.git
oscc-soc
ysyx_ci_result
ysyx_ci_result
test

搜索帮助