- 博客(31)
- 收藏
- 关注
原创 读书·计算机组成与设计:软硬件接口RISC-V版·第三章
总的来说,乘法就是移位和相加如果是2的幂级数乘法,直接移位即可我们乘法的地方不可避免,但是加法的地方我们可以尽量改善。
2024-03-16 17:53:11
1372
原创 读书·基于RISC-V和FPGA的嵌入式系统设计·第4章·补充
1软核处理器支持C extension 提高代码密度。由于嵌入式操作系统需要内存较大,FPGA内存不够,所以需要减少调用。软核处理器尽量降低对FPGA的资源消耗。在软核处理器中支持片外内存访问。CPI作为主频之后的考虑。FPGA嵌入式系统架构以冯氏架构为主。143.软核处理器以MCU为主。寄存器的读地址在取指阶段确定。写地址/数据在访问阶段确定。
2024-03-09 10:22:21
179
原创 学校课程:固体物理学--黄昆·CH1
我这么说:格子其实是将一个晶体的基本结构单元抽象出来,并用点来表示,主要目的是突出晶体的基本结构的排列方式和周期性;而格点是把格子的点拿出来并还原成原来的基本单元结构,基本结构上的点就是格点。--------------以上为单原子晶体--------------------布拉伐格子:一个代表晶体格子的抽象点,一堆布拉伐格子画出来表征一个晶体的排列周期性。不同晶体原子排列方式相同,但是间距大小不同,我们叫它晶体结构相同。晶体具有方向性,沿晶格的不同方向晶体性质不同。晶体中原子排列的具体方式。
2024-03-08 13:41:03
597
原创 读书·基于RISC-V和FPGA的嵌入式系统设计·第3章
通过将用户指令集和特权架构分开设计,可以确保应用程序与操作系统之间的接口规范是统一的,不受特权架构的影响。:由于ABI定义了应用程序与操作系统之间的标准接口规范,因此遵循ABI规范的应用程序可以在不同特权架构的处理器上运行,实现了代码的可移植性。:正交分割将用户指令和特权指令分开,使得应用程序无需直接访问特权级别的操作,从而屏蔽了底层特权架构的差异。综上所述,通过正交分割将用户指令集和特权架构分开设计,可以使得不同特权架构的处理器在应用二进制接口层面做到代码相互兼容,从而提高了软件的可移植性和互操作性。
2024-03-07 00:41:11
1593
原创 读书·基于RISC-V和FPGA的嵌入式系统设计·第二章
类库(library)是一种封装了一系列函数、方法或类的集合,用于特定领域的开发。FPGA可以采用双向同步SRAM接口,将自己映射到微处理器的内存空间里。由于文章篇幅过大,我只会记录下自己可能会忘记的部分知识,还请见谅。System C只是 C++的一套。
2024-03-06 21:15:27
701
原创 Learn C the hard way :一些简单问题处理
fputc(), putc() 和 putchar() 返回写入的字符,作为无符号 char 转换为 int,或者在出现错误时返回 EOF。putc()等同于fputc(),不同之处在于它可能被实现为一个宏,该宏对stream进行多次评估。fputs()将字符串s写入流,不包括字符串的结束符null byte ('\0')。puts() 和 fputs() 在成功时返回非负数,或者在出错时返回 EOF。写入标准输出流(通常是屏幕),成功时返回写入的字符,出错时返回。中,返回写入的字符或者出错时返回。
2024-03-04 13:24:12
430
原创 数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·中断模块设计
RISC-V SoC内核——中断 代码讲解 作者:小wang的IC自习室。RISCV——指令集spec阅读笔记——特权级 作者:KGback。这次翻译有点差错,后续会更新这个翻译,所以有错误的话还请不吝赐教。作者:liangkangnan。
2024-03-03 17:47:12
764
原创 数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·小型模块设计
本次解析模块内容:divctrlribregs(简单,看原作者解释即可)csr_regs(和regs长得同父同母)
2024-03-03 01:22:31
451
原创 数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·译码模块设计
主要解析有关Tiny-RISC处理器的译码部分,做处理器要稳扎稳打,直面困难,不然没有收获的,是一件“收获成本”较高的活儿,但是它的收获又很丰厚,作为本科生,努力学一下还是有必要的
2024-02-29 17:06:28
356
原创 数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·取指模块设计
作者:小汪的IC自习室本文主要记录一下上边文章中的一些重要片段,以及对一些可能存在的模糊片段进行解释关于该tiny-risc的程序转化过程:程序经编译器编译后生成二进制指令码,烧写程序即烧写程序对应的二进制指令码,烧写程序到硬件系统中后,这些二进制指令码就保存在系统的硬盘中。当你打开一个程序的时候,就把对应的指令码+数据加载到了内存里,其中指令部分被随后加载到了CPU的缓存里面,然后CPU根据程序计数器,即程序指针PC指向的缓存地址,把存储的指令从缓存取到指令寄存器里面保存,这里是;
2024-02-28 22:34:22
1172
原创 数字IC设计实战:逐步升级,Tiny—RISC CPU 设计·环境搭建
这次CPU设计是取自gitee上的一个作者的Tiny_RISC,相较于夏宇闻老师的书上的那个例子难度有所提升,也是用来简单了解RISC-V处理器设计的。RISC-V SoC软核代码笔记详解——前言 作者:小汪的IC自习室本人情况:Ubuntu 22.04(一生一芯时弄的虚拟机,顺带拿来做这个)软件安装均按照原作者建议:iverilogvvppythongtkwaveGNU工具链。
2024-02-28 17:29:24
1053
原创 SV数字验证学习--数据类型
和C相似:typedef下图中:枚举类型RGB的初始值是redverilog中替代enum的方法:参数化SV中的改动:用enum代替了之前的define,这里的enum为缺省类型下面我们用enum {wr , ld , stro} 例化了两种变量如果大括号里面后边俩没定义初始值,那就递增处理整型不能直接赋值给枚举类型枚举类型可以隐式地转化为整型,反之不成立下面第二个error:右边的state因为 + 1 而默认成了整型,但是左侧的state却是枚举类型选D。
2024-02-28 00:09:46
854
1
原创 数字IC设计项目实战:化简的RISC_CPU设计(续)
今天刚开学,于是晚点更新上一节做了一个简单的CPU,这次来设计外围电路进行验证测试------------------------正文分割线--------------------------------
2024-02-25 23:38:52
483
原创 数字IC设计项目实战:化简的RISC_CPU设计
本人使用的makefile文件代码如下:使用时一次生成 综合文件和仿真文件列表 以及 testbench列表 和 源代码列表 : make msg仿真可以用: make cmp综合暂时没有做模拟的话就是 make sim打开Verdi可以用 make verdi或者综合仿真打开Verdi一步到位: make all如果有很多需要改进的地方请尽管提,对我个人学习来说,外部反馈十分的宝贵和重要!
2024-02-25 20:08:08
2261
原创 RISC_CPU设计遇到的BUG记录(1)
查找 StackOverflow & eetop 无果(没有对口的)源文件里没有写endmodule。分析:module 内 嵌套module。1.TB文件书写导致错误。
2024-02-24 17:51:44
224
原创 数字IC设计:《手把手....》解读---章节7.3--取指设计
本文Ref:E203 蜂鸟 RISC-V处理器代码阅读笔记 之指令译码模块 e203_exu_decode.v 作者: thundersnark。
2024-02-20 19:34:59
392
原创 数字IC设计:《手把手....》解读---章节7.2--简化取指
为支持16位指令取出---低几位用来表示指令长度----方便顺序取指时快速译码长度----取到16位就可以判断是32还是16。RISC-V--对于jal--目标reg的index rd 等于 x1 reg 的值 或 x5 reg 的值--入栈。对于jalr--按照使用的寄存器值(rs1 和 rd)的不同--如图--link表示x1/x5的值。为提高代码密度---可选压缩指令子集---C----若支持,则有32+16混合情形。jal--子程序调用--结果存在jal的结果/链接寄存器中。
2024-02-20 17:21:12
312
原创 (终) SoC 设计实操--------AHB总线-续
Ref:AMBA总线协议(8)——AHB(六):分割传输AMBA总线协议(9)——AHB(七):终章这篇文章没什么好弄的,就是把文章给断了断句(原谅我这文盲的理解力.....),理解力强的大佬可以直接跳转了....(不过欢迎来批评 0_0)
2024-02-17 23:18:43
739
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人