From 8f14f93d7e4230db405b62f79f2c23da040d3021 Mon Sep 17 00:00:00 2001 From: xinb Date: Mon, 4 Aug 2025 02:35:33 +0800 Subject: [PATCH] Add readme & doc --- README.md | 7 +++- doc/README.md | 57 +++++++++++++++++++++++++++++++ doc/lib.f | 4 +++ doc/lib/enc_dec/oh_bin/oh_bin.f | 2 ++ doc/lib/fifo/sync/sync.f | 2 ++ doc/tb.f | 4 +++ doc/tb/enc_dec/oh_bin/oh_bin_tb.f | 1 + doc/tb/fifo/sync/sync_tb.f | 1 + lib.f | 3 ++ tb.f | 3 ++ 10 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 doc/README.md create mode 100644 doc/lib.f create mode 100644 doc/lib/enc_dec/oh_bin/oh_bin.f create mode 100644 doc/lib/fifo/sync/sync.f create mode 100644 doc/tb.f create mode 100644 doc/tb/enc_dec/oh_bin/oh_bin_tb.f create mode 100644 doc/tb/fifo/sync/sync_tb.f create mode 100644 lib.f create mode 100644 tb.f diff --git a/README.md b/README.md index bef0ffc..a82b41d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ # ic_com -数字芯片设计公共库 \ No newline at end of file +数字芯片设计公共库 + +## 目录结构 +- `lib/`:核心功能模块(如编码器、FIFO等) +- `tb/`:各模块的仿真测试平台 +- `doc/`:文档与使用说明 \ No newline at end of file diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..7b9cbe9 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,57 @@ +# ic_com 库功能简介 + +## 目录结构 +- `lib/`:核心功能模块(如编码器、FIFO等) +- `tb/`:各模块的仿真测试平台 +- `doc/`:文档与使用说明 + +## 主要功能模块 +### 1. 编码/解码 +- `enc_dec/oh_bin/oh2bin.sv`:参数化 one-hot 到二进制编码器,支持面积/频率优化,适用于高性能和低功耗场景。 + +### 2. FIFO +- `fifo/sync/fifo_sync.sv`:同步FIFO,支持参数化数据宽度和深度,适合多场景缓存。 + +## 仿真与验证 +- `tb/enc_dec/oh_bin/oh2bin_tb.sv`:oh2bin编码器的时序仿真测试,支持自动化验证。 +- `tb/fifo/sync/fifo_sync_tb.sv`:同步FIFO的功能仿真测试。 + +## 波形与调试 +- 推荐使用VCS仿真,支持FSDB波形输出,便于使用Verdi/KDB调试。 + +## 快速仿真命令 +见下方示例。 + +--- + +# VCS仿真命令示例 + +## 1. 生成.f文件(文件列表) + +- 默认各模块`.f`文件需要配置环境变量`IC_COM_DIR`为仓库根目录。 + +- `lib.f`:包含所有lib目录下的源文件 +- `tb.f`:包含所有tb目录下的测试平台文件 + +## 2. 推荐VCS命令(含FSDB波形与KDB调试) +```sh +vcs -full64 -sverilog -debug_access+all +v2k +vcs+lic+wait \ + -f lib.f -f tb.f \ + -l vcs.log \ + -kdb \ + +fsdbfile+${USER}_sim.fsdb \ + +fsdb+autoflush \ + +vcsd \ + +vcs+dumpvars+all \ + +vcs+fsdbon \ + +notimingcheck \ + +define+FSDB \ + +define+KDB +``` +- 默认fsdb文件名为`${USER}_sim.fsdb`,可自动区分不同用户仿真结果。 +- 支持KDB调试,推荐配合Verdi使用。 + +## 3. 运行仿真 +```sh +./simv +``` diff --git a/doc/lib.f b/doc/lib.f new file mode 100644 index 0000000..0636533 --- /dev/null +++ b/doc/lib.f @@ -0,0 +1,4 @@ + +// doc/lib.f: ic_com库所有核心源文件,引用各子库f文件 +lib/enc_dec/oh_bin/oh_bin.f +lib/fifo/sync/sync.f diff --git a/doc/lib/enc_dec/oh_bin/oh_bin.f b/doc/lib/enc_dec/oh_bin/oh_bin.f new file mode 100644 index 0000000..253073f --- /dev/null +++ b/doc/lib/enc_dec/oh_bin/oh_bin.f @@ -0,0 +1,2 @@ +$IC_COM_DIR/lib/enc_dec/oh_bin/oh2bin.sv +$IC_COM_DIR/tb/enc_dec/oh_bin/oh2bin_tb.sv diff --git a/doc/lib/fifo/sync/sync.f b/doc/lib/fifo/sync/sync.f new file mode 100644 index 0000000..1961269 --- /dev/null +++ b/doc/lib/fifo/sync/sync.f @@ -0,0 +1,2 @@ +$IC_COM_DIR/lib/fifo/sync/fifo_sync.sv +$IC_COM_DIR/tb/fifo/sync/fifo_sync_tb.sv diff --git a/doc/tb.f b/doc/tb.f new file mode 100644 index 0000000..d670e69 --- /dev/null +++ b/doc/tb.f @@ -0,0 +1,4 @@ + +// doc/tb.f: ic_com库所有测试平台文件,引用各子库f文件 +lib/enc_dec/oh_bin/oh_bin.f +lib/fifo/sync/sync.f diff --git a/doc/tb/enc_dec/oh_bin/oh_bin_tb.f b/doc/tb/enc_dec/oh_bin/oh_bin_tb.f new file mode 100644 index 0000000..55b9af9 --- /dev/null +++ b/doc/tb/enc_dec/oh_bin/oh_bin_tb.f @@ -0,0 +1 @@ +// 已合并到 ../../../../lib/enc_dec/oh_bin/oh_bin.f diff --git a/doc/tb/fifo/sync/sync_tb.f b/doc/tb/fifo/sync/sync_tb.f new file mode 100644 index 0000000..4f28aff --- /dev/null +++ b/doc/tb/fifo/sync/sync_tb.f @@ -0,0 +1 @@ +// 已合并到 ../../../../lib/fifo/sync/sync.f diff --git a/lib.f b/lib.f new file mode 100644 index 0000000..92a8995 --- /dev/null +++ b/lib.f @@ -0,0 +1,3 @@ +// lib.f: ic_com库所有核心源文件 +lib/enc_dec/oh_bin/oh2bin.sv +lib/fifo/sync/fifo_sync.sv diff --git a/tb.f b/tb.f new file mode 100644 index 0000000..7665b85 --- /dev/null +++ b/tb.f @@ -0,0 +1,3 @@ +// tb.f: ic_com库所有测试平台文件 +tb/enc_dec/oh_bin/oh2bin_tb.sv +tb/fifo/sync/fifo_sync_tb.sv