presentation title - mathworks · 23 使用硬件验证算法 hdl verifier 使用fpga...

23
1 © 2014 The MathWorks, Inc. Presentation Title By Author

Upload: others

Post on 17-Mar-2020

35 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

1 © 2014 The MathWorks, Inc.

Presentation Title

By Author

Page 2: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

2

快速 FPGA / ASIC 原型设计与验证

单博,MathWorks中国

应用工程师

Page 3: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

3

实际案例

HDL代码自动生成,并在Xilinx开发板运行

Page 4: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

4

日程

介绍使用基于模型的设计方法进行FPGA设计

实际案例– 音频均衡器

定点化模型

HDL 代码自动生成

速度和面积优化

验证: HDL 联合仿真 和 FPGA在环仿真

总结

Page 5: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

5

基于模型的设计:

从概念到产品

集成

算法实现 算

法测

试与

验证

射频和模拟

晶体管 MCU DSP

C/C++

算法设计

环境模型

时序和控制逻辑

数字模型 射频模型 模拟模型

算法

需求 预先研究

FPGA ASIC

VHDL, Verilog

Page 6: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

6

日程

介绍使用基于模型的设计方法进行FPGA设计

实际案例– 音频均衡器

定点化模型

HDL 代码自动生成

速度和面积优化

验证: HDL 联合仿真 和 FPGA在环仿真

总结

Page 7: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

7

音频均衡器系统要求

• 多种均衡器

• 增益+/-6dB可控

• 5 种用户预定义的均衡器

• Rock

• Pop

• Jazz

• Classical

• Vocal

• 音量控制

• 资源限制在FPGA合理范围内

• 音效良好

Page 8: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

8

起点

已定义用于参考的浮点算法

初始化模型中的数据类型已根据人工估计的范围,进行了定点化

浮点模型

定点模型

Page 9: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

9

对定点化模型进行优化

Simulink 允许定义有限精度的数据类型

– 字长

– 小数部分字长

Fixed-Point Tool – 检查 信号

min/max, overflow

– 对数据类型进行优

Demo

Page 10: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

11

日程

介绍使用基于模型的设计方法进行FPGA设计

实际案例– 音频均衡器

定点化模型

HDL 代码自动生成

速度和面积优化

验证: HDL 联合仿真 和 FPGA在环仿真

总结

Page 11: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

12

自动产生HDL 代码 Simulink HDL Coder

Page 12: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

13

刚刚所见– 自动产生HDL 代码

可读, 可移植

HDL 代码

Page 13: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

14

代码与模型双向可追踪

完整保存模型与代码间的层级结构

完整保存信号和端口命名

代码中注释可链接到模型,反之亦然

代码还可以链接到需求(DO-254)

Page 14: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

15

日程

介绍使用基于模型的设计方法进行FPGA设计

实际案例– 音频均衡器

定点化模型

HDL 代码自动生成

速度和面积优化

验证: HDL 联合仿真 和 FPGA在环仿真

总结

Page 15: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

16

硬件设计挑战:

面积与速度优化

X

X X

X X

X

X MUX DEMUX

SCHEDULING

Page 16: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

17

面积速度优化

使用streaming option

减少音频均衡器中乘法器的使用数量

Page 17: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

18

所看见的- Workflow Advisor

配置FPGA

物理设计及关键路径高亮

产生HDL 代码

为HDL代码生成,准备模型

选择ASIC, FPGA, 或 FPGA 目标板

Page 18: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

20

回顾:自动HDL代码生成 Simulink HDL Coder

可读、可移植的HDL代码

目标ASIC和FPGA

标准Simulink模块库

按键式配置Xilinx 和Altera FPGA

面积和速度优化

模型和代码间双向追溯

Page 19: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

21

日程

介绍使用基于模型的设计方法进行FPGA设计

实际案例– 音频均衡器

定点化模型

HDL 代码自动生成

速度和面积优化

验证: HDL 联合仿真 和 FPGA在环仿真

总结

Page 20: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

22

使用联合仿真验证HDL代码 HDL Verifier

复用系统级模型作为testbench

与ModelSim 和Cadence Incisive进行联合仿真

闭环验证

Page 21: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

23

使用硬件验证算法

HDL Verifier 使用FPGA 硬件进行联合仿真

– 复用系统级模型作为testbench

– 执行大规模仿真

– 增强对于设计可在流片阶段正确工作的信心

支持一系列FPGA开发平台

– 通过千兆网线快速数据交互

Page 22: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

24

MATLAB

– 用于建模和生成HDL实现的MATLAB语言相关子集

– 支持HDL的有用的MATLAB功能模块设计模式

Stateflow

– 有限状态机建模 (Mealy, Moore)

– 不同的建模范式 (图形化方法,

状态转换表, 真值表)

– 整合MATLAB代码

MATLAB和Stateflow对HDL Coder的支持 支持HDL的模块

Page 23: Presentation Title - MathWorks · 23 使用硬件验证算法 HDL Verifier 使用FPGA 硬件进行联合仿真 –复用系统级模型作为testbench –执行大规模仿真 –增强对于设计可在流片阶段正确工作的信心

25

基于模型的设计:

从概念到产品

集成

算法实现 算

法测

试与

验证

射频和模拟

晶体管 MCU DSP

C/C++

算法设计

环境模型

时序和控制逻辑

数字模型 射频模型 模拟模型

算法

需求 预先研究

FPGA ASIC

VHDL, Verilog