時序仿真課件_第1頁
時序仿真課件_第2頁
時序仿真課件_第3頁
時序仿真課件_第4頁
時序仿真課件_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、FPGA硬件驗證及ASIC邏輯綜合浙江大學(xué)ICLAB實驗室韓 雁內(nèi)容FPGA硬件驗證邏輯綜合時序仿真一般邏輯綜合之后只需要做門級功能仿真即可,沒必要加上延時進行時序仿真,且因為邏輯綜合沒有修hold,所以加上延時也很可能會報錯(存在hold違反)。只有布局布線完成后才有進行時序仿真的必要。2022/8/101/78一、 FPGA硬件驗證2022/8/102/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真主要內(nèi)容FPGA應(yīng)用舉例FPGA常用軟件FPGA驗證流程2022/8/103/74一、FPGA硬件驗證二、邏輯綜合三、時序仿真應(yīng)用領(lǐng)域舉例總線接口高速數(shù)據(jù)采集通信領(lǐng)域 編解碼、信號糾錯嵌入式系

2、統(tǒng)數(shù)字圖像處理2022/8/104/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真FPGA公司及軟件 Xilinx公司 ISE Altera公司 QUARTUS II 1、開發(fā)工具 Lattice公司 ispLEVER ACTEL公司 Libero IDE (Microsemi收購) 2、開發(fā)語言 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設(shè)計流程1.創(chuàng)建新工程2.添加設(shè)計文件(.v或者.vhd)3.分配IO管腳4.綜合5.布局布線6.下載7.測試2022/8/1011/78以Spartan 3 xc3s400 為例一、FPGA硬件驗證二、邏輯綜合三、時序仿真創(chuàng)建新工程1/2File-New project 2022/

4、8/1012/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真創(chuàng)建新工程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、加設(shè)計文件鼠標右鍵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硬件驗證二、邏輯綜合三、時序仿真實現(xiàn)鼠標單擊選中頂層模塊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開發(fā)板一、FPGA硬件驗證二、邏輯綜合三、時序仿真測試2/22022/8/1024/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真Xilinx ISE

8、的ChipScopeISE ChipScope可以充當示波器,或者用來調(diào)試程序,查看電路中某些節(jié)點的信號。教程鏈接:/s/1jI4MotC/s/1i5pVnqX如何防止軟件將某些信號優(yōu)化掉?假如我們要觀察一個信號cnt,定義為reg 10:0 cnt,那么就按照文檔中的介紹,要保持此信號不被綜合工具給優(yōu)化掉,則設(shè)置: (* KEEP = “TRUE” *) reg 10:0 cnt 或者(* keep= “true” *) reg 10:0 cnt 這樣就可以實現(xiàn)ChipScope對該寄存器的觀察而不被優(yōu)化掉2022/8/1025/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真2022/8/

9、1026/78二、 邏輯綜合一、FPGA硬件驗證二、邏輯綜合三、時序仿真IC典型流程2022/8/1027/78功能要求系統(tǒng)建模電路仿真手工設(shè)計版圖后仿真滿足滿足不滿足不滿足行為設(shè)計(Verilog/VHDL)行為仿真時序仿真版圖自動布局、布線流片、封裝、測試不滿足滿足滿足不滿足不滿足 后仿真綜合、優(yōu)化網(wǎng)表滿足流片、封裝、測試功能要求系統(tǒng)建模MatlabModelsimQuestasimMaxplus IIDesign CompilerAstro(IC CompilerIC Compiler IIEncounterInnovus)數(shù)字VLSI 流程MatlabSpectreVirtuoso,L

