790 likes | 1.23k Views
FPGA 硬件验证及 逻辑综合软件. 2013 年 4 月 11 日. 内容. FPGA 硬件验证 逻辑综合软件 时序仿真 演示. 一、 FPGA 硬件验证. FPGA 应用举例 FPGA 常用软件 FPGA 验证流程. 应用领域举例. 总线接口 高速数据采集 通信领域 编解码、信号纠错 嵌入式系统 数字图象处理 数字信号处理. Xilinx 公司 ISE Altera 公司 QUARTUS II 1 、开发工具
E N D
FPGA硬件验证及逻辑综合软件 2013年4月11日
内容 FPGA硬件验证 逻辑综合软件 时序仿真 演示
FPGA应用举例 • FPGA常用软件 • FPGA验证流程
应用领域举例 • 总线接口 • 高速数据采集 • 通信领域 编解码、信号纠错 • 嵌入式系统 • 数字图象处理 • 数字信号处理
Xilinx公司 ISE Altera公司 QUARTUS II 1、开发工具 Lattice公司 ispLEVER ACTEL公司 Libero IDE (Microsemi收购) 2、开发语言 Verilog or VHDL FPGA公司及软件
国产FPGA • 京微雅格(Capital Microelectronics),以前又称雅格罗技(Agate Logic)。 • 2003年在美国硅谷创办。 • 2005年与清华大学合作。 • FPGA+CPU+RAM+Flash可配置应用平台(CAP)芯片: • Astro系列(AS1E5F1K、AS2E5F1K) • Angelo系列(AG1F4N4) • http://www.capital-micro.com/index.htm
FPGA流程 第三方软件
Xilinx Spartan 3 xc3s400 为例 1.创建新工程 2.添加设计文件(.v或者.vhd) 3.分配IO管脚 4.综合 5.布局布线 6.下载 7.测试
创建新工程1/2 • File-->New project
创建新工程2/2 接下来一直Next.. Spartan3 XC3S400 FT256 -4
添加设计文件 鼠标右键
分配IO管脚2/2 添加管脚约束文件 上一步分配完管脚,保存,自动生成这个ucf文件。
综合 鼠标单击选中顶 层模块 fsk_modulator, 双击Synthesize
实现 鼠标单击选中 顶层模块 fsk_modulator, 双击Implement Design
测试1/2 FPGA开发板 下载线
功能要求 功 能 要 求 系统建模 系统建模 行为设计 不满足 Verilog / VHDL ( ) 不满足 电路仿真 行为仿真 满足 满足 综合 、 优化 手工设计 网表 版图 不满足 不满足 时序仿真 满足 后仿真 版图自动 满足 布局 、 布线 流片 、 封装 、 测试 不满足 后仿真 满足 流片 、 封装 、 测试 IC典型流程 数字VLSI 流程 模拟IC 流程 Matlab Matlab Modelsim, Questasim, Muxplus II Spectre Virtuoso, laker Design Compiler Spectre Astro, Encounter Calibre Modelsim, Questasim, Muxplus II
逻辑综合相关概念 • 逻辑综合工具--Design Compiler
逻辑综合相关概念 • 什么是逻辑综合? • 时间路径 • 时序:setup/hold • 可综合verilog • 基本术语
什么是逻辑综合? • 综合就是把HDL 代码转换为门级电路的过程,用公式表示 就是:综合= 翻译 + 优化 + 映射( Synthesis = Translation + Optimization + Mapping )
assign mux_out=!mux_control&mux_in1 |mux_control&mux_in2|mux_in1&mux_in2; //assign mux_out=mux_control ?mux_in1:mux_in2; 翻译 映射
时间路经 • 时间路径:信号传播经过的逻辑通道,简称路径。 • 起点一般为:基本输入端口或寄存器的时钟端口; • 终点一般为:基本输出端口或寄存器的数据端口。 • 时间路径通常分为4种: 基本输入到基本输出: 基本输入到寄存器: 寄存器到基本输出: 寄存器到寄存器:
时间路经 基本输入到基本输出 基本输入到寄存器 寄存器到寄存器 寄存器到基本输出
时序:setup/hold • 建立(setup)时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。 • 保持(hold)时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。 • 裕度(slack):是时序要求与实际时序之间的差值,反映了时序是否满足要求。裕度为正,满足要求;反之不满足。 裕度=要求的时间-实际的时间
可综合的Verilog(1) HDL语言:是“硬件描述语言” ,即Hardware Description Language, 而不是“硬件设计语言”,Hardware Design Language.因此电路设计必须遵循RTL的模式来编写代码,而不能随心所欲地只写出符合语法的代码。 下面就常用的可综合Verilog编写格式做一简单总结。
逻辑基本术语 • 库(Library) • 设计(Design) • 单元(Cell or Instance) • 参考(Reference) • 端口(Port) • 管脚(Pin) • 线网(Net) • 时钟(Clock)
逻辑综合基本术语—库 库:一组逻辑单元的集合。 • 库包括库申明、库属性、库应用环境和每个单元的功能描述、时间延时、面积、功耗等。 • 逻辑综合库包含两种格式: 1.自由文件格式 .lib(任何文本编辑器都可以打开) 2. synopsys应用程序可使用的格式.db(不可查看) 存放路径 Astro布局布线库 LVS文件 文本文件,datasheet, handbook 可测性矢量压缩文件 标准单元版图 Cadence布局布线库 物理参数库 符号库 逻辑综合库 标准单元verilog模型 标准单元清单 库说明文件
逻辑综合基本术语 design module top(A,B,C,D,CLK,OUT1); input A,B,C,D,CLK; output OUT1; …. INV U2(.A(BUS0),.Z(INV0)); …. endmodule port reference cell pin
逻辑综合工具介绍 • Synopsys公司:Design Compiler(DC)和Synplify • Cadence公司:Encounter RTL Compiler 和 BuildGates • Magma公司:Talus RTL • Mentor公司: Precision RTL • 以上综合工具都具有图形界面和命令窗口
DC启动 工作站启动方法: 创建启动软件目录 mkdir syn 进入到启动软件目录 cd syn source /opt/demo/synopsys.env design_vision & 注:先不要启动软件,看完53页内容在启动软件。
DC界面 输入命令的地方
逻辑综合流程 1.HDL准备 2.准备工艺库 3.读入HDL代码 4.添加约束 5.综合 6.查看报告 7.文件导出
1.HDL准备 • 软件仿真过没有问题的设计文件 • 带IO的顶层文件。
module top_pad (clk_pad, en_pad, data_in_pad, fsk_out_pad ); input clk_pad,en_pad,data_in_pad; output fsk_out_pad; fsk_modulator fsk_modulator(clk_wire,en_wire,data_in_wire,fsk_out_wire); PULLHS1 pull_high (.Z(high_wire)); PULLHS0 pull_low (.Z(low_wire)); //input PBCD2RN data_in_block (.PAD(data_in_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(data_in_wire)); PBCD2RN clk_block (.PAD(clk_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(clk_wire)); PBCD2RN en_block (.PAD(en_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(en_wire)); //output PBCD2RN fsk_out_block (.PAD(fsk_out_pad),.IE(low_wire), .OEN(low_wire), .REN(high_wire), .I(fsk_out_wire)); endmodule 查看库的handbook