首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA实战开发技巧(2)

FPGA实战开发技巧(2)

5.2 如何进行FPGA设计早期系统规划
作者:Ricky Su (www.rickysu.com)
这篇文章讲述了如何用工具提高效率的方法,适用程度因人而异。
Situation: 在对FPGA 设计进行最初步的系统规划的时候,需要进行模块划分,模块接口定义等工作。通常,我们起初会在纸上进行设计,到了一定阶段的定稿可能会输入Visio 等工具,方便在Team 内部交流和审阅。虽然在纸上我们可以很随意地书写,而用纸画的不方便就在于,如果想对某一个模块进行一些改动或者重画模块,那么常常因为留出的空余纸张不够,而导致拿一张新的白纸重新画一遍,比较浪费时间。对于电子化的Visio 来说,方便修改是好处,但他不是专为设计FPGA 系统而设计的,添加输入输出端口没那么方便,也不会根据定义的模块自动生成HDL文件。
HDLQuestion: 我们能不能使用更好软件进行系统规划呢?
Solution: 答案是可以的。下面以ISE 10.1 为例作说明:
1) 画一个空模块,仅定义端口 - 新建Schematic,选择Tools -> Symbol Wizard,里面可以定义Symbol名和端口属性。完成后生成sym 格式的Symbol。如果端口是一个bus,那么可以用A(4:0) 的形式。
2) 将Symbol 添加到原理图 - 在Schematic 的Symbol 页面,选择Categories 为工程文件夹,在Symbols列表中就可以看到刚刚新建的Symbol。将它添加到原理图中。


3) 重复1-2 步骤,建立所有Symbol,并连接端口。如果需要修改连线的名字或者模块的例化名,可以选择需要修改名字的元件然后按右键--> Object Properties --> 在Name/InstName 窗格中填入需要的名字。
4) 如需修改Symbol,可以直接在sym 文件中修改 - 可以按右键-> Add -> Pin 等等添加,也可以Copy已存在的Pin,然后改变PinName。但是ISE10.1 的Symbol Editor 对Add Pin 有一些Bug。因此在UltraEditor打开这个sym 文件,在里面修改可能是更好的办法。sym 文件格式很易懂。改变 Symbol 端口后需要UpdateSchematic。在点到Schematic 后会自动弹出Update 对话框。
5) 生成原理图对应的HDL 文件 - 点击"Sources in Project" 列表中的sch 文件,在"Process" 窗口选择"View HDL Functional Model"。这样会自动生成Schematic 对应的HDL 文件,其中例化了上面的各个模块。要改变HDL文件类型,可以改变Project 属性中的"Generated Simulation Language" 属性。

6) 生成Symbol 对应的HDL 文件 - 在打开一个sym 文件时,选择Tools -> Generate HDL Template from Symbol。此时可以选择生成VHDL 还是Verilog 的文件。
至此,我们已经生成了顶层文件和待开发的子模块文件,我们已经可以在它的基础上进行开发了。在开发过程中我们可能还会碰到这些问题:
1. 我想把设计图打印下来- 除了ISE 自带的打印功能外,要打印好看的图纸,还可以使用Synplify Pro或PlanAhead。由于以上流程生成的代码都是可综合的,带有端口信息的HDL 会被综合工具认为是一个blackbox的wrapper,因此我们可以用ISE 或Synplify 将这些代码综合,综合工具会生成比较好看的综合模块图(RTL Schematic)。除了可以用ISE 和Synplify 打开这些综合网表产生RTL Schematic 之外,也可以用PlanAhead 打开综合网表,它的Schematic 显示功能更为强大。
2. 我要修改某些模块的端口,并添加连线修改模块端口是否还需要在原来的Schematic 上编辑修改呢?这是仁者见仁智者见智的问题了。我个人在生成了带端口信息的HDL 后还是偏好修改HDL --> 综合 --> 在PlanAhead 中产生需要的连接图 --> 打印 --> 在打印稿上继续思考写写划划 --> 继续修改HDL 这样的流程。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表