米联客含协议栈.dcp的工程仿真

米联客FPGA工程无法仿真解决方法(针对.dcp文件)

使用新买的米联客K7开发板跑以太网通信的时候,使用的是米联客自己写的.dcp协议栈,然后仿真中是不能够直接调用的,本博客记录了解决方案,如果帮到你,一定要点赞哦!

在这里插入图片描述

因而在Vivado跑仿真的时候,突然报了个不知所以然的错:ERROR: [XSIM 43-3322] Static elaboration of top level Verilog design unit(s) in library work failed. 解决方法

查询优快云发现有建议更改“命名端口连接”,但自己的工程中貌似没有类似问题。

1.步骤一:观察结果

在这里插入图片描述

2.锁定文件

在这里插入图片描述

3.发现上述错误如1#error所示

在这里插入图片描述
然而,观察发现,0#error才是引发1#error问题所在,所以按理来说添加该文件后就解决了问题。可我们不是已经添加在里面了吗?并且反复add design source也不管用???实际上我们需要将.dcp文件例化,才能放在仿真中使用。

4.进入.dcp文件目录

首先在底部窗口点击TCL Console 并在输入框中键入cd xxx//yyy(xxx//yyy是你的.dcp文件保存的地址,切记直接复制过来的文件路径不能直接使用,需要将 / 改成 \ 或者 //)
在这里插入图片描述

5. 使用TCL命令打开.dcp文件

open_checkpoint xxx.dcp (xxx.dcp是上述.dcp文件 )

在这里插入图片描述

6.恭喜你来到了船新的世(界)界(面)

在该界面键入TCL指令write_verilog -force -mode funcsim xxx.v
此处xxx.v博主的xxx与.dcp文件名相同,具体是不是必须相同,欢迎大家深入探索一下。

在这里插入图片描述

7. 去你储存.dcp的目录下可以发现多了个.v文件,把这个文件add source到simulation即可。

在这里插入图片描述

开始搬砖咯!!!如果帮到你,一定要点赞哦!

附上gakki美照一张
在这里插入图片描述

参考文献 [1] https://blog.youkuaiyun.com/yindq1220/article/details/123593998

VIVADO网表文件(如`.edf`和`.dcp`)在FPGA设计中主要用于模块化封装和知识产权(IP)保护。它们的用途和使用方法各有特点,适用于不同的设计场景。 ### `.dcp`文件的用途和使用方法 `.dcp`(Design CheckPoint)文件是一种压缩格式的中间设计文件,包综合后的网表信息、布局布线约束等。它主要用于设计的封装和复用,同时可以保护设计的源代码。 #### 用途 - **模块化设计**:将设计中的某一部分封装为`.dcp`文件,便于在其他项目中直接调用,提升设计效率。 - **知识产权保护**:通过封装为`.dcp`文件,可以避免源代码的直接暴露,保护设计者的知识产权。 - **设计复用**:支持在不同项目中复用已验证的设计模块,减少重复开发工作。 #### 使用方法 1. **生成`.dcp`文件**: - 将需要封装的模块设置为顶层模块。 - 打开综合设置,在“More Options”中填入 `-mode out_of_context`。 - 删除所有约束文件(避免约束文件被封装到`.dcp`中)。 - 开始综合,综合完成后在 `runs/synth_1` 文件夹下找到生成的`.dcp`文件。 - 如果模块内部包IP核,可以将IP核设置为全局模式,并在综合后使用TCL命令生成完整的`.dcp`文件: ```tcl write_checkpoint -force D:/x/xxx.dcp ``` 2. **调用`.dcp`文件**: - 在顶层设计中,直接例化`.dcp`文件。 - 由于`.dcp`文件综合后的网表信息,可以直接用于布局布线,无需重新综合。 #### 注意事项 - `.dcp`文件对软件版本敏感,高版本生成的`.dcp`文件无法在低版本Vivado中使用。 - 支持嵌套调用,例如在一个`.dcp`文件中嵌套其他`.dcp`文件或IP核。 ### `.edf`文件的用途和使用方法 `.edf`(Electronic Design Interchange Format)文件是一种通用的网表格式,通常用于设计的综合后封装。它不包布局布线信息,但可以跨工具链使用。 #### 用途 - **设计封装**:将设计模块封装为`.edf`文件,便于传递和集成。 - **知识产权保护**:通过提供`.edf`文件代替源代码,保护设计的IP。 - **跨工具链兼容性**:`.edf`文件可以在不同EDA工具之间交换,适合多工具协同设计。 #### 使用方法 1. **生成`.edf`文件**: - 将需要封装的模块设置为顶层模块。 - 打开综合设置,在“More Options”中填入 `-mode out_of_context`。 - 删除所有约束文件。 - 开始综合,综合完成后打开综合设计。 - 在TCL命令框中输入以下命令生成`.edf`文件和黑盒接口文件: ```tcl write_edif D:/x/xxx.edf write_verilog -mode synth_stub D:/x/xxx_stub.v ``` 2. **调用`.edf`文件**: - 在顶层设计中添加`.edf`文件和对应的黑盒接口文件(`.v`文件)。 - 直接例化黑盒接口文件,确保与`.edf`文件的端口匹配。 - Vivado会自动加载`.edf`文件中的网表信息。 #### 注意事项 - `.edf`文件必须与黑盒接口文件(`.v`文件)一起使用,否则无法正确例化。 - 不建议在包IP核的设计中使用`.edf`文件,可能会导致IP名称冲突或其他错误。 ### `.dcp`和`.edf`文件的比较 | 特性 | `.dcp`文件 | `.edf`文件 | |---------------------|-------------------------------------|-------------------------------------| | **文件格式** | 压缩格式 | 文本格式(EDIF) | | **是否可仿真** | 不可直接仿真 | 不可直接仿真 | | **是否支持IP核** | 支持 | 不支持(可能报错) | | **跨版本兼容性** | 差(对软件版本敏感) | 较好(通用格式) | | **是否支持嵌套** | 支持 | 不支持(或需特殊处理) | | **加密性** | 无法直接加密 | 无法直接加密 | | **调用方式** | 直接例化 | 需配合黑盒接口文件(`.v`文件) | ### `.dcp`和`.edf`文件的共同弊端 - **无法仿真**:两者均无法直接用于功能仿真,若需要仿真,需生成对应的HDL代码。 - **源文件缺失**:由于封装后仅提供网表文件,不利于版本管理和设计移植。 - **依赖软件版本**:`.dcp`文件对软件版本敏感,而`.edf`文件虽然通用性较好,但在某些工具链中可能需要额外处理。 ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值