tfpwl_lj的个人空间 http://blog.eetop.cn/1638430 [收藏] [复制] [分享] [RSS]

日志

RISCV 西数SweRV-EH2 IP 使用总结

热度 11已有 1115 次阅读2021-8-23 11:00 |系统分类:芯片设计| RISCV

SweRV-EH2 IP 使用总结

Source: https://github.com/chipsalliance/Cores-SweRV-EH2

1.配置篇

1.1 熟悉swerv.config 文件中配置选项的含义

   与FW开发人员,验证人员等共同决定各配置选项参数。

   注意:

   a,以下选项

        {inst,data}_access_enable[0-7] : default 0

        {inst,data}_access_addr[0-7] : default 0x00000000

        {inst,data}_access_mask[0-7] : default 0xffffffff

配置了也不起作用,都是默认状态。

 

b,没有配置线程的选项,但可以在生成的文件中修改来达到双线程效果。

 

2.FW篇

2.1 根据IP 路径下 tools/Makefile 文件熟悉如何生成hex代码文件

注意cmark_iccm.ld 链接器文件,用于划分代码,数据的memory分布区域。

 

2.2 配置中断向量表,后续调试过程都会触发异常/中断。

 

2.3 熟悉常见的异常和中断,便于后期调试。

 

2.4 仿真用(前),采用通用的printf基础函数库,设定打印内容指向的硬件地址,便于后续将打印信息打印到terminal控制台里。

 

2.5 FPGA调试用,实现UART的相关代码,便于后期上FPGA调试时,将printf的信息打印到PC里。

 

3.验证篇

3.1. 验证人员需将FW hex代码通过backdoor的方式注入到cpu内部的ICCM,DCCM。须熟悉ICCM,DCCM的底层memory结构,bank数量及分布,才能正确写入hex可执行代码。

 

3.2 仿真用(后),printf在硬件端的实现,验证人员在与FW人员约定的硬件地址(比如DCCM最后一个地址)里取出printf打印出的ASCII 码,并用$write函数打印到terminal终端里,方便debug。

 

3.3调试常规流程,查看ifu,lbu等总线是否有异常;查看trace_*等信号,熟悉常见的异常和中断,前期调试,多会出现异常和中断。

4.warning&error

4.1 读取ICCM的数据,CPU将通过lsu总线来读取,如需要此功能,可将lsu总线通过AXI bridge接到CPU的DMA接口上。

4.2

Warning-[ENUMASSIGN] Illegal assignment to enum variable

eh2/ifu/eh2_ifu_mem_ctl.sv, 560

" rvdff #(($bits(eh2_err_stop_state_t) * 6'b1)) icache_ecc_1.err_stop_stateff( .clk (active_clk),  .din (err_stop_state_thr),  .dout (err_stop_state_thr_ff),  .rst_l (rst_l));"

  Only expressions of the enum type can be assigned to an enum variable.

  The type logic [(WIDTH - 1):0] is incompatible with the enum

  'eh2_err_stop_state_t'

  Expression: dout

  Use the static cast operator to convert the expression to enum type.

 

resolved:

typedef logic [$bits(eh2_err_stop_state_t)-1:0] eh2_err_stop_state_t_bits;//eh2_def.sv 33 line

eh2_err_stop_state_t_bits err_stop_state; //eh2_ifu_mem_ctl.sv 457 line

eh2_err_stop_state_t_bits [pt.NUM_THREADS-1:0]                              err_stop_state_thr;//eh2_ifu_mem_ctl.sv 406 line

eh2_err_stop_state_t_bits [pt.NUM_THREADS-1:0]                              err_stop_state_thr_ff;//eh2_ifu_mem_ctl.sv 407 line

 

4.3. all $error

Error-[EEST] $error elaboration system task

  msg: 

  location: file

eh2/lib/beh_lib.sv

  line 561

  path: rvdffiee

 

resolved: add "initial" in line 561

 

4.4 无法识别eh2_param.vh中的语法

解决办法:替换 pt 结构体,将”pt.”替换成”pt_”, “:”替换成“=”,主要思路是将struct类型的对象换成普通的parameter定义,其他细节也需要处理。此外,相应的其他.sv文件的“pt.”也要批量替换成“pt_”

 

4.5. eh2_mem.sv undriver 各种undriver

line:115

   assign btb_sram_pkt.wayhit_f1='0;

   assign btb_sram_pkt.wayhit_p1_f1='0;

   assign btb_sram_pkt.tag_match_way0_f1='0;

   assign btb_sram_pkt.tag_match_way0_p1_f1='0;

   assign btb_sram_pkt.tag_match_vway1_expanded_f1='0;

   assign btb_vbank0_rd_data_f1='0;

   assign btb_vbank1_rd_data_f1='0;

   assign btb_vbank2_rd_data_f1='0;

   assign btb_vbank3_rd_data_f1='0;

 

4.6. bus_rsp_valid_q, bus_rsp_ready_q, bus_rsp_write_q, bus_rsp_error_q;bus_rsp_rdata_q 各类无驱动warning, 不要处理。由于它采用了隐式接口,所以会报,实际上是有连接的。

eh2_lsu_bus_intf.sv line:245

 

4.7 spyglass 会无法识别SV语法,需要使用VC_Static工具。

   使用VC_Static工具得到的report需要分析,会有很多undriver的情况。不影响使用,就暂时不要处理。

4.8 有问题可以去github上问开发者。

 

附录:

NIC400 IP(BUS bridge IP) user guide

#/bin/tcsh

#/tools/arm/AMBADesigner_r3p9/ADCL/doc/

source /tools/arm/AMBADesigner_r3p9/etc/setup.csh

source /tools/arm/AMBADesigner_r3p9/AMBADesigner/etc/setup.csh

source /tools/arm/ad_3p_tools/perl_5_8_8/linux//etc/setup.csh

source /tools/arm/ad_3p_tools/tcl_8_4_13/linux//etc/setup.csh

source /tools/arm/ad_3p_tools/python_2_4_3/linux//etc/setup.csh

source /tools/arm/ad_3p_tools/xalan_1_8_0/linux//etc/setup.csh

source /tools/arm/ad_3p_tools/xercesc_2_5_0/linux//etc/setup.csh

source /tools/arm/AMBADesigner_r3p9/etc/setup.csh

adcanvas&

发表评论 评论 (1 个评论)

回复 mlgbb 2021-9-7 20:18
谢谢分享,很实用!

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2021-9-29 10:52 , Processed in 0.033671 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部