给 GTKWave 添加 macOS 应用包
给 GTKWave 添加 macOS 应用包旧版本的 GTKWave 提供了一个 macOS 应用包,但是这个版本的 GTKWave 无法在新版本的 macOS 上运行,因此我基本上都是选择自己拉取源码编译的方式来使用 GTKWave。不过编译出的 GTKWave 只有命令行版本,没有 macOS App Bundle,我觉得这对于在 macOS 上安装 GTKWave 来说不太友好(虽然有 Homebrew Formula)。因此我决定给 GTKWave 添加 macOS 应用包,这样用户可以在应用文件夹中直接打开 GTKWave,也可以在 Launchpad 中直接打开 GTKWave,用户体验会更好。
刚好最近给一个用 zig 编写的终端模拟器 Ghostty 添加了 Homebrew Formula,这个终端模拟器在 macOS 下只能编译出 App Bundle,因此我大致明白了如何给应用添加 macOS 应用包,对如何给 GTKWave 添加 macOS 应用包也有了一些思路,那么这篇文章就是记录我给 GTKWave 添加 macOS App Bundle 的过程。
借鉴 ...
2024 年的流水账
2024 年的流水账2024 年马上就要过去了,这一年很忙碌、很充实,有很多收获,也有很多遗憾。
2023 年底,刚结束考研一战的我报名了深圳理工大学 “一生一芯” 训练营,最终成功被录取(虽说可能运气成分比较大吧)。于是,大四下学期的多数时间里,我都呆在深圳学习 “一生一芯”,也包括了完成毕业实习和毕业设计。虽然远离学校,也没有老师的具体指导,但是我最终也成功糊弄做出一个毕业设计,然后靠它毕业了(可能工作量真不低,但是单论设计还是挺幼稚的)。在深圳的这段时间,我认识了很多志同道合的朋友,大家每天都一起学习、一起讨论、一起吃饭,也有一起熬夜敲代码到凌晨四点然后被警告。虽然我们那一期的训练营早就已经结束了,但是我和好多同学到现在还保持着联系,真的很开心、也很庆幸能够来到 “一生一芯” 训练营并且认识大家。
同时也是在深圳的这个时期我开始了自己的 博客,记录了一些学习心得,在深理工训练营结营汇报时做的一份关于 chisel 的 slides 也放在了我的博客网站上:slides/chisel。没想到的是:后面遇到的一些加我微信的同学,他们第一句话都是 “我看过你的博客”,甚至有同学在搜索引 ...
Arch Linux 安装 VMware
记录一下 Arch Linux 安装 VMware 过程以及需要打的一些补丁包
Arch Linux 安装 VMware安装 vmware workstationAUR 仓库上已经有打包好的 vmware workstation 包,可以直接通过 yay 进行安装:
123sudo pacman -S fuse2 gtkmm linux-headers pcsclite libcanberra # 安装相关依赖yay -S --noconfirm --needed ncurses5-compat-libs # 安装 ncurses5-compat-libs 依赖yay -S vmware-workstation # 安装 vmware
这样子安装后的版本为 17.5.2-3,然后我们要启动相关的系统服务:
1234# vmware-networks.service 用于访客网络访问# vmware-usbarbitrator.service 用于将 USB 设备连接到访客sudo systemctl enable vmware-networks.service vmware-us ...
免域名 Tailscale DERP 中继节点搭建
简单记录一下使用阿里云服务器搭建 Tailscale 免域名 DERP 中继节点的过程
免域名 Tailscale DERP 中继节点搭建因为局域网内的设备无法直接访问到公网,所以需要一些代理服务工具来完成设备间的互联。Tailscale 是一款基于 WireGuard 的异地组网工具,它可以将不同网络环境的设备组成一个虚拟局域网,使其可以互相访问。
Tailscale 官方提供了一些中继节点,但是这些节点大多位于国外,延迟不是很理想,我使用 tailscale netcheck 命令进行 derp 的延迟检查,结果如下:
可以看到,官方提供的这些 derp 服务器延迟都比较大,而我使用刚好有一台阿里云国内服务器,所以便想用这台服务器搭建一台中继节点。
安装 Go安装下载依赖:
1apt install -y wget git openssl curl
然后去 Go 语言的 官网 下载对应版本即可
尽量选择最新的 Go 版本, 否则可能会导致无法编译后续的 tailscale derper 模块
安装 Tailscale derper拉取 derper 工程:
1go inst ...
在 macOS 上搭建 ysyx 开发环境
在 macOS 上搭建 ysyx 开发环境
ysyxSoC Chisel 开发环境配置
最近一生一芯做到了接 SoC 的部分,发现还是需要重新配置一下 mill 的配置文件才能使用 IDEA 的高亮和代码跳转,因此记录一下配置过程。
ysyxSoC Chisel 开发环境配置如果是在 2024 年 4 月 21 号后获取的代码,请直接跳到 新版本 ysyxSoC 代码导入章节!
代码导读ysyxSoC 的代码可以通过下面的命令进行获取:
12cd ysyx-workbenchgit clone [email protected]:OSCPU/ysyxSoC.git
ysyxSoC 的代码结构如下:
123456789101112131415161718ysyxSoC├── Makefile├── chiplink # chiplink 相关代码├── generated # 生成的 SoC 代码│ ├── ysyxSoCFull-ChipLink.v│ └── ysyxSoCFull.v├── lint # verilator lint 检查│ ├── Makefile│ ├ ...
Chisel 环境搭建
Chisel 环境搭建
新手在最开始接触 Chisel 时可能会遇到各种各样的问题,例如怎么构建 Chisel、怎么生成 verilog,网上可能会有一些教程介绍了如何上手 Chisel,但是由于这些年 Chisel 的不断升级迭代,这些教程中提到的一些方法可能已经过时(例如 Chisel 更改了生成 Verilog 的 api、编译器从 SFC 换成了 MLIR),因此本文会记录一些我在搭建 Chisel 开发环境时遇到的坑和注意点。
但是我也还是无法保证本文提供的方法能和未来的 Chisel 兼容 (Chisel 更新的越来越快了 qwq)。此外,由于我在 Linux 上进行开发,因此本文只介绍 Linux 上的配置方法(如有在 Windows 上开发的需求,请自行搜索)。
什么是 Chisel?Chisel(Constructing Hardware In a Scala Embedded Language)是 UC Berkeley 开发的一种开源硬件构造语言。它是建构在 Scala 语言之上的领域专用语言(DSL),支持高度参数化的硬件生成器。Chisel 将硬件构造原语 ...
配置 GEM5
配置 GEM5TODO
上手使用 GEM5
GEM5 是一个开源计算机架构模拟器,包括系统级架构以及处理器微架构。GEM5 的前身为密歇根大学的 m5 项目与威斯康星大学的 GEMS 项目。2011 年 m5 与 GEMS 合并为 Gem5,目前被广泛用于学术界和工业界。通过谷歌学术可以看到,Gem5 目前被引用超过 5000 次,大量论文采用 Gem5 作为研究工具。同时也被许多工业界公司使用,包括 ARM、AMD、Google、Micron、Metempsy、HP、Samsung 等。
上手 GEM5Gem5 主要由 C++ 和 python 编写的。其中 C++ 占绝大多数,主要负责底层架构的具体实现等,Python 则负责对象的初始化、配置和模拟控制等。另外包含了两个领域特定语言 DSL,其中 ISADSL 负责统一二进制指令的解码和语义规范,SLICC 用于实现缓存一致性协议。
安装 GEM5First Step
获取源码 1git clone https://github.com/gem5/gem5
安装依赖
推荐在 ubuntu 环境下进行构建(或者在 docker 中进行)
我也尝试过在 arch 或是 ...
GEM5 运行 spec 测试
GEM5 运行 spec 测试TODO