1.开发背景
随着开发进度的不断迭代,需要对代码实行管控,FPGA代码管控也很重要,这个篇章主要是对紫光同创 PDS 开发环境下实现代码自动构建功能
2.开发需求
设计实验:
1)点击一个脚本自动编译工程
2)工程路径和环境安装目录可配置
3)编译生成 .sfc 烧录固件
3.开发环境
window10 + PDS2022.2-SP4.2
4.实现步骤
4.1 实现代码
bat 脚本 build.bat,主要使用 pds_shell.exe 工具实现编译功能
@echo off
::启用命令扩展
setlocal enabledelayedexpansion
REM 设置PDS安装路径
set PDS_PATH="D:\pango\PDS_2022.2-SP4.2-ads\bin"
REM 设置工程路径和工程名称
set SHELL_PATH="C:\Users\REETOO\Desktop\1_led2\build.ps1"
set PROJECT_PATH="C:\Users\REETOO\Desktop\1_led2\prj"
set PROJECT_NAME="led.pds"
REM 切换到工程目录
cd /d %PROJECT_PATH%
REM 调用PDS命令行工具进行编译
%PDS_PATH%\pds_shell.exe -project %PROJECT_NAME%
echo "pds_shell execute ok"
REM 通过 POWERSHELL 打开终端执行 SFC 文件生成功能
powershell -ExecutionPolicy Bypass -File %SHELL_PATH%
REM 检查编程结果
echo "auto build over"
exit
pause
powershell 脚本 build.ps1,主要实现将 sbit 文件转换成 sfc 文件
$PDS_PATH="D:\pango\PDS_2022.2-SP4.2-ads\bin"
$PROJECT_PATH="C:/Users/REETOO/Desktop/1_led2/prj"
$PROJECT_NAME="led.pds"
$STRING_CMD="cfg_gen_sfc -device_name W25Q128Q -opcode 11 -sbit_start_address 0 -sbit $PROJECT_PATH/generate_bitstream/led.sbit"
# 启动 cdt_cfg_shell.exe 并设置工作目录
Start-Process -FilePath "$PDS_PATH\cdt_cfg_shell.exe"
# 等待终端窗口出现
Start-Sleep -Seconds 1
# 发送 dir 命令
$wshell = New-Object -ComObject wscript.shell
$wshell.AppActivate('cdt_cfg_shell.exe')
Start-Sleep -Milliseconds 500
# sbit 转换 sfc
Set-Clipboard -Value $STRING_CMD
$wshell.SendKeys("^v")
$wshell.SendKeys("{ENTER}")
Set-Clipboard -Value "exit"
$wshell.SendKeys("^v")
$wshell.SendKeys("{ENTER}")
其中,$STRING_CMD 从开发环境中拷贝过来即可
4.2 执行过程
1) 点击 build.bat,执行编译
2)等待编译完成