时序仿真课件_第1页
时序仿真课件_第2页
时序仿真课件_第3页
时序仿真课件_第4页
时序仿真课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA硬件验证及ASIC逻辑综合浙江大学ICLAB实验室韩 雁内容FPGA硬件验证逻辑综合时序仿真一般逻辑综合之后只需要做门级功能仿真即可,没必要加上延时进行时序仿真,且因为逻辑综合没有修hold,所以加上延时也很可能会报错(存在hold违反)。只有布局布线完成后才有进行时序仿真的必要。2022/8/101/78一、 FPGA硬件验证2022/8/102/78一、FPGA硬件验证二、逻辑综合三、时序仿真主要内容FPGA应用举例FPGA常用软件FPGA验证流程2022/8/103/74一、FPGA硬件验证二、逻辑综合三、时序仿真应用领域举例总线接口高速数据采集通信领域 编解码、信号纠错嵌入式系

2、统数字图像处理2022/8/104/78一、FPGA硬件验证二、逻辑综合三、时序仿真FPGA公司及软件 Xilinx公司 ISE Altera公司 QUARTUS II 1、开发工具 Lattice公司 ispLEVER ACTEL公司 Libero IDE (Microsemi收购) 2、开发语言 Verilog or VHDL2022/8/105/78一、FPGA硬件验证二、逻辑综合三、时序仿真XilinxISE界面 2022/8/106/78一、FPGA硬件验证二、逻辑综合三、时序仿真AlteraQuartus II界面2022/8/107/78一、FPGA硬件验证二、逻辑综合三、时序仿

3、真LatticeispLEVER界面2022/8/108/78一、FPGA硬件验证二、逻辑综合三、时序仿真ActelLibero界面2022/8/109/78一、FPGA硬件验证二、逻辑综合三、时序仿真FPGA流程2022/8/1010/78第三方软件一、FPGA硬件验证二、逻辑综合三、时序仿真Xilinx ISE设计流程1.创建新工程2.添加设计文件(.v或者.vhd)3.分配IO管脚4.综合5.布局布线6.下载7.测试2022/8/1011/78以Spartan 3 xc3s400 为例一、FPGA硬件验证二、逻辑综合三、时序仿真创建新工程1/2File-New project 2022/

4、8/1012/78一、FPGA硬件验证二、逻辑综合三、时序仿真创建新工程2/2接下来一直Next.2022/8/1013/78Spartan3XC3S400FT256-4不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法,“序号越高,速度等级也越高”这是Xilinx FPGA的排序方法However for FPGAs, they dont use the same definition for speed grade. Originally speed grades for FPGAs represented the time through a look up t

5、able but now the speed grade doesnt actually repesent a timing path. I am not sure if it is the same for other vendors, but for Xilinx FPGAs higher numbers are faster. Each speed grade increment is 15% faster than the one before it. So a -5 is 10% faster than a -4 speed grade.一、FPGA硬件验证二、逻辑综合三、时序仿真添

6、加设计文件鼠标右键2022/8/1014/78一、FPGA硬件验证二、逻辑综合三、时序仿真分配IO管脚1/22022/8/1015/78一、FPGA硬件验证二、逻辑综合三、时序仿真分配IO管脚2/2添加管脚约束文件2022/8/1016/78上一步分配完管脚,保存,自动生成这个ucf文件。一、FPGA硬件验证二、逻辑综合三、时序仿真综合鼠标单击选中顶层模块fsk_modulator,双击Synthesize2022/8/1017/78一、FPGA硬件验证二、逻辑综合三、时序仿真实现鼠标单击选中顶层模块fsk_modulator,双击ImplementDesign2022/8/1018/78一、

7、FPGA硬件验证二、逻辑综合三、时序仿真生成下载文件-.bit格式2022/8/1019/78一、FPGA硬件验证二、逻辑综合三、时序仿真下载文件1/32022/8/1020/78一、FPGA硬件验证二、逻辑综合三、时序仿真下载文件2/32022/8/1021/78一、FPGA硬件验证二、逻辑综合三、时序仿真下载文件3/32022/8/1022/78一、FPGA硬件验证二、逻辑综合三、时序仿真测试1/22022/8/1023/78下载线FPGA开发板一、FPGA硬件验证二、逻辑综合三、时序仿真测试2/22022/8/1024/78一、FPGA硬件验证二、逻辑综合三、时序仿真Xilinx ISE

