0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

MATLAB 来源:djl 2019-09-18 14:51 次阅读

HDL Coder 利用 MATLAB 函数、Simulink 模型和 Stateflow 图生成可移植、可综合的 Verilog 和 VHDL 代码。生成的 HDL 代码可用于 FPGA 编程ASIC 原型开发和设计。

HDL Coder 提供了一个 Workflow Advisor,可以自动执行 Xilinx 和 Altera FPGA 编程。您可以控制 HDL 架构和实施、突出显示关键路径,并估算硬件资源利用率。HDL Coder 在 Simulink 模型与生成的 Verilog 和 VHDL 代码之间提供了可追溯性,使高完整性应用程序的代码验证遵守 DO-254 和其他标准。

主要特性

独立于目标的、可综合的 VHDL 和 Verilog 代码

代码生成支持MATLAB 函数、系统对象以及 Simulink 模块

使用 Stateflow 实施 Mealy 和 Moore 有限状态机以及控制逻辑

用于 Xilinx 和 Altera 应用程序面板编程的 Workflow Advisor

资源共享和重定时,用以平衡面积速度

符合 DO-254 的代码到模型和模型到代码可追溯性

旧有代码集成

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

使用 HDL Coder 从 MATLAB 或 Simulink 生成 HDL 代码。您可以使用 MATLAB 函数、Simulink 模型或将两者结合使用来生成可综合的 VHDL 和 Verilog 代码。

主要功能

1.生成HDL代码

使用 HDL Coder,只需几个步骤便可为 FPGA 和 ASIC 实施生成可综合的 HDL 代码:

将 MATLAB 代码、Simulink 模块和 Stateflow 图组合使用,进行设计建模。

优化模型以满足面积速度设计目标。

使用为 MATLAB 和 Simulink 集成的 HDL Workflow Advisor 生成 HDL 代码。

使用 HDL Verifier 验证生成的代码。

2.优化 HDL 代码

在 MATLAB 或 Simulink 中,通过采用分布式流水线、流式处理和资源共享,可以优化 HDL 代码以实现速度面积目标。在 MATLAB 中,您可以使用高级循环优化,如循环流和循环展开,用于包含 for 循环或矩阵运算的 MATLAB 设计。您可以将 MATLAB 代码中的持续阵列或矩阵变量映射到 Block RAM。在 Simulink 中,您可以实施信号处理和多媒体应用中常用的多声道设计和序列化技术。

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

适用于 MATLAB 的 HDL Workflow Advisor 提供了多个优化选项,如 RAM 映射、流水线、资源共享和循环展开

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

面积速度优化。用一个乘法器取代四个乘法器,降低了设计面积成本,数据率提升4倍。

3. FPGA 设计自动化

HDL 中的 HDL Workflow Advisor 可以自动执行将 MATLAB 算法和 Simulink 模型实施到 Xilinx 和 Altera FPGA 的工作流程。HDL Workflow Advisor 集成了 FPGA 设计流程的所有步骤,包括:

检查 Simulink 模型的 HDL 代码生成兼容性

生成 HDL 代码、HDL 测试工作台和协同仿真模型

通过与 Xilinx ISE 和 Altera Quartus II 集成,执行合成和时序分析

估算设计中的资源使用

使用关键路径时序回注 Simulink 模型

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

使用关键路径时序回注 Simulink 模型。HDL Workflow Advisor 会在 Simulink 中突出显示关键路径时序,以帮助识别速度瓶颈并提高设计性能。

您可以查看合成后时序报告并回注 Simulink 模型,以识别时序约束瓶颈。与合成工具的这一集成实现了快速设计迭代,并显著缩短了 FPGA 设计周期时间。

4.验证 HDL 代码

HDL Coder 可以生成 VHDL 和 Verilog 测试工作台以快速验证生成的 HDL 代码。您可以使用各种选项自定义 HDL 测试工作台,测试HDL 代码。您还可以生成脚本文件,在 HDL 仿真器中自动处理代码编译和仿真。