10、akerCalibre參數(shù)提取模擬IC 流程半定制?全定制一、FPGA硬件驗證二、邏輯綜合三、時序仿真主要內(nèi)容邏輯綜合相關(guān)概念邏輯綜合工具-Design Compiler 2022/8/1028/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真邏輯綜合相關(guān)概念什么是邏輯綜合?時間路徑時序基本術(shù)語2022/8/1029/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真什么是邏輯綜合?綜合就是把HDL 代碼轉(zhuǎn)換為門級電路的過程,用公式表示:綜合= 翻譯 + 優(yōu)化 + 映射(見下頁圖)(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;優(yōu)化+映射RTL源代碼通用布爾門(GTECH)目標工藝庫中的門2022/8/1031/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真時間路徑時間路徑:信號傳播經(jīng)過的邏輯通道,簡稱路徑。起點一般為:基本輸入端口或寄存器的時鐘端口;終點一般為:基本輸出端口或寄存器的數(shù)據(jù)端口。時間路徑通常分為4種:基本輸入到基

12、本輸出基本輸入到寄存器數(shù)據(jù)端口寄存器時鐘端口到基本輸出寄存器時鐘端口到寄存器數(shù)據(jù)端口2022/8/1032/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真時間路徑2022/8/1033/78path1: 基本輸入到寄存器數(shù)據(jù)端口path2: 基本輸入到基本輸出path3: 寄存器時鐘端口到寄存器數(shù)據(jù)端口path4: 寄存器時鐘端口到基本輸出一、FPGA硬件驗證二、邏輯綜合三、時序仿真時序:clock2022/8/1034/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真Jitter時序:setup/hold建立(setup)時間是指觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間。保持(h

13、old)時間是指觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間。裕度(slack):是時序要求與實際時序之間的差值,反映了時序是否滿足要求。裕度為正,滿足要求;反之不滿足。 裕度要求的時間-實際的時間2022/8/1035/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真DC基本術(shù)語庫(Library)設(shè)計(Design) 單元(Cell or Instance)參考(Reference)端口(Port)管腳(Pin)線網(wǎng)(Net)時鐘(Clock)2022/8/1036/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真DC基本術(shù)語庫庫:一組邏輯單元的集合。庫包括庫申明、庫屬性、庫應(yīng)用環(huán)境

14、和每個單元的功能描述、時間延時、面積、功耗等。邏輯綜合庫包含兩種格式: 1.自由文件格式 .lib(任何文本編輯器都可以打開) 2. synopsys應(yīng)用程序可使用的格式.db(不可查看)2022/8/1037/78Astro布局布線庫LVS文件文本文件,datasheet, handbook可測性矢量壓縮文件標準單元版圖Cadence布局布線庫物理參數(shù)庫符號庫邏輯綜合庫標準單元verilog模型標準單元清單庫說明文件存放路徑一、FPGA硬件驗證二、邏輯綜合三、時序仿真DC基本術(shù)語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具有強大的功能,成為業(yè)界最流行的綜合工

16、具。用戶只需輸入滿足要求的HDL描述和設(shè)計約束,就可能得到較為優(yōu)化的門級綜合網(wǎng)表。2022/8/1039/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真Design Compiler介紹Design Compiler有兩種界面供用戶使用,一種是命令界面,一種是圖形界面。 dc_shell (命令界面) design_vision (圖形界面)Design Compiler支持TCL(Tool Command Language)語言初學(xué)者通過圖形界面,然后熟悉DC的綜合命令,采用批處理的方式提高綜合的工作效率。2022/8/1040/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真DC啟動(非

17、常重要! )工作站啟動方法:1.打開Terminal,創(chuàng)建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.文件導(dǎo)出2022/8/1043/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真1.HDL準備設(shè)計文件 fsk_modulator.v帶IO的頂層文件在終端下輸入命令 cp /home/class/top_pad.v ./ 將頂層IO文件復(fù)制到自己的目錄下注:后邊的./可以換成自己放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工藝庫要到相關(guān)Foundry代工廠網(wǎng)站下載,上傳至服務(wù)器。準備軟件啟動文件.synopsys_dc.setup .synopsys_dc.setup 定義工藝庫的路徑和其他用

21、于邏輯綜合的參數(shù)。在啟動軟件的時候,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.讀入設(shè)計文件

25、1/3DC提供了下面兩種方式讀入設(shè)計: 1.read命令 2.analyze&elaborate命令(先分析語法等,再構(gòu)成具體邏輯)2022/8/1050/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真3.讀入設(shè)計文件2/32022/8/1051/78read方式下,一次只能讀入一個文件,要采取自下而上的方式。一、FPGA硬件驗證二、邏輯綜合三、時序仿真3.讀入設(shè)計文件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.設(shè)置負載打開電

27、路圖,選中要設(shè)置負載的輸出管腳。set_load 5 all_outputs2022/8/1055/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真4.創(chuàng)建時鐘2022/8/1056/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真4.創(chuàng)建時鐘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硬件驗證二、邏輯綜合三、時序仿真綜合前后電路結(jié)構(gòu)比較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.文件導(dǎo)出top_pad.sv和top_pad.sdc提供給布局布線工具去做后端。在啟動軟件的目錄里面創(chuàng)建netlist目錄 命令:mkdir netlist(在Terminal里面輸入,不是軟件命令窗口)導(dǎo)出.sv文件到netlist目錄: 1)change_names -hierarchy -rules verilog 2)write -format verilog -hierarchy -output ./netlist/top_pad.sv (在軟件的命令欄輸入,不是在Te

30、rminal里)在啟動軟件的目錄里面創(chuàng)建sdc目錄命令:mkdir sdc (在Terminal里面輸入,不是軟件命令窗口)導(dǎo)出.sdc文件到sdc目錄:write_sdc ./sdc/top_pad.sdc(在軟件的命令欄輸入,不是在Terminal里)top_pad.sdf文件是延遲文件,做時序仿真用。在啟動軟件的目錄里面創(chuàng)建sdf目錄 命令:mkdir sdf導(dǎo)出.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硬件驗證二、邏輯綜合三、時序仿真主要內(nèi)容時序仿真概念時序仿真方法2022/8/1066/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真時序仿真概念功能仿真:不包含延時信息,只關(guān)注實現(xiàn)功能的理想條件下的仿真。時序仿真:帶有延遲信息的仿真,主要是看時序和功能是否同時滿足。延時主要包括:cell delay和net delay不同于靜態(tài)時序分析(STA)。含延時的動態(tài)仿真既能驗證設(shè)計的功能,也能驗證設(shè)計的時序,但是驗證都不完全:動態(tài)仿真無法將設(shè)計中的每條路徑都覆蓋到,且功能正確性的仿真強烈的依賴于測試向量。STA只能