8、的ChipScopeISE ChipScope可以充当示波器,或者用来调试程序,查看电路中某些节点的信号。教程链接:/s/1jI4MotC/s/1i5pVnqX如何防止软件将某些信号优化掉?假如我们要观察一个信号cnt,定义为reg 10:0 cnt,那么就按照文档中的介绍,要保持此信号不被综合工具给优化掉,则设置: (* KEEP = “TRUE” *) reg 10:0 cnt 或者(* keep= “true” *) reg 10:0 cnt 这样就可以实现ChipScope对该寄存器的观察而不被优化掉2022/8/1025/78一、FPGA硬件验证二、逻辑综合三、时序仿真2022/8/

9、1026/78二、 逻辑综合一、FPGA硬件验证二、逻辑综合三、时序仿真IC典型流程2022/8/1027/78功能要求系统建模电路仿真手工设计版图后仿真满足满足不满足不满足行为设计(Verilog/VHDL)行为仿真时序仿真版图自动布局、布线流片、封装、测试不满足满足满足不满足不满足 后仿真综合、优化网表满足流片、封装、测试功能要求系统建模MatlabModelsimQuestasimMaxplus IIDesign CompilerAstro(IC CompilerIC Compiler IIEncounterInnovus)数字VLSI 流程MatlabSpectreVirtuoso,L

10、akerCalibre参数提取模拟IC 流程半定制?全定制一、FPGA硬件验证二、逻辑综合三、时序仿真主要内容逻辑综合相关概念逻辑综合工具-Design Compiler 2022/8/1028/78一、FPGA硬件验证二、逻辑综合三、时序仿真逻辑综合相关概念什么是逻辑综合?时间路径时序基本术语2022/8/1029/78一、FPGA硬件验证二、逻辑综合三、时序仿真什么是逻辑综合?综合就是把HDL 代码转换为门级电路的过程,用公式表示:综合= 翻译 + 优化 + 映射(见下页图)(Synthesis=Translation + Optimization + Mapping) 2022/8/10

11、30/78一、FPGA硬件验证二、逻辑综合三、时序仿真assign mux_out=!mux_control&mux_in1 |mux_control&mux_in2|mux_in1&mux_in2;翻译assign mux_out=mux_control ?mux_in1:mux_in2;优化+映射RTL源代码通用布尔门(GTECH)目标工艺库中的门2022/8/1031/78一、FPGA硬件验证二、逻辑综合三、时序仿真时间路径时间路径:信号传播经过的逻辑通道,简称路径。起点一般为:基本输入端口或寄存器的时钟端口;终点一般为:基本输出端口或寄存器的数据端口。时间路径通常分为4种:基本输入到基

12、本输出基本输入到寄存器数据端口寄存器时钟端口到基本输出寄存器时钟端口到寄存器数据端口2022/8/1032/78一、FPGA硬件验证二、逻辑综合三、时序仿真时间路径2022/8/1033/78path1: 基本输入到寄存器数据端口path2: 基本输入到基本输出path3: 寄存器时钟端口到寄存器数据端口path4: 寄存器时钟端口到基本输出一、FPGA硬件验证二、逻辑综合三、时序仿真时序:clock2022/8/1034/78一、FPGA硬件验证二、逻辑综合三、时序仿真Jitter时序:setup/hold建立(setup)时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。保持(h

13、old)时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。裕度(slack):是时序要求与实际时序之间的差值,反映了时序是否满足要求。裕度为正,满足要求;反之不满足。 裕度要求的时间-实际的时间2022/8/1035/78一、FPGA硬件验证二、逻辑综合三、时序仿真DC基本术语库(Library)设计(Design) 单元(Cell or Instance)参考(Reference)端口(Port)管脚(Pin)线网(Net)时钟(Clock)2022/8/1036/78一、FPGA硬件验证二、逻辑综合三、时序仿真DC基本术语库库:一组逻辑单元的集合。库包括库申明、库属性、库应用环境