HDL Coder 与 HDL Verifier 配套使用,可以自动生成两类协同仿真模型:

HDL 协同仿真模型,用于使用 Simulink 和 HDL 仿真器(如 Cadence Incisive 或 Mentor Graphics ModelSim 和 Questa)执行 HDL 协同仿真

FPGA 在环 (FIL) 协同仿真模型,用于使用 Simulink 和 FPGA 板验证设计

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

自动生成 FPGA 在环 (FIL) 模型,用于视频锐化。FIL 仿真可以在硬件上高效地执行设计空间探查。

5. 记录和追踪HDL 代码

HDL Coder 会将生成的代码记录在 HTML 报告中,该报告包括带超链接 的HDL 代码和生成的 HDL 文件表。通过 HDL 代码中的超链接,可以导航到与代码对应的 MATLAB 算法或 Simulink 模块。

为满足 DO-254 等标准对高完整性应用程序的代码可追溯性要求,HDL Coder 让您能够执行以下操作:

从生成的 HDL 代码导航到 MATLAB 代码

在 Simulink 模块与生成的 HDL 代码之间导航,实现双向追踪

插入用户注释和描述,增加代码可读性

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

MATLAB 中的代码生成报告,使您可以从生成的 VHDL 和 Verilog 代码导航到 MATLAB 代码。

将 Simulink Verification and Validation 与 HDL Coder 搭配使用,可以将系统需求作为注释嵌入到从 Simulink 或 Stateflow 生成的 HDL 代码中。这样,您便可以使整个工作流程完全透明,包括从系统需求到生成的 HDL 代码。

关于为FPGA和ASIC生成Verilog和VHDL代码分析和应用介绍

Simulink 中的 HDL 代码生成报告,使您可以在模型与生成的 HDL 代码之间导航。

6.HDL 编码标准

用于工业 FPGA 和 ASIC 应用(如航空航天工业中的 DO-254)的开发过程可能建议使用特定的 RTL 编码指南。HDL Coder 旨在生成满足通用行业编码指南(如 RMM 和 STARC)的 VHDL 和 Verilog 代码。HDL Coder 还可生成报告,帮助您确定 Simulink 模型和 MATLAB 代码中不合适的结构,这样您可以调整您的模型,使生成的 RTL 符合这些编码指南。

HDL Coder 还可以生成第三方 lint 工具脚本,用于检查您生成的 HDL 代码。HDL Coder 自动生成的代码可通过多种行业标准的 lint 工具的检查,例如Atrenta SpyGlass, Real Intent Ascent Lint, Synopsys Leda, 和 Mentor Graphics HDL Designer。HDL Coder 可生成允许与任何 lint 工具集成的自定义脚本。

使用 HDL Coder 生成的代码遵循 RTL 编码原则,通过:

避免 FSM 状态可访问性和编码问题

避免仿真和综合语义之间的差异

避免在实现代价高昂的操作

避免下游工具流问题

遵循命名规则和RTL编码习惯

强 RTL 建模的清晰度并降低复杂性

增强对时钟资源(时钟、启用、复位)和控制信号的检查

支持代码的可测性和可追溯性

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    924

    浏览量

    54727
  • 代码
    +关注

    关注

    30

    文章

    4719

    浏览量

    68211
  • 脚本
    +关注

    关注

    1

    文章

    385

    浏览量

    14810
