presentation title - mathworks · 23 使用硬件验证算法 hdl verifier 使用fpga...
TRANSCRIPT
1 © 2014 The MathWorks, Inc.
Presentation Title
By Author
2
快速 FPGA / ASIC 原型设计与验证
单博,MathWorks中国
应用工程师
3
实际案例
HDL代码自动生成,并在Xilinx开发板运行
4
日程
介绍使用基于模型的设计方法进行FPGA设计
实际案例– 音频均衡器
定点化模型
HDL 代码自动生成
速度和面积优化
验证: HDL 联合仿真 和 FPGA在环仿真
总结
5
基于模型的设计:
从概念到产品
集成
算法实现 算
法测
试与
验证
射频和模拟
晶体管 MCU DSP
C/C++
算法设计
环境模型
时序和控制逻辑
数字模型 射频模型 模拟模型
算法
需求 预先研究
FPGA ASIC
VHDL, Verilog
6
日程
介绍使用基于模型的设计方法进行FPGA设计
实际案例– 音频均衡器
定点化模型
HDL 代码自动生成
速度和面积优化
验证: HDL 联合仿真 和 FPGA在环仿真
总结
7
音频均衡器系统要求
• 多种均衡器
• 增益+/-6dB可控
• 5 种用户预定义的均衡器
• Rock
• Pop
• Jazz
• Classical
• Vocal
• 音量控制
• 资源限制在FPGA合理范围内
• 音效良好
8
起点
已定义用于参考的浮点算法
初始化模型中的数据类型已根据人工估计的范围,进行了定点化
浮点模型
定点模型
9
对定点化模型进行优化
Simulink 允许定义有限精度的数据类型
– 字长
– 小数部分字长
Fixed-Point Tool – 检查 信号
min/max, overflow
– 对数据类型进行优
化
Demo
11
日程
介绍使用基于模型的设计方法进行FPGA设计
实际案例– 音频均衡器
定点化模型
HDL 代码自动生成
速度和面积优化
验证: HDL 联合仿真 和 FPGA在环仿真
总结
12
自动产生HDL 代码 Simulink HDL Coder
13
刚刚所见– 自动产生HDL 代码
可读, 可移植
HDL 代码
14
代码与模型双向可追踪
完整保存模型与代码间的层级结构
完整保存信号和端口命名
代码中注释可链接到模型,反之亦然
代码还可以链接到需求(DO-254)
15
日程
介绍使用基于模型的设计方法进行FPGA设计
实际案例– 音频均衡器
定点化模型
HDL 代码自动生成
速度和面积优化
验证: HDL 联合仿真 和 FPGA在环仿真
总结
16
硬件设计挑战:
面积与速度优化
X
X X
X X
X
X MUX DEMUX
SCHEDULING
17
面积速度优化
使用streaming option
减少音频均衡器中乘法器的使用数量
18
所看见的- Workflow Advisor
配置FPGA
物理设计及关键路径高亮
产生HDL 代码
为HDL代码生成,准备模型
选择ASIC, FPGA, 或 FPGA 目标板
20
回顾:自动HDL代码生成 Simulink HDL Coder
可读、可移植的HDL代码
目标ASIC和FPGA
标准Simulink模块库
按键式配置Xilinx 和Altera FPGA
面积和速度优化
模型和代码间双向追溯
21
日程
介绍使用基于模型的设计方法进行FPGA设计
实际案例– 音频均衡器
定点化模型
HDL 代码自动生成
速度和面积优化
验证: HDL 联合仿真 和 FPGA在环仿真
总结
22
使用联合仿真验证HDL代码 HDL Verifier
复用系统级模型作为testbench
与ModelSim 和Cadence Incisive进行联合仿真
闭环验证
23
使用硬件验证算法
HDL Verifier 使用FPGA 硬件进行联合仿真
– 复用系统级模型作为testbench
– 执行大规模仿真
– 增强对于设计可在流片阶段正确工作的信心
支持一系列FPGA开发平台
– 通过千兆网线快速数据交互
24
MATLAB
– 用于建模和生成HDL实现的MATLAB语言相关子集
– 支持HDL的有用的MATLAB功能模块设计模式
Stateflow
– 有限状态机建模 (Mealy, Moore)
– 不同的建模范式 (图形化方法,
状态转换表, 真值表)
– 整合MATLAB代码
MATLAB和Stateflow对HDL Coder的支持 支持HDL的模块
25
基于模型的设计:
从概念到产品
集成
算法实现 算
法测
试与
验证
射频和模拟
晶体管 MCU DSP
C/C++
算法设计
环境模型
时序和控制逻辑
数字模型 射频模型 模拟模型
算法
需求 预先研究
FPGA ASIC
VHDL, Verilog