32、驗證時序,無法驗證功能。邏輯綜合和布局布線完都可以做時序仿真,但是邏輯綜合后一般只需要做門級功能仿真即可,沒有必要做時序仿真,不需要加上sdf延時文件進行時序仿真,且因為邏輯綜合沒有修hold,所以加上延時也很可能會報錯(存在hold違反)。此外,并不是說不加上sdf文件進行仿真進行的就是功能仿真,因為STD庫里面也是存在延時的,如何進行功能仿真?仿真腳本里面加 +nospecify。只有布局布線完成后才有進行時序仿真的必要。布局布線完的時序仿真也叫后仿真,不同于模擬電路后仿真。2022/8/1067/78一、FPGA硬件驗證二、邏輯綜合三、時序仿真時序仿真方法1.將sdf文件添加到Testb

33、ench中2.創(chuàng)建新的工程3.添加邏輯綜合完導(dǎo)出的網(wǎng)表文件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這里僅用綜合后的網(wǎng)表以及DC導(dǎo)出的sdf文件演示一下時序仿真的方法,但是實際實際設(shè)計中只需要在該步做不包含任何延時的功能仿真即可!一、FPGA硬件驗證二、邏輯綜合三、時序仿真sdf文件添加到Testbench在testbench中添加如下代碼:initialbegin$sdf_annotate(“/home/XXX(學(xué)號)/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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論