14、和每个单元的功能描述、时间延时、面积、功耗等。逻辑综合库包含两种格式: 1.自由文件格式 .lib(任何文本编辑器都可以打开) 2. synopsys应用程序可使用的格式.db(不可查看)2022/8/1037/78Astro布局布线库LVS文件文本文件,datasheet, handbook可测性矢量压缩文件标准单元版图Cadence布局布线库物理参数库符号库逻辑综合库标准单元verilog模型标准单元清单库说明文件存放路径一、FPGA硬件验证二、逻辑综合三、时序仿真DC基本术语module top(A,B,C,D,CLK,OUT1);input A,B,C,D,CLK;output OUT

15、1; .INV U2(.A(BUS0),.Z(INV0);.endmodule2022/8/1038/78designportreferencecellpinclocknet一、FPGA硬件验证二、逻辑综合三、时序仿真逻辑综合工具介绍Design Compiler, Synplify, ISE XST, Precision RTL(Mentor), RTL CompilerDesign Compiler (DC)中包含了多种工具,如DFT Compiler,Power Compiler,HDL Compiler,Library Compiler等,使得DC具有强大的功能,成为业界最流行的综合工

16、具。用户只需输入满足要求的HDL描述和设计约束,就可能得到较为优化的门级综合网表。2022/8/1039/78一、FPGA硬件验证二、逻辑综合三、时序仿真Design Compiler介绍Design Compiler有两种界面供用户使用,一种是命令界面,一种是图形界面。 dc_shell (命令界面) design_vision (图形界面)Design Compiler支持TCL(Tool Command Language)语言初学者通过图形界面,然后熟悉DC的综合命令,采用批处理的方式提高综合的工作效率。2022/8/1040/78一、FPGA硬件验证二、逻辑综合三、时序仿真DC启动(非

17、常重要! )工作站启动方法:1.打开Terminal,创建syn目录(输入: mkdir syn)2.进入到软件启动目录syn(输入 :cd syn )3.拷贝软件启动文件 (输入:cp /home/class/.synopsys_dc.setup .)4.启动软件source /opt/demo/synopsys.envdesign_vision &2022/8/1041/78一、FPGA硬件验证二、逻辑综合三、时序仿真DC界面2022/8/1042/78 输入命令的地方一、FPGA硬件验证二、逻辑综合三、时序仿真逻辑综合流程1.HDL准备2.准备工艺库3.读入HDL代码4.添加约束5.综合

18、6.查看报告7.文件导出2022/8/1043/78一、FPGA硬件验证二、逻辑综合三、时序仿真1.HDL准备设计文件 fsk_modulator.v带IO的顶层文件在终端下输入命令 cp /home/class/top_pad.v ./ 将顶层IO文件复制到自己的目录下注:后边的./可以换成自己放Verilog文件的目录)2022/8/1044/78一、FPGA硬件验证二、逻辑综合三、时序仿真带IO的顶层文件module top_pad (clk_pad, en_pad, data_in_pad, fsk_out_pad );input clk_pad,en_pad,data_in_pad;

