Chisel 速成笔记:30 分钟掌握硬件构建基础 这针对拥有基础 Scala 知识但对 Chisel 完全零基础的入门教程。Chisel(Constructing Hardware In a Scala Embedded Language)是一个基于 Scala 的硬件描述语言,用于设计数字电路。这个教程从环境设置开始,逐步介绍 Chisel 的基本概念和实际应用。 目录 Chisel 简介 环境设置 基本概念 模块(Module) IO 2024-09-18 Digital Design #Chisel #Scala #digital design
Scala 速成笔记:面向 Chisel 的语法基础 0. 前言要想 30 分钟速成,必须要有面向对象的经验,不然可能得花一个小时来适应。这个教程将涵盖以下内容: 变量(Variables) 函数(Functions) 类(Classes) 继承(Inheritance) 方法(Methods) 对象(Objects) 伴生对象(Companion Objects) 特质(Traits) 每个部分都会包含简要的解释和示例代码,帮助你快速掌握 S 2024-09-18 Programming Languages #Chisel #Scala #language basics
C 语言关键字解析:static 与 inline static、inline1. static 关键字 作用:限制函数的作用域仅限于定义它的源文件(即内部链接)。这意味着每个包含该头文件的源文件都会生成该函数的一个独立实例,避免了多个定义导致的链接错误。 在头文件中使用:适用于小型、频繁调用的函数,允许每个源文件拥有自己的函数副本,避免链接器的重复定义错误。 2. inline 关键字 作用:建议编译器将函数调用替换为函数体本身,以减少函数 2024-09-17 Programming Languages #C #static #inline
调用 glibc 的技巧:从裸机运行时到链接细节 一、一个问题1234native 的 IOE 是基于 SDL 库实现的, 这些库很有可能会调用 glibc 的库函数, 例如 malloc()和 free(). 但我们自己实现的 klib 通常不能完美地符合 glibc 的标准, 因此直觉上看, 如果定义了__NATIVE_USE_KLIB__, 很可能会导致SDL库产生不正确的行为.不过会发现, 即使定义了__NATIVE_USE_KLIB 2024-09-12 Systems Programming #ysyx #glibc #linking
NEMU 框架细节研究(二):riscv32-nemu 构建链路 一、前言前文细致地研究了命令 make ARCH=native ALL=add run 的运行过程,对于Makefile中的行为有了很准确地把握(几乎没有疑点,可以随意修改 Makefile 且保证不会出错)。这篇文章继续研究命令make ARCH=riscv32-nemu ALL=add run的行为。 二、riscv32-nemu 开始的地方由于 ARCH=riscv32-nemu,因此 2024-09-12 Computer Architecture #NEMU #RISC-V #build system
Ubuntu 22.04 开发环境配置:SSH、Git 与常用工具 前言这里记录一下配置Ubuntu22.04的过程,主要实现了: ssh 远程免密访问 配置 git & github 内网穿透远程 ssh 访问 v2ray、v2raya(虽然最后采用了其它的网络加速方案,但也是可行的) zsh 美化 远程桌面访问(目前只能在同一局域网下,内网穿透失效) 换软件源 开机启动脚本 hexo & npm ssh 远程免密访问因为这台电脑的角色是 2024-09-10 Tooling #Ubuntu #SSH #development environment
NEMU 框架细节研究(一):native 构建入口 一、前言现在做到了 PA2.3后面,遇到的问题有点多,感觉总在棉花上踩。遇到了一个 bug 迟迟无法解决:用 native 且没有定义 __NATIVE_USE_KLIB__ 跑 Bad Apples 会失败,但是用 nemu 跑竟然会成功。这说明我的 klib 比 glibc 还完备吗?看了两个小时,也没看出什么。思考良久,感觉还是对项目构建过程缺乏细节上的了解,这成了学习进度上的瓶颈。于是 2024-09-07 Computer Architecture #ysyx #NEMU #build system
大二下学期总结:课程学习与下一阶段计划 〇、前言为什么这一年还没结束,就要总结一些事情呢?因为今天是大三开学的第一天,也是今天我今天来学校的第一天。这里讲一个小故事,今天下午 4 点 30 我准时来到学校,也就意味着我没有参与上午的课。尽管这样,我心中还是很窃喜。我原本打算昨天来到学校,这样我就能参与今天的课。但是昨天的温度很高,我上午看了一下天气预报,实时温度是 39 度。但是我认为绝对不仅仅是 39 度,真实室外温度可能超过 4 2024-08-26 Personal #semester summary #reflection
NEMU 与 AbstractMachine 项目构建:Makefile 主线解析 nemu首先研究 nemu 的构建方式。 直接看 nemu 的 Makefile(~/ysyx-workbench/nemu/Makefile): 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 2024-08-23 Computer Architecture #NEMU #AbstractMachine #build system