Chisel 函数式 examples 学习 Chisel 的高级用法,需要先了解 Scala 的函数式编程,这里记录一些 Chisel 的函数式用法。 Vector map zip case 12val tagCheckVec = Wire(Vec(wayAmount, Bool()))tagCheckVec := (tagData.map( _ === tag) zip valid(index)).map{case (t 2023-07-06
Cache设计 什么是 Cache Cache 是一种高速缓存,用于存储计算机处理器频繁访问的数据,以提高计算机的性能。 计算机需要从内存中读取数据,但内存的读取速度比处理器慢得多。因此,Cache 作为一个介于处理器和内存之间的高速缓存,可以存储处理器频繁访问的数据,以便更快地访问。 设计 Cache 模块 8KB, 两路组相连, 1 路 4KB, Cache 行大小 16B, 共 512 行, 采用 Tag 2023-05-21
CPU设计实战-AXI总线接口设计 在 CPU 设计中,访存在极大程度上限制着 CPU 的频率增加。读取数据和写入数据的时间往往是计算所占时间的三十倍以上。整个体系结构的研究过程其实就是在不断平衡 CPU 运行速度与访存速度的过程。正因如此,出现了许多体系结构方法,比如 Cache,总线,分支预测。 AXI 总线是被广泛使用的一种总线协议,它具有较强的可拓展性和可兼容性。同时它的复杂程度也比较高。可以说,在设计 CPU 的过程中,实 2023-04-21
配置Windows+vscode+chisel环境 本文将会介绍在Windows系统上,如何从零开始配置Chisel环境。Chisel是一个使用Scala构建的代码框架,它用于高层次硬件设计语言的硬件构建。本文主要介绍了在配置Chisel环境时的一些问题和解决方法。 2023-04-07 体系结构 > CPU
hexo的latex数学公式踩坑记 由于hexo自带的markdown渲染数学公式不支持多行公式\aligned的运用. 因此我最开始参考fluid的文档换了mathjax,结果发现pandoc不能很好的支持plantuml. 随后我又换了katex,katex既能很好的支持plantuml,也可以正常显示数学公式. 但是我一开始忘记在主题配置下指定公式引擎结果同时显示了两行公式,一行是原先的mathjax,一行是katex,这个地 2023-03-15
plantuml mindmap模板 在 vscode 中下载 plantuml 插件和 markdown 的一些杂七杂八的插件就可以用 plantuml 来写思维导图了。 123456789101112131415161718192021222324252627@startmindmap<style> node { FontName 微软雅黑 FontSize 17 LineThicknes 2023-03-14
《计算机体系结构:量化研究方法》笔记 读书《计算机体系结构:量化研究方法》。这份笔记的特点:只记下我觉得可能会在比赛/面试/项目中理解的理论和技巧。别的用到的时候再update一下。 这篇文章是完全的实用功利主义的文章,因此不可避免的会缺少一些原书中非常值得玩味的部分和知识,比如第一章中,我不关心成本/功耗/面积等参数,而在实际的处理器设计中,这三者有时比性能更重要。 处理器的性能分析 第一章中主要总结了处理器性能的各个指标以及其公式 2023-03-14
riscv异常处理 riscv 中断模式 riscv 有三种中断模式: M 模式 S 模式 时钟中断 CLINT 的计时器比较 mip.STIP 软件中断 CLINT 的寄存器 mip.SSIP 外部中断 PLIC 的中断线 PLIC 的中断线或 mip.SEIP CLINT 一种较为简单的设备: 寄存器 特征 mtime 可读可写,以恒定速率增加 mtimecmp 可 2023-03-06
命令行的艺术 linux的命令行是非常强大的工具。本篇旨在将学习中遇到的美丽的命令行分享出来。 文本处理 eg1 需求:输入文件inst.S,输出文件inst。 为了测试CPU的执行,我必须先得到一个二进制串,手写二进制是不显示的,因此我需要将riscv汇编指令映射为二进制串的过程。(应该没有人会手写二进制)。 1234add x1, x2, x3add x2, x2, x3add x3, x2, x3add 2022-09-24
从单周期处理器到流水线处理器 从单周期处理器到多周期处理器 单周期CPU在某一时间段内,只有少部分的部件在工作。为了增加CPU的工作效率,我们引入流水线。 从实现形式上来看,是将一段组合逻辑按照功能划分为若干阶段。各功能阶段的组合逻辑之间插入时序器件(通常是触发器),前一阶段的组合逻辑输出接入该器件的输入,该器件的输出接入后一阶段组合逻辑的输入。 如何划分流水线涉及的内容过多、过深、过细。这里我们直接采用经典的单发射五级流水线 2022-09-03 #从0开始的CPU设计