在 fpga、asic 或 soc 项目中,不同成员可以共同制定高抽象级别的早期关键决策,然后生成代码和模型以推进实现。
借助 matlab®和 simulink®,您可以:
- 对各种架构选项进行建模和仿真
- 面向实现自上而下完善算法
- 实现定点量化
- 生成产品级 rtl 和嵌入式 c 代码
- 生成可用于数字或模拟仿真环境的验证模型
- 遵循功能安全认证工作流
“simulink 有助于系统架构师和硬件设计人员进行沟通。它就像一种共用的语言,我们通过它来交换知识、构想和设计。simulink 和 hdl coder 使我们能够专注于开发算法和通过仿真完善设计,而不是检查 vhdl 语法和编码规则。”
marcel van bakel, philips healthcare
使用 matlab 进行产品级设计和验证
soc 架构和自上而下的设计
算法开发人员可以与系统架构师、数字工程师、混合信号工程师以及验证工程师协作,在高抽象级别探索架构选项。这有助于您的团队采用分区策略开展试验,进而借助硬件微架构和定点量化等实现细节来逐步完善各分区。支持 hdl 代码生成的模块有 300 多个,包括经产品级验证的硬件 ip 模块和子系统。
采用这一自上而下的流程,您可以不断集成更多详细模型进行系统级仿真,从而尽早消除功能和性能问题。通过这一流程,您可以创建和管理系统级测试案例套件,并衡量模型覆盖率,从而为顺利实现再添砝码。
了解更多
验证模型生成
您可以直接从支持 c 代码生成的 matlab 函数或 simulink 模型生成模型,以加快创建 rtl 验证环境。这可确保您准确地捕获参考模型的高级行为以及对 rtl 仿真的激励。如果出现高级设计变更,可以重新生成模型。
这些验证组件使用 systemverilog 直接编程接口 (dpi),可用于各种支持 systemverilog 的仿真器。如果您的 rtl 验证环境使用通用验证方法 (uvm),则您可以选择从 simulink 生成 uvm 组件。
产品级代码生成
在传统设计流程中,手动编写规范文档以及基于该文档写代码时,往往会引入 bug。使用 matlab 和 simulink 执行系统级验证后,您可以直接从这些已验证的实现模型生成 hdl 和 c 代码。
生成的 hdl 可读,可追溯至其源模型,并且不依赖于特定目标。您可以控制(例如流水线插入)、(例如资源共享),以及多种代码样式和结构选项。您可以通过代码生成菜单自动运行赛灵思 (xilinx®) 和英特尔 (intel®) 的综合工具,也可以生成脚本以运行任何 fpga 或 asic 综合工具。