- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5节ystemGenerator的高级应用[第七章]-与非网.doc
第5节 ystem Generator的高级应用[第七章]
第5节 ystem Generator的高级应用
7.5.1 导入外部的HDL程序模块
基于HDL的设计已经盛行了多年,现已积累了有大量的HDL代码资源和丰富的IP核,因此在各种FPGA设计中,不可避免地要导入一些HDL代码,以达到最优设计。System generator支持导入HDL设计,能以黑盒子(Black Box)的方式导入VHDL、Verilog HDL以及EDIF设计文件。在模型设计中,黑盒子模块和普通的System generator一样,能实现模块间的互相连接、参与仿真以及被编译成硬件电路。 1.黑盒子HDL代码的要求 黑盒子模块队导入的HDL代码格式有一定的限制,其具体要求如下:
HDL实体的名字不能和设计中已有的模块名字重复;
顶层黑盒子实体中不能出现双向端口;
对于Verilog黑盒子,其模块和端口名必须小写,且命名要规范;
HDL模块的时钟信号以及时钟使能信号都必须是标准逻辑类型,即不能使用矢量输入信号,如: input clk1, clk2;是合法的 input [1:0] clk; 是不合法的
黑盒子代码的时钟和时钟使能信号必须成对出现,即出现一个时钟信号,则必须有一个时钟使能信号。且时钟信号的名字中必须包含字符串clk,时钟使能信号的名字必须包含字符串ce,一对时钟信号和时钟使能信号的名字只能有clk和ce不同,如my_clk_1和my_ce_1。
2.黑盒子配置向导 System Generator提供了由HDL代码到黑盒子模块转化的可配置向导,用于简化整个流程。可配置向导首先检查VHDL、Verilog代码的语法检查,然后根据语义分析的结果将其转换成.m函数,最后再将.m函数和黑盒子模块关联起来。生成的可配置.m函数是否可用取决于导入的HDL代码的复杂度。将在5.5.1节给出说明,指出在哪些细节下,必须对其生成的代码进行手工修改以修正可配置向导的不足。 1) 启动可配置向导 当在设计中添加一个黑盒子模块时,配置向导会自动启动。注意:在添加黑盒子之前,要将导入的HDL文件放在设计模型的文件夹中。可配置向导只在设计文件.mdl所在的文件中寻找.v和.vhd文件,如果没有找到相关文件,则会弹出警告提示对话框,如图7-47所示。
图7-47 警告提示对话框
当找到.v或者.vhd文件后,可配置向导会弹出一个新的对话框,并列出所有HDL文件,如图7-48所示。然后选中要导入的文件,点击“Open”按钮即可完成整个流程。自动生成的.m文件的名字为 “module_config.m”,且存放在设计文件夹中。module就是导入的HDL文件的名字。
图7-48 列出的HDL文件
2) 可配置向导的一些细节 可配置向导在运行过程中会自动提取大量的信息,并执行相应的转换,但是有些细节必须通过手动修改才能完成,如表7-12所示。另外,可配置向导会在.m函数相应的地方添加注释以提示设计人员。
表7-12 向导细节描述列表 3.可配置.m函数 导入的HDL文件都是以黑盒子模块来描述的,因此原HDL文件所有的信息都通过可配置.m函数加载到黑盒子中。可配置.m函数不仅定义了接口、物理实现以及仿真行为等信息,还包括以下配置信息:顶层模块的实体名字、VHDL或Verilog语言选择标志、端口描述、模块的一般性需求、时钟和采样速率、和模块有关的所有文件信息以及模块中是否含有组合逻辑路径。 黑盒子和可配置.m函数的关联性在其属性对话框中设定,如图7-49所示。可配置.m函数采用面向对象的接口来说明黑盒子模块的信息,主要由模块描述符对象SysgenBlockDescriptor和端口描述符对象SysgenPortDescriptor这两个对象来完成。当System generator调用一个可配置.m函数时,就向相应的.m函数传递一个模块描述符: function sample_block_config(this_block) 该模块描述符对象提供了说明黑盒子信息的方法,而相应的端口信息则由端口描述符对象独立定义。
图7-49 设定关联性的对话框
1) 设置顶层实体 配置向导会自动添加该属性的说明。SysgenBlockDescriptor对象提供的设计方法为setEntityName,其设置顶层实体的语法为: this_block.setEntityName(foo); 2) 语言选择 黑盒子模块的SysgenBlockDescriptor对象提供了设置顶层模块语言类型的函数,该方法只能在可配置.m函数中调用一次,下面给出设置VHDL以及Verilog模块的语法。在操作中
文档评论(0)