FPGA开发之算法开发 system Generator( 三 )


文章插图

FPGA开发之算法开发 system Generator

文章插图
图1-4 系统参数设定对话框
6)设置关键模块参数 。双击“ In”、“ Out”模块,会弹出图1-5和图 1-6所示的对话框 。In模块属性可查看输入数据位宽和量化规则 。
FPGA开发之算法开发 system Generator

文章插图

FPGA开发之算法开发 system Generator

文章插图
图1- In模块属性对话框图 1- Out模块属性对话框
7)运行测试激励 。当参数设置完成后,点击工具栏的“run ”按键,即可运行仿真,可以看到显示器输出为46,表明设计的功能是正确的 。
8)生成HDL代码 。单击窗口的“”按键,可自动将设计转化成HDL代码 。整个转化过程的起始和结束提示界面分别如图1-6和图 1-7所示 。
FPGA开发之算法开发 system Generator

文章插图

FPGA开发之算法开发 system Generator

文章插图
图1-6 自动生成代码过程的起始提示标志 图1-7 自动生成代码过程的结束提示标志
读者可在相应的文件夹 里的子目录中打开“.v”文件,查看相应的代码,用户可将其作为子模块直接使用 。
二、 中的信号类型
是面向硬件设计的工具,因此数据类型只能是定点的,而中的基本数据类型是双精度浮点型,因此模块和模块连接时需要通过边界模块来转换 。“ In”模块把浮点数转换成定点数,“ Out”把定点数转换成浮点数 。此外,对于中的连续时间信号,还必须经过“ In”模块的采样转换才能使用 。
中的数据类型命名规则是非常简易且便于记忆的形式,如表示此端口为8比特有符号数,其中6比特为小数部分 。如果是无符号数,则带有“Ufix”前缀 。在 中,可通过选择 “” 菜单中的“Port/Port Data Types”命令,来显示所有端口的数据类型,形象显示整个系统的数据精度 。
模块基本上都是多形态的,即可根据输入端口的数据类型来确定输出数据类型,但在有些情况下需要扩展信号宽度来保证不丢失有效数据 。此外,也允许设计人员自定义模块的输入、输出数据的量化效果以及饱和处理 。在图8-14所示的“ In”模块属性对话框中,“ type”选择数据为布尔型、有符号数还是无符号数;“ of bits”即为定点数的位宽;“ point”为小数部分的宽度;“”选择定点量化模式;“”用于设定饱和处理模式;“ ”用于对连续时间信号的采样 。因此按照 的数据形式命名规则,“ In”模块的数据类型为Fix/Ufix_( of bits)_( point ) 。
此外,还有DSP48,显示为“”,是针对数字信号处理的专用模块,用于实现乘加运算 。
三、 自动代码生成
能够自动地将设计编译为低级的HDL描述,且编译方式多样,取决于 标志中的设置 。为了生成HDL代码,还需要生成一些辅助下载的文件工程文件、约束文件等,和用于验证的测试代码(HDL ) 。
1.编译并仿真 模块
前面已经提到要对一个 的设计进行仿真或者将其转化成硬件,则设计中必须包含一个 生成标志 。也可以将多个生成标志分布于不同的层中(一层一个),在层状结构中,处于别的层下的称为从模块,不属于从模块的则为主模块 。但是特定的参数(如系统时钟频率)只能在主模块中设置 。
对于任一添加的模块,都可以在 模块中指定其代码生成方式和仿真处理形式,要编译整个系统,在顶层模块中利用 模块生成代码即可 。
【FPGA开发之算法开发 system Generator】不同编译类型的设定将会产生不同的输出文件,可选的编译类型包括两个网表文件类型(HDL网表和NGC网表)、比特流文件类型、EDK导出工具类型以及时序分析类型等4类 。