740 likes | 927 Views
常见问题汇总. 一、 linux 系统命令操作错误 注意事项: 1 、用户名是 学号 ,按照学号为 单数 或 双数 来选择服务器 2 、输入命令一律使用英文输入法,标点符号为半角 3 、注意区分大小写 4 、 linux 系统输入 密码 的时候是 没有字符显示 的,请注意. 常见问题汇总. 二、 Modelsim 仿真 : 一定要在 Testbench 中加 $stop 或者 $finish 来结束仿真。 3110104008 。 三、代码的可综合性: 注意写的代码一定要用可综合语句,尽量别使用双边沿时钟触发。.
E N D
常见问题汇总 一、linux系统命令操作错误 注意事项: 1、用户名是学号,按照学号为单数或双数来选择服务器 2、输入命令一律使用英文输入法,标点符号为半角 3、注意区分大小写 4、linux系统输入密码的时候是没有字符显示的,请注意
常见问题汇总 二、Modelsim 仿真: 一定要在Testbench 中加$stop 或者$finish 来结束仿真。3110104008。 三、代码的可综合性: 注意写的代码一定要用可综合语句,尽量别使用双边沿时钟触发。
FPGA硬件验证及ASIC逻辑综合软件 2014年3月31日 lxp@zju.edu.cn
内容 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):是时序要求与实际时序之间的差值,反映了时序是否满足要求。裕度为正,满足要求;反之不满足。 裕度=要求的时间-实际的时间
逻辑基本术语 • 库(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启动(非常重要!!! ) 工作站启动方法: 1.打开Terminal,创建syn目录(输入: mkdir syn) 2.进入到软件启动目录syn(输入 :cd syn ) 3. 拷贝软件启动文件 (输入:cp /tmp/.synopsys_dc.setup .) 4.启动软件 source /opt/demo/synopsys.env design_vision &
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
2.准备工艺库1/3 工艺库要到相关Foundry代工厂网站下载,上传至服务器。 准备软件启动文件.synopsys_dc.setup .synopsys_dc.setup 定义工艺库的路径和其他用于逻辑综合的参数。 在启动软件的时候,DC按下列顺序读入启动文件的。 1) Synopsys安装目录下的启动文件: $synopsys/admin/setup 2) 用户根目录下的启动文件; 3) 项目工作目录下的启动文件;
2.准备工艺库2/3 目标库(targe_library):标准单元库 连接库(link_library):所有库单元,包括:标准单元,IO,RAM等宏单元。 符号库(symbol_library):元件的图形符号。 一定要按照42页的操作,拷贝.synopsys_dc.setup文件到syn目录, 再在syn目录中启动DC软件。
2.准备工艺库3/3 软件启动后 要先查看库添加成功与否
3.读入设计文件1/3 DC提供了下面两种方式读入设计: 1.read命令 2.analyze&elaborate命令(先分析语法等,再构成具体逻辑)