19、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 PISRN data_in_block (.PAD(data_in_pad),.IE(high_wire),.C(data_in_wire);PISRN clk_block (.PAD(clk_pad),.IE(high_wire),.C(clk_wire);PISRN e

20、n_block (.PAD(en_pad),.IE(high_wire),.C(en_wire);/output PBS2RN fsk_out_block (.PAD(fsk_out_pad),.IE(low_wire), .OEN(low_wire), .I(fsk_out_wire); endmodule2022/8/1045/78查看库的handbook一、FPGA硬件验证二、逻辑综合三、时序仿真2.准备工艺库1/3工艺库要到相关Foundry代工厂网站下载,上传至服务器。准备软件启动文件.synopsys_dc.setup .synopsys_dc.setup 定义工艺库的路径和其他用

21、于逻辑综合的参数。在启动软件的时候,DC按下列顺序读入启动文件的:1) Synopsys安装目录下的启动文件$synopsys/admin/setup2) 用户根目录下的启动文件3) 项目工作目录下的启动文件2022/8/1046/78一、FPGA硬件验证二、逻辑综合三、时序仿真.synopsys_dc.setup文件set lib_path /home/smic/smic_40/SCC40NLL_HS_RVT_V0p1aset smic_stdlib_path $lib_path/synopsys/1.1v/set smic_iolib_path /home/smic/smic_40/SP4

22、0NLLD2RN_3P3V_V0p2/syn/3p3v/set smic_stdsymlib_path $lib_path/Symbol/set search_path $search_path $smic_stdlib_path $smic_iolib_path $smic_stdsymlib_path set target_library list scc40nll_hs_rvt_ff_v1p21_-40c_basic.db scc40nll_hs_rvt_ss_v0p99_125c_basic.db scc40nll_hs_rvt_tt_v1p1_25c_basic.dbset link

23、_library list * SP40NLLD2RN_3P3V_V0p1_ff_V1p21_-40C.db SP40NLLD2RN_3P3V_V0p1_ss_V0p99_125C.db SP40NLLD2RN_3P3V_V0p1_tt_V1p10_25C.db scc40nll_hs_rvt_ff_v1p21_-40c_basic.db scc40nll_hs_rvt_ss_v0p99_125c_basic.db scc40nll_hs_rvt_tt_v1p1_25c_basic.dbset symbol_library list SCC40NLL_HS_RVT_V0p1.sdb2022/8

24、/1047/78一、FPGA硬件验证二、逻辑综合三、时序仿真2.准备工艺库2/3目标库(targe_library):标准单元库连接库(link_library):所有库单元,包括:标准单元库,IO库,RAM等宏单元库符号库(symbol_library):元件的图形符号 一定要按照43页的操作,拷贝.synopsys_dc.setup文件到syn目录,再在syn目录中启动DC软件。2022/8/1048/78一、FPGA硬件验证二、逻辑综合三、时序仿真2.准备工艺库3/3软件启动后 要先查看库添加成功与否2022/8/1049/78一、FPGA硬件验证二、逻辑综合三、时序仿真3.读入设计文件

25、1/3DC提供了下面两种方式读入设计: 1.read命令 2.analyze&elaborate命令(先分析语法等,再构成具体逻辑)2022/8/1050/78一、FPGA硬件验证二、逻辑综合三、时序仿真3.读入设计文件2/32022/8/1051/78read方式下,一次只能读入一个文件,要采取自下而上的方式。一、FPGA硬件验证二、逻辑综合三、时序仿真3.读入设计文件3/3read -format verilog list /xxx/rtl/fsk_modulator.vread -format verilog list /xxx/rtl/top_pad.v2022/8/1052/78一、

26、FPGA硬件验证二、逻辑综合三、时序仿真4.添加约束2022/8/1053/78工作温度条件一、FPGA硬件验证二、逻辑综合三、时序仿真4.添加约束set_operating_conditions -min_library scc40nll_hs_rvt_ff_v1p21_-40c_basic -min ff_v1p21_-40c -max_library scc40nll_hs_rvt_ss_v0p99_125c_basic -max ss_v0p99_125c -analysis_type bc_wc2022/8/1054/78一、FPGA硬件验证二、逻辑综合三、时序仿真4.设置负载打开电

27、路图,选中要设置负载的输出管脚。set_load 5 all_outputs2022/8/1055/78一、FPGA硬件验证二、逻辑综合三、时序仿真4.创建时钟2022/8/1056/78一、FPGA硬件验证二、逻辑综合三、时序仿真4.创建时钟create_clock -name clk -period 15 -waveform list 0 7.5 clk_padset_clock_latency 1.0 all_clocksset_clock_uncertainty -setup 1.0 clkset_clock_uncertainty -hold 0.5 clkset_clock_tra

28、nsition 1 get_clocks clkset_dont_touch_network list clk_pad2022/8/1057/78一、FPGA硬件验证二、逻辑综合三、时序仿真5.综合compile2022/8/1058/78一、FPGA硬件验证二、逻辑综合三、时序仿真综合前后电路结构比较2022/8/1059/78综合前综合后一、FPGA硬件验证二、逻辑综合三、时序仿真6.时序报告report_timing -delay maxreport_timing -delay min2022/8/1060/78一、FPGA硬件验证二、逻辑综合三、时序仿真2022/8/1061/78一、

29、FPGA硬件验证二、逻辑综合三、时序仿真2022/8/1062/78一、FPGA硬件验证二、逻辑综合三、时序仿真7.文件导出top_pad.sv和top_pad.sdc提供给布局布线工具去做后端。在启动软件的目录里面创建netlist目录 命令:mkdir netlist(在Terminal里面输入,不是软件命令窗口)导出.sv文件到netlist目录: 1)change_names -hierarchy -rules verilog 2)write -format verilog -hierarchy -output ./netlist/top_pad.sv (在软件的命令栏输入,不是在Te

30、rminal里)在启动软件的目录里面创建sdc目录命令:mkdir sdc (在Terminal里面输入,不是软件命令窗口)导出.sdc文件到sdc目录:write_sdc ./sdc/top_pad.sdc(在软件的命令栏输入,不是在Terminal里)top_pad.sdf文件是延迟文件,做时序仿真用。在启动软件的目录里面创建sdf目录 命令:mkdir sdf导出.sdf文件到sdf 目录里: write_sdf -version 2.1 ./sdf/top_pad.sdf2022/8/1063/78一、FPGA硬件验证二、逻辑综合三、时序仿真2022/8/1064/78一、FPGA硬件

