使用紫光同创PDS遇到的IO引脚分配问题

        最近使用紫光的PDS移植代码时遇到了引脚分配的问题,简单分享一下,本次使用的软件版本为Pango Design Suite 2022.2 - SP2,由于工程中含有VHDL文件,所以综合工具只能选择Synplify Pro,如果选择自带的ADS,综合时会报错,好像2023.2之后的版本ADS才支持综合VHDL文件。

        新建完工程后,添加源文件,打开UCE,发现顶层定义多位宽的端口一个也没有,在I/O分配界面只有单位宽的信号,没有多位宽的信号,刚开始怀疑是综合工具把一些没有使用的端口信号给优化掉了,所以在顶层一些怀疑被优化的信号后面增加防止综合被优化的语句(/* synthesis syn_keep=1 */),但是发现没有作用,接着做了一些其它尝试,重新加载顶层文件,重新创建工程,均没有效果。其中一些多位宽信号直接通过assign直接赋值,还是在UCE中没有该端口,接着进行布局布线后,在report summary中查看IO report,而该界面是有所有端口信号的,说明软件是识别到了所有端口,但是在UCE中不显示,同时如果在生成的.fdc文件直接写约束语句,发现在IO report中该端口被使用,说明可以通过在.fdc写约束语句约束多位宽IO,但该方式有些繁琐。之后在各种尝试中找到了解决方法,修改顶层端口定义的写法,本来端口定义是如下图所示的:

        修改之后,改为如下所示:

        顶层端口定义由Verilog-1995标准改为Verilog-2001标准后,UCE中显示所有的端口信号,均可分配。虽然问题解决了,但是不知道具体原因,感觉应该是软件Bug。

### 关于紫光同创 PDS 固化程序的相关说明 #### 1. 固化程序的功能概述 在使用紫光同创 PDS 进行 FPGA 开发的过程中,固化程序的主要作用是将编译完成后的比特流文件存储到 SPI FLASH 中。这样可以确保设备断电重启后能够自动加载配置文件并运行指定逻辑[^1]。 #### 2. 固化操作的具体步骤 以下是基于紫光同创 PDS 平台进行固化操作的关键环节: - **扫描外置 FLASH** 在执行固化之前,需确认目标板上的 SPI FLASH 是否被正确识别。具体方法为,在 PDS 软件界面中鼠标右键单击 FPGA 图标,随后选择菜单项 `Scan Outer Flash` 完成芯片检测[^3]。 - **分配管脚与生成 BIT 文件** 利用 PDS 提供的设计工具完成综合、布局布线以及最终的 BIT 文件生成过程。在此阶段,应特别注意按照实际硬件连接情况合理规划 I/O 管脚映射关系。 - **启动固化向导** 打开项目属性对话框,切换至 “Flash Programming” 页面启用相关选项,并指定待写入的目标文件路径。之后即可一键触发整个烧录流程[^4]。 #### 3. 使用教程文档获取途径 对于希望深入了解如何利用紫光同创 PDS 实现自动化构建及固化的开发者而言,官方发布的用户手册是最权威的学习材料之一。这些资料通常涵盖了从安装部署到高级特性的方方面面内容。可以通过访问官网技术支持专区或者联系销售代表索取最新版本的手册链接地址。 另外值得注意的是,由于不同型号之间可能存在细微差异(例如 PGX-Nano 板载特定规格参数),建议同步查阅对应开发套件的产品说明书以便获得更加详尽指导信息[^2]。 ```python # 示例 Python 脚本模拟调用外部命令接口实现简单控制功能 import subprocess def flash_programmer(bitfile_path, device_id): command = f"pds_flash_tool --bit {bitfile_path} --device {device_id}" result = subprocess.run(command.split(), capture_output=True) if result.returncode != 0: raise Exception(f"Failed to program flash: {result.stderr.decode()}") flash_programmer("/path/to/my_design.bit", "PG2L50H_MBG324") ``` 上述代码片段展示了一个简化版的例子来演示可能存在的 API 接口形式,但请注意这并非真实可用的实际函数定义,仅作为概念参考用途。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值