随笔分类 - RISCV
RISC, RISCV, RISC-V
摘要:https://mp.weixin.qq.com/s/uy1U107isVojezdcyvhH9Q 简单介绍FPU相关的代码概要。目前主要处理较高层次上的模块关系,暂时不涉及具体模块逻辑的实现。 1. FPUParams/FPConstants 定义FPU相关的参数和常量: 暂时不涉及具体参数的含义
阅读全文
摘要:https://mp.weixin.qq.com/s/VbidBjB6QsaQG-KWRIM8zQ 简单介绍CustomCSRs的实现。 1. CustomCSR CustomCSR定义自定义CSR寄存器的信息。 1) case class 用于封装自定义CSR寄存器的信息: 其中: a. id:C
阅读全文
摘要:https://mp.weixin.qq.com/s/1TdXhC7UvPUX4An1R9QZ8g 简单介绍BusErrorUnit的实现。 1. BusErrors BusErrors定义了一个抽象的toErrorList方法,用于返回错误列表: 其中: a. toErrorList方法的返回值是
阅读全文
摘要:https://mp.weixin.qq.com/s/-PlVHWPPTCG5mMz_jEAd6g 简单介绍Core的实现。 1. XLen XLen定义了总线宽度: 其值在BaseSubsystemConfig中定义为64: 2. CoreParams CoreParams定义了核心的一系列参数:
阅读全文
摘要:https://mp.weixin.qq.com/s/5J74euYsxkjlS1QSWU6_Ow 简单介绍BaseTile的实现。 1. Keys 定义了一组配置的Key: 其中: a. SharedMemoryTLEdge:从实现上看,是系统总线的第一条连接边: b. TileKey:用于定义T
阅读全文
摘要:https://mp.weixin.qq.com/s/THo5Mw0099ummLsbXjLutw 简单介绍RocketSubsystem的实现。 1. Params 定义Rocket tile相关的master port/slave port/crossing参数: 2. Keys 定义Rocke
阅读全文
摘要:https://mp.weixin.qq.com/s/8W2CSwMqjJxZ-jCy2uR0Vg 简单介绍HasTiles的实现。 1. ClockedTileInputs 包含时钟输入的tile inputs: tile inputs指如下两个输入输入端口: clocked则是指: 2. Has
阅读全文
摘要:https://mp.weixin.qq.com/s/pJXXSBvj2hQSICGlNvuUwQ 简单介绍Ports的实现。 1. Port Params 定义外部端口的大小和宽度参数: 其中: a. MasterPortParams:作为主端口的参数; b. SlavePortParams:作为
阅读全文
摘要:https://mp.weixin.qq.com/s/RIW_YxjsrGtU07xtUDEYpA 简单介绍BaseSubsystem的实现。 1. 各种Key 定义了高层次模块使用配置Key: 其中: a. SystemBusKey:用于定义系统总线参数; b. FrontBusKey:用于定义前
阅读全文
摘要:https://mp.weixin.qq.com/s/03mqAmLiaA1JwOePR5IDyQ 简单介绍Configs的实现。 1. BaseSubsystemConfig BaseSubsystemConfig包含基本子系统的配置定义。 1) 核心参数 a. PgLevels:页表层次: b.
阅读全文
摘要:https://mp.weixin.qq.com/s/SiVDERb0ufx3wkASl4ayFw 简单介绍HasRTCModuleImp的实现。 1. outer outer是一个抽象成员: 这是一篇付费文章,请移步付费阅读全文,谢谢!文章链接:https://mp.weixin.qq.com/s
阅读全文
摘要:https://mp.weixin.qq.com/s/MkKnV42Lh9-yg53D3hg8XQ 简单介绍PeripheryBus的实现。 1. BusAtomics BusAtomics用于定义原子操作相关的参数: 其中: a. arithmetic:表示是否支持数学运算原子操作; b. buf
阅读全文
摘要:https://mp.weixin.qq.com/s/cTuVq9xnj1Rcb7hrANDmcg 简单介绍MemoryBus的实现。 1. CacheBlockBytes 用于定义和查找参数配置的key: 对应的参数为缓存块的大小(字节数)。 2. BroadcastParams Broadcas
阅读全文
摘要:https://mp.weixin.qq.com/s/M02OQk4u1yf27CnW7CvGjg 简单介绍InterruptBus的实现。 1. InterruptBusWrapper InterruptBusWrapper用于搜集内部和外部设备中断,然后注入PLIC: 1) int_bus in
阅读全文
摘要:https://mp.weixin.qq.com/s/yzTK0PhQ57G5W02g0tqt9A 简单介绍FrontBus的实现。 1. FrontBusParams FrontBusParams定义前端总线的参数: FrontBusParams继承自HasTLBusParams和HasBuilt
阅读全文
摘要:https://mp.weixin.qq.com/s/3-MfNJDCIgOBqUbf4fuerQ 简单介绍CrossingWrapper的实现。 1. CrossesToOnlyOneClockDomain CrossesToOnlyOneClockDomain用于实现跨域到其他总线类型的辅助方法
阅读全文
摘要:https://mp.weixin.qq.com/s/PylfNmJDRasTUj9fGp7gLQ 简单介绍bootrom目录中各个文件的实现。 1. Makefile 1) make过程 Makefile用于简化生成bootrom.img,只需要执行make命令即可: 主要过程为: a. 根据链接
阅读全文
摘要:https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式。 1. LazyModule LazyModule是一个泛化的模块概念,其中包含了代表模块与其他模块相连的节点(diplomacy
阅读全文
摘要:https://mp.weixin.qq.com/s/jSnhBzU5_ayQCg5fWAcx-g 简单介绍TLBusWrapper.to()的实现。主要介绍确定this{...}对应代码的过程。 1. CanHavePeripheryPLIC 在CanHavePeripheryPLIC中,调用了c
阅读全文
摘要:https://mp.weixin.qq.com/s/FR3yeLLBqy0n-fflw-ATgg 简单介绍TLPLIC的实现。 1. GatewayPLICIO PLIC是Platform-Level Interrupt Controller的缩写: GatewayPLICIO定义Gateway的
阅读全文

浙公网安备 33010602011771号