31、验证二、逻辑综合三、时序仿真2022/8/1065/78三、 时序仿真一、FPGA硬件验证二、逻辑综合三、时序仿真主要内容时序仿真概念时序仿真方法2022/8/1066/78一、FPGA硬件验证二、逻辑综合三、时序仿真时序仿真概念功能仿真:不包含延时信息,只关注实现功能的理想条件下的仿真。时序仿真:带有延迟信息的仿真,主要是看时序和功能是否同时满足。延时主要包括:cell delay和net delay不同于静态时序分析(STA)。含延时的动态仿真既能验证设计的功能,也能验证设计的时序,但是验证都不完全:动态仿真无法将设计中的每条路径都覆盖到,且功能正确性的仿真强烈的依赖于测试向量。STA只能

32、验证时序,无法验证功能。逻辑综合和布局布线完都可以做时序仿真,但是逻辑综合后一般只需要做门级功能仿真即可,没有必要做时序仿真,不需要加上sdf延时文件进行时序仿真,且因为逻辑综合没有修hold,所以加上延时也很可能会报错(存在hold违反)。此外,并不是说不加上sdf文件进行仿真进行的就是功能仿真,因为STD库里面也是存在延时的,如何进行功能仿真?仿真脚本里面加 +nospecify。只有布局布线完成后才有进行时序仿真的必要。布局布线完的时序仿真也叫后仿真,不同于模拟电路后仿真。2022/8/1067/78一、FPGA硬件验证二、逻辑综合三、时序仿真时序仿真方法1.将sdf文件添加到Testb

33、ench中2.创建新的工程3.添加逻辑综合完导出的网表文件top_pad.sv4.添加标准单元的Verilog模型文件/home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a/verilog/SCC40NLL_HS_RVT_V0p1.v5.添加输入输出IO的Verilog模型文件/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/verilog/SP40NLLD2RNP_3P3V_V0p1.v6.编译及仿真2022/8/1068/78这里仅用综合后的网表以及DC导出的sdf文件演示一下时序仿真的方法,但是实际实际设计中只需要在该步做不包含任何延时的功能仿真即可!一、FPGA硬件验证二、逻辑综合三、时序仿真sdf文件添加到Testbench在testbench中添加如下代码:initialbegin$sdf_annotate(“/home/XXX(学号)/XXX(启动逻辑综合软件的目录)/sdf/top_pad.sdf, top_tb.fsk_modulator);end 2022/8/1069/78Testbench模块名称DUT实例化名称一、FPGA硬件验证二、逻辑综合三、时序仿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论