收藏 人收藏

    评论

    相关推荐

    如何自动生成verilog代码

    介绍几种自动生成verilog代码的方法。
    的头像 发表于 11-05 11:45 119次阅读
    如何自动<b class='flag-5'>生成</b><b class='flag-5'>verilog</b><b class='flag-5'>代码</b>

    FPGAASIC的优缺点比较

    FPGA(现场可编程门阵列)与ASIC(专用集成电路)是两种不同的硬件实现方式,各自具有独特的优缺点。以下是对两者优缺点的比较: FPGA的优点 可编程性强 :FPGA具有高度的可编程
    的头像 发表于 10-25 09:24 178次阅读

    怎么样提高verilog代码编写水平?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:怎么样提高verilog代码编写水平?Cpu 从事DFT工作。目前仅限于写一些简单模块。自学的话如何提高verilog
    发表于 09-25 20:05

    FPGA Verilog HDL代码如何debug?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:Verilog代码如何debug?最近学习fpga,写了不少verilog
    发表于 09-24 19:16

    FPGA芯片架构和资源有深入的理解,精通Verilog HDL、VHDL

    、计算机相关专业,具有良好的专业基础知识。 2.工作年限不限,有工作经验或优秀应届毕业生亦可。 3.对FPGA芯片架构和资源有深入的理解,精通Verilog HDL、VHDL编程语言,熟悉时序约束、时序
    发表于 09-15 15:23

    FPGA Verilog HDL有什么奇技巧?

    技巧或许可以被视为“奇技淫巧”,但需要注意的是,在实际应用中应遵循良好的代码规范和设计原则: 利用 generate 语句生成重复的模块或逻辑:可以根据条件动态地生成电路结构,提高代码
    发表于 09-12 19:10

    【招聘】verilog vhdl FPGA

    1.熟悉FPGA架构及应用,熟悉图像算法的FPGA实现。 2.熟悉verilog vhdl,熟悉Xilinx或Intel等开发工具。 3.有AI算法
    发表于 09-02 15:50

    低功耗FPGA、处理器和ASIC实施启用LVDS链路

    电子发烧友网站提供《低功耗FPGA、处理器和ASIC实施启用LVDS链路.pdf》资料免费下载
    发表于 08-29 09:59 0次下载
    <b class='flag-5'>为</b>低功耗<b class='flag-5'>FPGA</b>、处理器和<b class='flag-5'>ASIC</b>实施启用LVDS链路

    VerilogVHDL转换的经验与技巧总结

    VerilogVHDL语法是互通且相互对应的,如何查看二者对同一硬件结构的描述,可以借助EDA工具,如Vivado,打开Vivado后它里面的语言模板后,也可以对比查看VerilogVHD
    的头像 发表于 04-28 17:47 2079次阅读
    <b class='flag-5'>Verilog</b>到<b class='flag-5'>VHDL</b>转换的经验与技巧总结

    基于FPGA设计频率计方案介绍分享

    内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。 主要特点: •
    发表于 03-31 16:22

    # FPGA 编程如何工作?

    运行 FPGA 的设计主要使用硬件描述语言 (HDL) 进行编码,例如 SystemVerilog、VerilogVHDL。 =#1.= Verilog 如果您想用几行
    发表于 03-30 11:50

    到底什么是ASICFPGA

    的,可以考虑FPGAASIC,能省则省。 最后的话 关于CPU、GPU、FPGAASIC的知识,就
    发表于 01-23 19:08

    值得多看的FPGA 学习路线

    的文章[《高层次综合:解锁FPGA广泛应用的最后一块拼图》但是至少从目前各个公司的FPGA岗位的需求来看,RTL的代码能力还是必须的。 主流的硬件描述语言有VHDL
    发表于 01-02 23:03

    例说Verilog HDL和VHDL区别

    VerilogVHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的VerilogVHDL进行了讨论。
    的头像 发表于 12-20 09:03 2974次阅读
    例说<b class='flag-5'>Verilog</b> HDL和<b class='flag-5'>VHDL</b>区别

    #共建FPGA开发者技术社区,FPGA生态点赞# FPGA入门分享

    FPGA(可编程逻辑门阵列),由逻辑单元、寄存器、静态随机存储器、乘法器、锁相环、IO组成。通过硬件描述语言VerilogVHDL进行代码编程。主要特点是可编程性、并行处理、低功耗
    发表于 11-26 21:52