add virtual machine and development environment

This commit is contained in:
zhoushuang 2026-04-27 16:51:11 +08:00
parent 2542db36d1
commit c6a70c36b0
2 changed files with 41 additions and 29 deletions

View File

@ -10,6 +10,7 @@ html:
| 版本号 | 作者 | 修订原因 | 修订内容 | 日期 | | 版本号 | 作者 | 修订原因 | 修订内容 | 日期 |
| :----: | :----------: | :------- | :------------------------------------------------------- | :--------: | | :----: | :----------: | :------- | :------------------------------------------------------- | :--------: |
| v1.0 | 周爽| 初始版本 | - | 2026.04.13 | | v1.0 | 周爽| 初始版本 | - | 2026.04.13 |
| v1.1 | 周爽| 内容完善 | 1. 新增开发环境要求;<br> 2. 修改 makefile<br>3. 提供 Vivado 2024.2 + VCS 2018.09 虚拟机; | 2026.04.27 |
# 1. 引言 # 1. 引言
@ -18,18 +19,18 @@ html:
# 2. 依据文件 # 2. 依据文件
| 序号 | 文件编号及文件名称 | 版本号 | | 序号 | 文件编号及文件名称 | 版本号 |
| :--: | :------------------------------------------------------------: | :----: | | :--: | :------------------------------------------------------------: | :----: |
| 1 | ez-Q 2.5-RS-01_ez-Q 2.5测控系统研制项目需求文档 | v1.2 | | 1 | ez-Q 2.5-RS-01_ez-Q 2.5 测控系统研制项目需求文档 | v1.2 |
| 2 | ez-Q 2.5-SDD-01_ez-Q 2.5测控系统研制项目总体设计报告 | v1.0 | | 2 | ez-Q 2.5-SDD-01_ez-Q 2.5 测控系统研制项目总体设计报告 | v1.0 |
| 3 | ez-Q 2.5-SDD-03_ez-Q 2.5测控系统标准交互协议及控制服务接口设计 | v1.3 | | 3 | ez-Q 2.5-SDD-03_ez-Q 2.5 测控系统标准交互协议及控制服务接口设计 | v1.3 |
| 4 | ez-Q 2.5-TK-SDD-001-调控子系统设计报告 | v1.0 | | 4 | ez-Q 2.5-TK-SDD-001 调控子系统设计报告 | v1.0 |
| 5 | ez-Q 2.5-RD-SDD-01_ez-Q 2.5读出子系统总体设计 | v1.0 | | 5 | ez-Q 2.5-RD-SDD-01_ez-Q 2.5 读出子系统总体设计 | v1.0 |
| 6 | ez-Q 2.5-CC-SDD-01_ez-Q 2.5通信子系统设计报告 | v1.0 | | 6 | ez-Q 2.5-CC-SDD-01_ez-Q 2.5 通信子系统设计报告 | v1.0 |
| 7 | ez-Q 2.5-FB-SDD-01_ez-Q 2.5反馈子系统设计报告 | v0.2 | | 7 | ez-Q 2.5-FB-SDD-01_ez-Q 2.5 反馈子系统设计报告 | v0.2 |
| 8 | ez-Q 2.5-SDD-05_ez-Q 2.5测控系统调控通道编程控制模型 | v0.3 | | 8 | ez-Q 2.5-SDD-05_ez-Q 2.5 测控系统调控通道编程控制模型 | v0.3 |
| 9 | ez-Q 2.5-SDD-09_ez-Q 2.5测控系统调控通道历史无关的配置功能项 | v0.3 | | 9 | ez-Q 2.5-SDD-09_ez-Q 2.5 测控系统调控通道历史无关的配置功能项 | v0.3 |
| 10 | ez-Q 2.5-SDD-07_ez-Q 2.5读出子系统编程控制模型 | v0.1 | | 10 | ez-Q 2.5-SDD-07_ez-Q 2.5 读出子系统编程控制模型 | v0.1 |
| 11 | ez-Q 2.5-SDD-08_ez-Q 2.5读出子系统历史无关配置集 | v0.1 | | 11 | ez-Q 2.5-SDD-08_ez-Q 2.5 读出子系统历史无关配置集 | v0.1 |
| 12 | ez-Q 2.5子系统间通信协议 | v0.1 | | 12 | ez-Q 2.5 子系统间通信协议 | v0.1 |
# 3. 定义、简写和缩略语 # 3. 定义、简写和缩略语
| 序号 | 名词/缩写 | 解释 | | 序号 | 名词/缩写 | 解释 |
@ -55,7 +56,7 @@ html:
| 19 | SMA | SubMiniature version A一种常用的射频同轴连接器类型 | | 19 | SMA | SubMiniature version A一种常用的射频同轴连接器类型 |
# 4. 固件设计需求 # 4. 固件设计需求
本章节基于 ez-Q2.5 测控电子学固件的任务背景和需求来源,提炼出各个子系统的固件设计需求。 本章节基于 ez-Q 2.5 测控电子学固件的任务背景和需求来源,提炼出各个子系统的固件设计需求。
## 4.1. 调控子系统固件需求 ## 4.1. 调控子系统固件需求
| 序号 | 功能 | 固件需求 | | 序号 | 功能 | 固件需求 |
@ -145,6 +146,11 @@ html:
| 6 | 固件远程升级 | 固件支持flash的读写控制机箱系统支持并行升级 | | 6 | 固件远程升级 | 固件支持flash的读写控制机箱系统支持并行升级 |
|7| 参数存储与加载 | 固件支持eMMC/EEPROM的读写控制上电初始化阶段自动从eMMC/EEPROM读出配置参数。| |7| 参数存储与加载 | 固件支持eMMC/EEPROM的读写控制上电初始化阶段自动从eMMC/EEPROM读出配置参数。|
## 4.6. 开发环境要求
逻辑开发环境Vivado 2024.2
逻辑仿真环境QuestaSim, VCS
嵌入式开发环境Vitis 2024.2。
# 5. 仿真与测试要求 # 5. 仿真与测试要求
各子系统的固件要经过固件仿真、固件自测、系统测试等阶段来排查固件设计中可能存在的问题充分验证固件设计的正确性、可靠性。本章节从固件仿真和固件自测2个方面来具体描述。 各子系统的固件要经过固件仿真、固件自测、系统测试等阶段来排查固件设计中可能存在的问题充分验证固件设计的正确性、可靠性。本章节从固件仿真和固件自测2个方面来具体描述。
@ -736,39 +742,43 @@ SIMV_OPTS = sync:busywait -Xdprof=timeline \
all: comp run all: comp run
comp: comp:
if [ -f $(VHDL_FILELIST) ]; then \ @mkdir -p work
$(VHDLAN) $(VHDLAN_OPTS) -f $(VHDL_FILELIST); \
fi
$(VLOGAN) $(VLOGAN_OPTS) -f $(VLOG_FILELIST) @if [ -f $(VHDL_FILELIST) ]; then \
$(VHDLAN) $(VHDLAN_OPTS) -f $(VHDL_FILELIST); \
fi
$(VCS) $(VCS_OPTS) $(TB_TOP) -l compile.log $(VLOGAN) $(VLOGAN_OPTS) -f $(VLOG_FILELIST)
$(VCS) $(VCS_OPTS) -top $(TB_TOP) -l compile.log
run: run:
$(SIMV) $(SIMV_OPTS) $(SIMV) $(SIMV_OPTS)
dbg: dbg:
verdi -sverilog -f $(VLOG_FILELIST) $(FILES) -top $(TB_TOP) -ssf *.fsdb -nologo & verdi -sverilog -f $(VLOG_FILELIST) $(FILES) -top $(TB_TOP) -ssf *.fsdb -nologo &
clean: clean:
rm -rf DVE* simv* *log ucli.key verdiLog urgReport csrc novas.* \ rm -rf DVE* simv* *log ucli.key verdiLog urgReport csrc novas.* \
*fsdb* *.dat *.daidir *.vdb *~ partitionlib/ dprof.dir/ \ *fsdb* *.dat *.daidir *.vdb *~ partitionlib/ dprof.dir/ \
dprof.txt \ dprof.txt \
cov: cov:
verdi -cov -covdir coverage/merged.vdb & verdi -cov -covdir coverage/merged.vdb &
cov_d: cov_d:
dve -full64 -covdir coverage/*.vdb & dve -full64 -covdir coverage/*.vdb &
merge: merge:
urg -full64 -dbname coverage/merged.vdb -flex_merge union -dir coverage/simv.vdb -parallel -maxjobs 64& urg -full64 -dbname coverage/merged.vdb -flex_merge union -dir coverage/simv.vdb -parallel -maxjobs 64&
merge_i: merge_i:
urg -full64 -flex_merge union -dir coverage/merged.vdb -dir coverage/mem_test.vdb -dbname coverage/merged.vdb -parallel -maxjobs 64& urg -full64 -flex_merge union -dir coverage/merged.vdb -dir coverage/mem_test.vdb -dbname coverage/merged.vdb -parallel -maxjobs 64&
``` ```
这个 makefile 从 filelist_vlog.f 中获取 verilog 文件路径,从 filelist_vhdl.f 中获取 VHDL 文件路径(非必须);默认的仿真顶层模块名为 tb_top支持通过输入参数来更换顶层模块。 这个 makefile 从 filelist_vlog.f 中获取 verilog 文件路径,从 filelist_vhdl.f 中获取 VHDL 文件路径(非必须);默认的仿真顶层模块名为 tb_top支持通过输入参数来更换顶层模块。
将 makefile 从 Windows 系统复制到 Linux 系统时,可能会出现语法错误。原因是 makefile 语法要求命令行必须以 Tab 开头,不同系统下 Tab 占用的空格数量可能不同,通过 vim 或 gvim 编辑 makefile把命令行开头的空格改为 Tab 即可。
#### 8.2.2.5. 运行仿真 #### 8.2.2.5. 运行仿真
输入:``` make all ``` 运行仿真;如果需要更换仿真顶层模块,例如修改为 tb_top_sim输入```make all TOP=tb_top_sim``` 输入:``` make all ``` 运行仿真;如果需要更换仿真顶层模块,例如修改为 tb_top_sim输入```make all TOP=tb_top_sim```
@ -903,8 +913,10 @@ u32 CalculateCRC32(u32 init_value, u8 *data, u32 length, u32 polynomial)
``` ```
## A.2. 下载链接 ## A.2. 下载链接
Vivado 2024.2 + Vitis 2024.2https://pan.quark.cn/s/b7886c4f623a 提取码77t1
QuestaSim 2014.1https://pan.baidu.com/s/1vaCy-6WtdBn5Uew3WMBEcQ?pwd=71c4 QuestaSim 2014.1https://pan.baidu.com/s/1vaCy-6WtdBn5Uew3WMBEcQ?pwd=71c4
VCS 2018https://pan.baidu.com/s/1E2mhK-jVyK_pisP2YnH4fg?pwd=fwj1 CentOS 虚拟机Vivado 2024.2 + VCS 2018.09 SP2https://pan.quark.cn/s/1d13755fada3 提取码wA6m