# jiegec 的项目

受 [wangrunji0408/UndergraduateProjects](<https://github.com/wangrunji0408/UndergraduateProjects>) 启发，我也来总结一下。

> Q：时间都去哪儿了？
>
> A：刚刚睡醒 什么事

## 目录

### 计算机系课程及相关作业

| 时间 | 课程 | 项目 |
| --- | --- | --- |
| 2017.10 | 离散数学 | [Props](<#props>) |
| 2017.11 | 程序设计基础 | [SimpleExtFs](<#simpleextfs>) |
| 2018.05 | 面向对象程序设计基础 | [OnePassSynthesisDMFB](<#onepasssynthesisdmfb>)，[NaiveLedger](<#naiveledger>) |
| 2018.06 | 概率论与数理统计 | [HLLeBPF](<#hllebpf>) |
| 2018.07 | 程序设计小学期 | [DMCD](<#dmcd>)，[ChineseChess](<#chinesechess>)，[SearchEngine](<#searchengine>) |
| 2018.11 | 软件工程 | [Info9](<#info9>) |
| 2019.02 | 操作系统 | [rCore](<#rcore>) |
| 2019.04 | 人工智能导论 | [Pinyin](<#pinyin>)，[FourChess](<#fourchess>)，[EmotionClassifier](<#emotionclassifier>) |
| 2019.04 | 存储技术基础 | [KVEngine](<#kvengine>)，[HERMES](<#hermes>) |
| 2019.05 | 多媒体技术基础 | [RBSplit](<#rbsplit>)，[MultimediaCompression](<#multimediacompression>)，[MultimediaSound](<#multimediasound>)，[MultimediaAnalysis](<#multimediaanalysis>) |
| 2019.06 | 数字逻辑设计 | [NaiveRouter](<#naiverouter>)，[router](<#router>)，[router\_mb](<#router_mb>)，[router\_ksz8795](<#router_ksz8795>)，[rgmiimux](<#rgmiimux>) |
| 2019.06 | 计算机网络原理 | [Router-Lab](<#router-lab>) |
| 2019.07 | 专业实践 | [GuGuMIPS](<#gugumips>)，[GuGuMIPSSoC](<#gugumipssoc>)，[linux-gugumips](<#linux-gugumips>)，[u-boot-gugumips](<#u-boot-gugumips>)，[ucore-gugumips](<#ucore-gugumips>)，[usbh](<#usbh>) |
| 2019.08 | Java 程序设计与训练 | [JabaHomework](<#jabahomework>)，[NewsApp](<#newsapp>) |
| 2019.08 | 汇编语言程序设计 | [asm-homework](<#asm-homework>) |
| 2019.09 | 计算机网络安全技术 | [sdes-visualization](<#sdes-visualization>) |
| 2019.10 | 计算机组成原理 | [booth-visualization](<#booth-visualization>)，[integer-divide-visualization](<#integer-divide-visualization>)，[rocket2thinpad](<#rocket2thinpad>) |
| 2019.10 | 编译原理 | [online\_tac\_vm](<#online_tac_vm>)，[online\_decaf](<#online_decaf>)，[gll-pg](<#gll-pg>)，[decaf-lsp](<#decaf-lsp>)，[decaf-rs-pa](<#decaf-rs-pa>) |
| 2020.01 | 信号处理原理 | [SignalProcessing](<#signalprocessing>) |
| 2020.03 | 软件分析与验证 | [dpll](<#dpll>) |
| 2020.04 | 计算机系统结构 | [cache](<#cache>)，[tomasulo](<#tomasulo>) |
| 2020.04 | 现代密码学 | [crypto](<#crypto>)，[miller-rabin](<#miller-rabin>) |
| 2020.05 | 网络编程技术 | [file-server](<#file-server>) |
| 2021.10 | 高等计算机系统结构 | [cache-advanced](<#cache-advanced>) |
| 2021.10 | 高性能计算实验 | [sgemm-optimize](<#sgemm-optimize>) |

### 参加比赛的项目

| 时间 | 比赛 | 项目 |
| --- | --- | --- |
| 2018.09 | THUCTF2018 | [ctf-writeups](<#ctf-writeups>) |
| 2019.07 | 龙芯杯 | [GuGuMIPS](<#gugumips>)，[GuGuMIPSSoC](<#gugumipssoc>)，[linux-gugumips](<#linux-gugumips>)，[u-boot-gugumips](<#u-boot-gugumips>)，[ucore-gugumips](<#ucore-gugumips>)，[usbh](<#usbh>)，[nontrivial-mips](<#nontrivial-mips>)，[linux-nontrivial-mips](<#linux-nontrivial-mips>)，[u-boot-nontrivial-mips](<#u-boot-nontrivial-mips>) |
| 2020.08 | 华为杯 | [trivialcompiler](<#trivialcompiler>) |
| 2020.06 | ISC20 SCC | [Elmerfem](<#elmerfem>) |
| 2020.11 | SC20 VSCC | [MemXCT](<#memxct>)，[miniVite](<#minivite>) |
| 2021.05 | ASC20-21 SCC | [PRESTO](<#presto>)，[HPL](<#hpl>) |
| 2021.07 | ISC21 SCC | [Coding Challenge](<#codingchallenge>)，[HPL](<#hpl>) |

### 个人参与或编写的项目

| 时间 | 内容 | 项目 |
| --- | --- | --- |
| 2016.03 | MacGesture macOS 上的手势软件 | [MacGesture](<#macgesture>) |
| 2017.10 | clone-learn-tsinghua 清华网络学堂的备份工具 | [clone-learn-tsinghua](<#clone-learn-tsinghua>) |
| 2018.02 | cs140e Stanford CS140e 实验课程 | [CS140e](<#cs140e>) |
| 2018.04 | screenmux 多客户端远程桌面管理 | [screenmux](<#screenmux>) |
| 2019.02 | rustup-mirror Rustup 镜像工具 | [rustup-mirror](<#rustup-mirror>) |
| 2019.02 | thuip 从 BGP 信息中导出清华 IP 地址段 | [thuip](<#thuip>) |
| 2019.02 | tantivy-jieba 把结巴分词用于 Tantivy | [tantivy-jieba](<#tantivy-jieba>) |
| 2019.07 | classroom-helper GitHub Classroom 辅助 TUI | [classroom-helper](<#classroom-helper>) |
| 2019.09 | verilog-format Verilog/SystemVerilog 格式化 | [verilog-format](<#verilog-format>) |
| 2019.10 | decode-bcbp 在线解码机票 BCBP 信息 | [decode-bcbp](<#decode-bcbp>) |
| 2019.11 | libwavelib-sys Rust 的 libwavelib binding | [libwavelib-sys](<#libwavelib-sys>) |
| 2020.02 | JieLabs 数字逻辑实验平台 | [JieLabs](<#jielabs>) |
| 2020.02 | verilog-lang 递归下降的 Verilog Parser | [verilog-lang](<#verilog-lang>) |
| 2020.02 | maze-routing Rust 语言实现的 Grid Router 算法 | [maze-routing](<#maze-routing>) |
| 2020.05 | webhookd 对 Gitlab/GitHub 的 webhook 进行响应 | [webhookd](<#webhookd>) |
| 2020.05 | usbip 用 Rust 实现的 USB/IP 服务端 | [usbip](<#usbip>) |
| 2020.06 | cluster-job-monitor 集群任务状态监测 | [cluster-job-monitor](<#cluster-job-monitor>) |
| 2020.07 | netconf-rs RFC2641 NETCONF 客户端库 | [netconf-rs](<#netconf-rs>) |
| 2020.08 | TANLabs 网络原理实验平台 | [TANLabs](<#tanlabs>) |
| 2020.09 | aws-static-website-cdk AWS CDK 部署静态网站 | [aws-static-website-cdk](<#aws-static-website-cdk>) |
| 2020.10 | ddns 跨平台 DDNS 客户端 | [ddns](<#ddns>) |
| 2020.11 | machine-tester 集群机器测试工具 | [machine-tester](<#machine-tester>) |
| 2020.12 | HT42B534 USB to UART 开源 PCB 设计 | [HT42B534USB2UART](<#ht42b534usb2uart>) |
| 2020.12 | jieplag 代码查重软件 | [jieplag](<#jieplag>) |
| 2021.01 | EspinalLib 使用 SpinalHDL 实现的 HDL 模块 | [EspinalLib](<#espinallib>) |
| 2021.02 | daccountd 分布式强一致 LDAP 服务器 | [daccountd](<#daccountd>) |
| 2021.02 | minipxe 用于 PXE 的迷你 DHCP+TFTP 服务器 | [minipxe](<#minipxe>) |
| 2021.02 | wechat-dump 从 iOS 备份中导出微信聊天记录 | [wechat-dump](<#wechat-dump>) |
| 2021.03 | WM8731PMOD 音频 PMOD 扩展板 | [WM8731PMOD](<#wm8731pmod>) |
| 2021.03 | YXPortal 实验用户管理系统 | [YXPortal](<#yxportal>) |
| 2021.07 | cpu-micro-benchmarks 针对 CPU 架构的微性能测试 | [cpu-micro-benchmarks](<#cpu-micro-benchmarks>) |
| 2021.07 | floating 浮点格式解析和转换小工具 | [floating](<#floating>) |
| 2021.09 | fpu-wrappers 浮点计算单元封装 | [fpu-wrappers](<#fpu-wrappers>) |
| 2021.09 | feishu-backup 飞书文档备份导出工具 | [feishu-backup](<#feishu-backup>) |
| 2021.09 | rocket-chip-vcu128 在 VCU128 开发板上运行 Rocket Chip | [rocket-chip-vcu128](<#rocket-chip-vcu128>) |
| 2021.09 | dcst-facts 记录清华大学计算机系客观数据 | [dcst-facts](<#dcst-facts>) |
| 2021.09 | zotero-dump-markdown 把 Zotero 的笔记导出为 Markdown 格式 | [zotero-dump-markdown](<#zotero-dump-markdown>) |
| 2021.10 | gitlab-cloner GitLab 项目批量克隆工具 | [gitlab-cloner](<#gitlab-cloner>) |
| 2021.12 | jtag-remote-server 远程 JTAG 调试工具 | [jtag-remote-server](<#jtag-remote-server>) |
| 2022.01 | video2srt 使用云服务生成视频的字幕 | [video2srt](<#video2srt>) |
| 2022.01 | rvv-kernels 使用 RISC-V 向量扩展实现算法 | [rvv-kernels](<#rvv-kernels>) |
| 2022.07 | ifupdown-to-systemd-networkd 将 ifupdown 配置转换为 systemd-networkd 配置 | [ifupdown-to-systemd-networkd](<#ifupdown-to-systemd-networkd>) |
| 2022.09 | kicad-symbol-gen KiCad 符号生成器 | [kicad-symbol-gen](<#kicad-symbol-gen>) |
| 2023.02 | china\_bean\_importers 将支付记录导入到 beancount | [china\_bean\_importers](<#china_bean_importers>) |
| 2023.04 | chisel-memory-lower 转换 chisel 内存为原语 | [chisel-memory-lower](<#chisel-memory-lower>) |
| 2023.04 | kb 个人知识库 | [kb](<#kb>) |
| 2023.04 | PMOD-SPI-NOR-FLASH 扩展 SPI NOR FLASH 的 PMOD 模块 | [PMOD-SPI-NOR-FLASH](<#pmod-spi-nor-flash>) |
| 2023.06 | dntt 批量导出交换机的配置文件 | [dntt](<#dntt>) |
| 2023.07 | markdown-to-zhihu-article 上传 Markdown 到知乎文章 | [markdown-to-zhihu-article](<#markdown-to-zhihu-article>) |
| 2023.08 | la-inst 研究 LoongArch 指令的工具 | [la-inst](<#la-inst>) |
| 2023.10 | fatbinary 操作 CUDA fatbinary 文件格式的 Rust 库 | [fatbinary](<#fatbinary>) |
| 2023.11 | data-link-protocols 网络原理数据链路层协议可视化 | [data-link-protocols](<#data-link-protocols>) |
| 2023.12 | unofficial-loongarch-intrinsics-guide 非官方 LoongArch Intrinsics 文档 | [unofficial-loongarch-intrinsics-guide](<#unofficial-loongarch-intrinsics-guide>) |
| 2023.12 | loongarch-csr 非官方 LoongArch CSR/IOCSR 文档 | [loongarch-csr](<#loongarch-csr>) |
| 2023.12 | buildit AOSC 构建自动化 | [buildit](<#buildit>) |
| 2023.12 | la\_ow\_ptrace 基于 PTrace 的在 LoongArch 新世界上运行旧世界程序的方案 | [la\_ow\_ptrace](<#la_ow_ptrace>) |
| 2024.02 | cold 玩具 ELF 链接器 | [cold](<#cold>) |
| 2024.04 | ps2 使用 Chisel 开发的 PS/2 控制器 | [ps2](<#ps2>) |
| 2024.07 | apple-pmu 导出苹果芯片的 PMU 计数器定义 | [apple-pmu](<#apple-pmu>) |
| 2024.08 | cpu CPU 微架构图示 | [cpu](<#cpu>) |
| 2024.09 | barcode EAN-13 条形码在线生成器 | [barcode](<#barcode>) |
| 2024.11 | NetworkToolsHarmony 鸿蒙上的基础网络工具 | [NetworkToolsHarmony](<#networktoolsharmony>) |
| 2024.12 | SPECCPU2017Harmony 把 SPEC CPU 2017 移植到 OpenHarmony/HarmonyOS NEXT | [SPECCPU2017Harmony](<#speccpu2017harmony>) |
| 2025.04 | cbp-experiments 在真实二进制上进行分支预测器实验 | [cbp-experiments](<#cbp-experiments>) |
| 2025.06 | Termony 鸿蒙电脑上的 Termux | [Termony](<#termony>) |
| 2025.06 | ohos-updatebin-unpacker 对 OpenHarmonyOS 的 update.bin 进行解包 | [ohos-updatebin-unpacker](<#ohos-updatebin-unpacker>) |
| 2025.09 | simple-frame-rs 解析 SFrame(Simple Frame) 格式的 Rust 库 | [simple-frame-rs](<#simple-frame-rs>) |
| 2025.12 | devdocs-mcp-server 查询 DevDocs 上各种文档的 MCP 服务器 | [devdocs-mcp-server](<#devdocs-mcp-server>) |
| 2025.12 | waveform-mcp 读取和查询波形文件的 MCP 服务器 | [waveform-mcp](<#waveform-mcp>) |

## 计算机系课程及相关作业

### Props

一个简单的对于命题的计算器。

- [GitHub](<https://github.com/jiegec/props>)
- 相关技术：C++，Flex，Bison
- 投入时间：很少
- 喜爱：5
- 收获：1

### SimpleExtFs

一个简单的内存文件系统，支持可持久化和一些简单的 shell 指令。

- [GitHub](<https://github.com/jiegec/extfs>)
- 相关技术：C，FS
- 投入时间：很少
- 喜爱：3
- 收获：1

### OnePassSynthesisDMFB

DMFB 是 Digital MicroFluidic Biochips 的缩写。需要实现一篇文章里的算法，生成 SAT 规则后丢给 z3 求解，再把结果可视化。

- [GitHub](<https://github.com/jiegec/OnePassSynthesisDMFB>)
- 相关技术：C++，Graphviz，Z3，SAT
- 投入时间：不多
- 喜爱：0
- 收获：2

### NaiveLedger

一个简单的 AlgoRand 实现。

- 合作同学：wjd jl lxy lwb
- GitHub 未公开
- 相关技术：C++，密码学
- 投入时间：一般
- 喜爱：1
- 收获：2

### HLLeBPF

把 HyperLogLog 用 eBPF 实现了，可以估计一段时间内访问本机的 IP 数量。

- [GitHub](<https://github.com/jiegec/hll_ebpf>)
- 相关技术：C，eBPF，HyperLogLog
- 投入时间：很少
- 喜爱：5
- 收获：3

### DMCD

DMCD 是 Digital Microfluidic Chip Designer 的缩写。同样实现一个算法，按照给定的网络解一堆方程，然后用 Qt 可视化。可以在 Qt 上进行参数的调整，也可以用一个简单的遗传算法去求解。

- [GitHub](<https://github.com/jiegec/codingterm/tree/master/Week1>)
- 相关技术：Qt，遗传算法
- 投入时间：不多
- 喜爱：0
- 收获：0

### ChineseChess

Qt 编写的中国象棋在线对战。

- [GitHub](<https://github.com/jiegec/codingterm/tree/master/Week2>)
- 相关技术：Qt，Socket
- 投入时间：不多
- 喜爱：2
- 收获：2

### SearchEngine

用 Python 编写爬虫，并实现简单的搜索引擎。

- [GitHub](<https://github.com/jiegec/codingterm/tree/master/Week3>)
- 相关技术：Python，Django，Web，Reverse Index，TF-IDF，ORM
- 投入时间：不多
- 喜爱：2
- 收获：2

### Info9

用 Vue.js 编写前端，Python Django 编写后端，实现一堆功能的网站。

- 合作同学：xlq wxp
- GitHub 未公开
- 相关技术：Vue，Python，Django，Web，MongoDB
- 投入时间：\>100h
- 喜爱：5
- 收获：10

### rCore

完善用 Rust 编写的操作系统。

- 合作同学：太多了
- [GitHub](<https://github.com/rcore-os/rCore>)
- 相关技术：Rust，操作系统，文件系统，网络
- 投入时间：\>200h
- 喜爱：10
- 收获：100

### Pinyin

用 Rust 实现的基于马尔可夫链的输入法。

- [GitHub](<https://github.com/jiegec/pinyin>)
- 相关技术：Rust，马尔可夫链
- 投入时间：不多
- 喜爱：1
- 收获：1

### FourChess

四字棋 AI，用 MCTS（UCT）实现。

- [GitHub](<https://github.com/jiegec/FourChess>)
- 相关技术：MCTS，UCT
- 投入时间：不多
- 喜爱：1
- 收获：2

### EmotionClassifier

用 CNN/RNN/MLP 实现一个分类任务。

- [GitHub](<https://github.com/jiegec/EmotionClassifier>)
- 相关技术：PyTorch
- 投入时间：不多
- 喜爱：0
- 收获：0

### KVEngine

实现一个简单的 KV 引擎，保证 Write Consistency 和 Crash Consistency。

- [GitHub](<https://github.com/jiegec/kv-engine>)
- 相关技术：C++，WAL
- 投入时间：不多
- 喜爱：3
- 收获：4

### HERMES

实现一个 FUSE 文件系统，背后采用 KV 来存储数据。

- 合作同学：csq gj lxy
- [GitHub](<https://github.com/Harry-Chen/HERMES>)
- 相关技术：C++，FUSE
- 投入时间：不多
- 喜爱：5
- 收获：5

### RbSplit

把图片的颜色拆开，然后错位后再拼在一起，变成一个新的图。

- [GitHub](<https://github.com/jiegec/rbsplit>)
- 相关技术：Python
- 投入时间：很少
- 喜爱：3
- 收获：1

### MultimediaCompression

第一部分是用不同的方法计算图片的 DCT，然后再逆回来对比图片质量。对比不同量化矩阵对于图片的质量的影响。第二部分是实现一个动作估计，从一系列图中捕捉一个物体的轨迹。

- [GitHub](<https://github.com/jiegec/MultimediaCompression>)
- 相关技术：Python
- 投入时间：不多
- 喜爱：5
- 收获：10

### MultimediaSound

用 MATLAB 的 STRAIGHT 工具箱进行声音的调整，例如男声-\>女生。然后用 Python 衡量声音之间的距离。

- [GitHub](<https://github.com/jiegec/MultimediaSound>)
- 相关技术：Python，MATLAB
- 投入时间：不多
- 喜爱：5
- 收获：5

### MultimediaAnalysis

计算每个图的颜色分布立方图，根据立方图来进行聚类计算。

- [GitHub](<https://github.com/jiegec/MultimediaAnalysis>)
- 相关技术：Python
- 投入时间：很少
- 喜爱：4
- 收获：4

### NaiveRouter

硬件转发的路由器 IP 实现，通过 AXI 与 CPU 交互。

- [GitHub](<https://github.com/jiegec/naiverouter>)
- 相关技术：SystemVerilog，网络，AXI
- 投入时间：较多
- 喜爱：10
- 收获：10

### router

在黑金 AX7021 开发板上的 SoC，采用了 NaiveRouter 进行硬件转发，在 PS 上实现 RIP 协议和路由信息的更新。另外还实现了 HDMI 的路由状态可视化。

- [GitHub](<https://github.com/jiegec/router>)
- 相关技术：Vivado
- 投入时间：较多
- 喜爱：10
- 收获：10

### router\_mb

同样在黑金 AX7021 开发板上的 SoC，也是采用 NaiveRouter 进行硬件转发，只不过把软件部分从 PS 移到了 MicroBlaze 中。

- [GitHub](<https://github.com/jiegec/router_mb>)
- 相关技术：Vivado
- 投入时间：不多
- 喜爱：8
- 收获：5

### router\_ksz8795

在 Pynq 外接 KSZ8795 扩展板上开发的 SoC，采用 MicroBlaze 运行代码，对 KSZ8795 芯片的编程和操作进行了验证。

- [GitHub](<https://github.com/jiegec/router_ksz8795>)
- 相关技术：Vivado
- 投入时间：不多
- 喜爱：8
- 收获：5

### rgmiimux

一个 RGMII“一分四”的 IP，通过 VLAN 进行区分，类似 KSZ8795 的部分功能，只不过是在 FPGA 内部实现。

- [GitHub](<https://github.com/jiegec/rgmiimux>)
- 相关技术：Vivado
- 投入时间：不多
- 喜爱：5
- 收获：3

### Router-Lab

2019 计算机网络原理课程的实验。

- [GitHub](<https://github.com/z4yx/Router-Lab>)
- 相关技术：Networking
- 投入时间：较多
- 喜爱：10
- 收获：5

### GuGuMIPS

自己编写的小端 MIPS32 实现，能够启动 Linux，自己编写的 Cache 处于未完成状态。

- [GitHub](<https://github.com/jiegec/GuGuMIPS>)
- 相关技术：SystemVerilog
- 投入时间：很多
- 喜爱：10
- 收获：10

### GuGuMIPSSoC

以 GuGuMIPS 为 CPU，在龙芯实验箱上运行的一个 SoC，支持网络，USB，LCD 等外设

- [GitHub](<https://github.com/jiegec/GuGuMIPSSoC>)
- 相关技术：Vivado
- 投入时间：很多
- 喜爱：10
- 收获：10

### linux-gugumips

为 GuGuMIPS 适配的 Linux 代码，从主线内核上直接 patch，可以随时更新到最新内核。大部分代码参考了 [z4yx/linux-kernel](<https://github.com/z4yx/linux-kernel>)

- [GitHub](<https://github.com/jiegec/linux-gugumips>)
- 相关技术：Linux Kernel
- 投入时间：不多
- 喜爱：5
- 收获：3

### u-boot-gugumips

为 GuGuMIPS 适配的 U-Boot 代码，从 U-Boot 主线上 fork 而来。大部分代码参考了 [z4yx/u-boot-naivemips](<https://github.com/z4yx/u-boot-naivemips>)

- [GitHub](<https://github.com/jiegec/u-boot-gugumips>)
- 相关技术：U-Boot
- 投入时间：不多
- 喜爱：5
- 收获：3

### ucore-gugumips

为 GuGuMIPS 适配的 uCore 代码，只在外设方面做了微小的改动。

- [GitHub](<https://github.com/jiegec/ucore-gugumips>)
- 相关技术：Kernel
- 投入时间：很少
- 喜爱：3
- 收获：1

### usbh

USB 2.0 FS 控制器，从 UltraEmbedded USB Host Controller 修改而来，并且打包为了 Vivado IP。对应的驱动在上面的 Linux 和 U-Boot 仓库中。

- [GitHub](<https://github.com/jiegec/usbh>)
- 相关技术：Hardware
- 投入时间：很多
- 喜爱：10
- 收获：10

### JabaHomework

Java OJ 上的作业外加考试。

- [GitHub](<https://github.com/jiegec/jaba-homework>)
- 相关技术：Java
- 投入时间：很少
- 喜爱：1
- 收获：1

### NewsApp

Java 大作业，一个简单的新闻 App。

- [GitHub](<https://github.com/qyz-thu/NewsApp>)
- 相关技术：Java，Android
- 投入时间：很少
- 喜爱：1
- 收获：1

### asm-homework

汇编小学期的作业，包括小作业和两次实验的代码。

- [GitHub](<https://github.com/jiegec/asm-homework>)
- 相关技术：汇编，x86，MIPS
- 投入时间：很少
- 喜爱：5
- 收获：1

### sdes-visualization

对 S-DES 加密过程的可视化。

- [GitHub](<https://github.com/jiegec/sdes-visualization>)
- 相关技术：Elm，CSS
- 投入时间：很少
- 喜爱：10
- 收获：3

### booth-visualization

对 Booth 乘法过程的可视化。

- [GitHub](<https://github.com/jiegec/booth-visualization>)
- 相关技术：Elm
- 投入时间：很少
- 喜爱：10
- 收获：3

### integer-divide-visualization

对整数除法过程的可视化，非课程要求。

- [GitHub](<https://github.com/jiegec/integer-divide-visualization>)
- 相关技术：Elm
- 投入时间：很少
- 喜爱：10
- 收获：3

### rocket2thinpad

把 Rocket Chip 运行在 Thinpad 上。

- [GitHub](<https://github.com/jiegec/rocket2thinpad>)
- 相关技术：Verilog，Vivado，Rocket Chip，Chisel，Scala
- 投入时间：不多
- 喜爱：10
- 收获：7

### online\_tac\_vm

在线的 TAC 虚拟机，可以在线执行编译原理 PA3 生成的 TAC。

- [GitHub](<https://github.com/jiegec/online_tac_vm>)
- 相关技术：Rust，Yew
- 投入时间：很少
- 喜爱：10
- 收获：3

### online\_decaf

在线的 Decaf 编译器，可以在线运行编译原理的 PA。

- [GitHub](<https://github.com/jiegec/online_decaf>)
- 相关技术：Rust，Yew
- 投入时间：很少
- 喜爱：10
- 收获：3

### gll-pg

一个 GLL 的 Parser Generator，参考了 MashPlant/lalr1 和 GLL 论文。

- [GitHub](<https://github.com/jiegec/gll-pg>)
- 相关技术：Rust，Proc macro，Parsing
- 投入时间：不多
- 喜爱：10
- 收获：10

### decaf-lsp

Decaf 语言的 LSP Server 实现，支持 Hover、Symbol 等功能，配合 [decaf-vscode](<https://github.com/jiegec/decaf-vscode>) 使用。

- [GitHub](<https://github.com/jiegec/decaf-lsp>)
- 相关技术：Rust，LSP，VSCode
- 投入时间：不多
- 喜爱：10
- 收获：10

### decaf-rs-pa

编译原理的 PA，基于 @MashPlant 的 Rust 框架。

- [GitHub](<https://github.com/jiegec/decaf-rs-pa>)
- 相关技术：Rust
- 投入时间：不多
- 喜爱：5
- 收获：5

### SignalProcessing

信号处理原理课程的实验。

- [GitHub](<https://github.com/jiegec/SignalProcessing>)
- 相关技术：信号处理
- 投入时间：较少
- 喜爱：3
- 收获：3

### dpll

软件分析与验证课程的实验。要求实现 DPLL 算法来解决 SAT 问题。

- [GitHub](<https://github.com/jiegec/dpll>)
- 相关技术：C++
- 投入时间：不多
- 喜爱：5
- 收获：3

### cache

计算机系统结构课程的实验。模拟一个 Cache 的行为。

- [GitHub](<https://github.com/jiegec/cache>)
- 相关技术：C++
- 投入时间：很少
- 喜爱：1
- 收获：1

### tomasulo

计算机系统结构课程的实验。实现 Tomasulo 算法。

- [GitHub](<https://github.com/jiegec/tomasulo>)
- 相关技术：C++
- 投入时间：不多
- 喜爱：1
- 收获：1

### crypto

现代密码学课程的实验。要求实现几个密码学算法。

- [GitHub](<https://github.com/jiegec/crypto>)
- 相关技术：密码学
- 投入时间：较少
- 喜爱：5
- 收获：5

### miller-rabin

现代密码学课程的实验。要求实现 Miller-Rabin 算法。

- [GitHub](<https://github.com/jiegec/miller-rabin>)
- 相关技术：密码学
- 投入时间：很少
- 喜爱：3
- 收获：3

### file-server

网络编程技术课程的实验。要求实现支持上传和下载的文件服务器和配套的客户端。

- [GitHub](<https://github.com/jiegec/file-server>)
- 相关技术：网络编程
- 投入时间：很少
- 喜爱：2
- 收获：2

### cache-advanced

高等计算机系统结构课程的实验。和本科生课实验类似。

- [GitHub](<https://github.com/jiegec/cache-advanced>)
- 相关技术：C
- 投入时间：很少
- 喜爱：0
- 收获：0

### sgemm-optimize

高性能计算实验课程的实验，在 Kunpeng 平台上优化 SGEMM。

- [GitHub](<https://github.com/jiegec/sgemm-optimize>)
- 相关技术：OpenMP, MPI
- 投入时间：较多
- 喜爱：8
- 收获：8

## 参加比赛的项目

### ctf-writeups

TODO

### nontrivial-mips

TODO

### linux-nontrivial-mips

TODO

### u-boot-nontrivial-mips

TODO

### trivialcompiler

TODO

### Elmerfem

TODO

### MemXCT

TODO

### miniVite

TODO

### PRESTO

TODO

### HPL

TODO

### CodingChallenge

TODO

## 个人参与或编写的项目

### MacGesture

高中时候接手的一个项目，在 macOS 上进行手势识别，然后执行相应的动作。

- [GitHub](<https://github.com/MacGesture/MacGesture>)
- 相关技术：Objective-C
- 投入时间：不多
- 喜爱：3
- 收获：2

### clone-learn-tsinghua

清华网络学堂的备份工具。用于毕业生的资料归档。

- [GitHub](<https://github.com/jiegec/clone-learn-tsinghua>)
- 相关技术：TypeScript
- 投入时间：不多
- 喜爱：8
- 收获：1

### CS140e

大一寒假的时候，Stanford CS140e 首次做出了用 Rust 写操作系统作为实验课程的尝试，我也跟着做了。

- [GitHub](<https://github.com/jiegec/cs140e>)
- 相关技术：Rust，操作系统
- 投入时间：较多
- 喜爱：10
- 收获：10

### rustup-mirror

把 rustup 同步到本地的工具，用于 TUNA 等镜像站。

- [GitHub](<https://github.com/jiegec/rustup-mirror>)
- 相关技术：Rust
- 投入时间：不多
- 喜爱：10
- 收获：3

### classroom-helper

为“实验物理的大数据方法”课程编写的工具，配合 GitHub Classroom 使用的工具，自动批量 clone 作业仓库，并且执行脚本进行评分，显示代码更改历史。

- [GitHub](<https://github.com/jiegec/classroom-helper>)
- 相关技术：Rust，TUI
- 投入时间：不多
- 喜爱：10
- 收获：3

### verilog-format

一个简单的 Verilog / SystemVerilog 格式化工具。未完成，勿用。

- [GitHub](<https://github.com/jiegec/verilog-format>)
- 相关技术：Rust，Nom，Parsing
- 投入时间：不多
- 喜爱：10
- 收获：5

### JieLabs

数字逻辑实验平台，远程操作 FPGA 和一些元件。

- [GitHub](<https://github.com/thu-cs-lab/JieLabs-Web>)
- 相关技术：React、Rust、WebSocket、Buildroot
- 投入时间：很多
- 喜爱：10
- 收获：10

### webhookd

一个用于处理 webhook 消息并执行操作的服务。支持 Gitlab 和 GitHub。

- [GitHub](<https://github.com/jiegec/webhookd>)
- 相关技术：Rust
- 投入时间：不多
- 喜爱：10
- 收获：3

### usbip

运行一个 USB/IP 服务，可以模拟设备或者转发到 libusb。

- [GitHub](<https://github.com/jiegec/usbip>)
- 相关技术：Rust
- 投入时间：不多
- 喜爱：10
- 收获：8

### TANLabs

网络原理实验平台，包含 CI 自动评测，树莓派评测等功能。

- 相关技术：React、Rust、S3、SQS
- 投入时间：很多
- 喜爱：10
- 收获：10

### HT42B534USB2UART

一个 USB 2 UART 板子，采用的芯片是 HT42B534。

- [GitHub](<https://github.com/jiegec/HT42B534USB2UART>)
- 相关技术：KiCad、JLC
- 投入时间：不多
- 喜爱：10
- 收获：10

### daccountd

基于 etcd 编写的 LDAP 服务器。

- [GitHub](<https://github.com/jiegec/daccountd>)
- 相关技术：Go、Etcd
- 投入时间：不多
- 喜爱：10
- 收获：10

### WM8731PMOD

一个 PMOD 接口的扩展板，上有 WM8731 芯片用于音频处理。

- [GitHub](<https://github.com/jiegec/WM8731PMOD>)
- 相关技术：LCEDA、JLC
- 投入时间：不多
- 喜爱：10
- 收获：10

### YXPortal

一个简单的 OAuth 客户端 + 服务端，用于实验系统的用户认证。

- 相关技术：Go、Elm
- 投入时间：不多
- 喜爱：10
- 收获：8

### screenmux

TODO

### thuip

TODO

### tantivy-jieba

TODO

### decode-bcbp

TODO

### libwavelib-sys

TODO

### verilog-lang

TODO

### maze-routing

TODO

### cluster-job-monitor

TODO

### netconf-rs

TODO

### aws-static-website-cdk

TODO

### ddns

TODO

### machine-tester

TODO

### jieplag

TODO

### espinallib

TODO

### minipxe

TODO

### wechat-dump

TODO

### cpu-micro-benchmarks

TODO

### floating

TODO

### fpu-wrappers

TODO

### feishu-backup

TODO

### rocket-chip-vcu128

TODO

### dcst-facts

TODO

### zotero-dump-markdown

TODO

### gitlab-cloner

TODO

### jtag-remote-server

TODO

### video2srt

TODO

### rvv-kernels

TODO

### ifupdown-to-systemd-networkd

TODO

### kicad-symbol-gen

TODO

### china\_bean\_importers

TODO

### chisel-memory-lower

TODO

### kb

TODO

### PMOD-SPI-NOR-FLASH

TODO

### dntt

TODO

### markdown-to-zhihu-article

TODO

### la-inst

TODO

### fatbinary

TODO

### data-link-protocols

TODO

### unofficial-loongarch-intrinsics-guide

TODO

### loongarch-csr

TODO

### buildit

TODO

### la\_ow\_ptrace

TODO

### cold

TODO

### ps2

TODO

### apple-pmu

TODO

### cpu

TODO

### barcode

TODO

### NetworkToolsHarmony

TODO

### SPECCPU2017Harmony

TODO

### cbp-experiments

TODO

### Termony

TODO

### ohos-updatebin-unpacker

TODO

### simple-frame-rs

TODO

### devdocs-mcp-server

TODO

### waveform-mcp

TODO

## 未完待续
