HDLCoder详细教程综述.docxVIP

  • 753
  • 0
  • 约1.67万字
  • 约 22页
  • 2017-03-29 发布于湖北
  • 举报
HDLCoder详细教程综述

生成代码前准备工作 在从模型生成HDL代码前,你应该作如下工作: ? 在生成代码前,用hdlsetup功能(详见?Initializing Model Parameters with hdlsetup)来对你要生成HDL代码的模型进行设置。 ? 用hdllib功能来创建目前支持HDL代码生成的模块库(详见?Show Blocks Supported for HDL Code Generation)通过用这个库里的模块来构建模型,你的模型就会兼容HDL。 支持的模块集合在今后的版本会改变,所以你每次安装新版本的本产品时应该重建支持的模块库。 ? 用?Run Compatibility Checker选项(详见?Selecting and Checking a Subsystem for HDL Compatibility)来检查你模型或者DUT的HDL兼容性并生成HDL Code Check Report。 你也可以调用chekhdl函数(见checkhdl)来运行兼容性检查器。 练习简介 HDL Coder支持生成代码,用户可以选择以下环境: 1. MATLAB命令窗口支持用makehdl,makehdltb和其他函数生成代码 2. Simulink GUI (配置参数对话框和/或模型浏览器) 提供模型仿真参数/代码生成参数和函数的集成视图 这个实践练习通过在以上两种环境使用中相同的模型,介绍HDL代码的生成和仿真机制。在这一系列步骤中,你将: 1. 构建一个简单模型用于生成代码 2. 从模型中的子系统生成代码 3. 生成适用于Mentor Graphics ModelSim仿真器的VHDL测试台来实现模型的仿真 4. 在仿真器中编译和执行模型和测试台 5. 用同样的模型生成并仿真Verilog代码 6. 检查模型和HDL Coder的兼容性 stir_fixed模型 这些练习用sfir_fixed模型作为HDL代码生成源。该模型模拟一对称有限脉冲响应滤波器算法,通过定点数计算实现。 该模型里的模块支持HDL代码生成,并且模型参数已进行配置以适于代码生成。想了解更多关于模型准备以进行代码生成,参考Prepare Simulink Model For HDL Code Generation. 下图为模型的顶层级别描述。 该模型采用了任务分解,有助于HDL设计: ? 用于执行滤波算法的symmetric_fir子系统是被测器件。一个HDL实体将从这个子系统被创建、测试,最终综合。 ? 驱动该子系统的顶层模型元件是测试台。 顶层模型生成symmetric_fir子系统的16位定点输入信号。Signal From Workspace模块生成一个用于滤波器的测试输入(激励)信号。四个常数模块提供滤波器系数。 Scope模块仅用来仿真,这些虚拟的模块不会生成HDL代码。 下图描述了symmetric_fir子系统。 定点数数据类型在子系统里传递。输入继承了被送过来的信号的数据类型。在需要的地方,给定输入的数据类型并采取操作后,模块的内部规则决定了输出的数据类型。 滤波器在y_out管脚输出一个定点数结果,并在delayed_x_out复制其输入(在经过若干个延迟阶段后)。 在接下来的例程里,你将会生成将symmetric_fir当成一个实体实现的VHDL代码。然后你会从顶层级别模型生成一个测试台。这个测试台用从Signal From Workspace产生的激励数据驱动生成的实体完成指定的时钟步数。 用HDL Workflow Advisor生成代码(该法不能生成测试台代码) 这个例程展示了如何用HDL Workflow Advisor从Simulink模型生成HDL代码。 本例程中的模型,stir_fixed已经被准备好用于代码生成。 本例程采用Xilinx ISE综合工具,我们假设你的工具路径已设置好。你也可以用Altera Quartus II来进行本例程。 ? 创建工作文件夹并复制模型 ? 用HDL Workflow Advisor生成代码 ? 执行FPGA综合和分析 创建工作文件夹并复制模型 1. 启动MATLAB 2. 创建一名为sl_hdlcoder_work的文件夹。比如: sl_hdlcoder_work文件夹将被用于保存例程中模型的拷贝和HDL Coder生成的文件夹及代码。这个文件夹的位置不重要,但是不能在MATLAB的文件夹树下。 3. 将sl_hdlcoder_work文件夹

文档评论(0)

1亿VIP精品文档

相关文档