




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘要作者在本文中,通過一個設(shè)計實例,向大家介紹了數(shù)字電路從前端到后端正向設(shè)計的一般流程。本文中的實例要求設(shè)計者設(shè)計一個四位ALU,為了讓讀者了解硬件描述語言代碼的風格及其對綜合和布局布線的影響,作者在本文中使用了兩套風格的代碼。但由于作者從事IC設(shè)計的經(jīng)驗有限,所以兩套方案都沒有成功,一個方案(無層次化設(shè)計)夭折于綜合后,另一個方案(層次化設(shè)計)失敗于布局布線后。但從讓大家了解數(shù)字電路正向設(shè)計流程的目的來說,此實例還是很好地達到了預期的目標。可以說,這是一篇帶你入門的文章,本文適合于所有數(shù)字電路初級設(shè)計人員。在接下來的一部分,作者按照數(shù)字電路正向設(shè)計的一般流程,結(jié)合軟件(Cadence, Sy
2、nopsys)的使用,從幾個方面向大家介紹了在工作站上的設(shè)計方法和情況。設(shè)計流程介紹1. 硬件描述語言的輸入1.1真值表1.1.1代碼一真值表1.1.2代碼二真值表1.2結(jié)構(gòu)圖1.2.1代碼一結(jié)構(gòu)圖1.2.2代碼二結(jié)構(gòu)圖1.3代碼1.3.1代碼一 (無層次)1.3.1.1 ALU1.3.1.2 ALU_tb1.3.2代碼二 (層次化)1.3.2.1 Decoder1.3.2.2 Fout_BIT1.3.2.3 Fout_BIT_ALU1.3.2.4 Single_BIT1.3.2.5 TOP1.3.2.6 ALU_tb2. 綜合前的編譯、仿真2.1 CASE 12.1.1 Verilog_XL
3、2.1.1.1 TestBenchtimescale 1ns/1ns/Time Unit & Precisionmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 7:0 test;wire 3:0 ALU_RESULT;/Top ModuleALU u1 (.S(S),.A(OPERAND_A),.B(OPERAND_B),.F(ALU_RESULT),.Cin(CO);/FOR Simulationinitialbegin for ( test = 0; test
4、 = 8hfe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test3:0; OPERAND_B = test7:4; #10; end $finish;end/ FOR XLinitialbegin $shm_open(ALU.shm); $shm_probe(AC);endendmodule2.1.1.2文件準備codes目錄下是你的設(shè)計文件和測試文檔runme.f文件:./codes/ALU_tb.v ./codes/ALU.v2.1.1.3 Start Upserver% verilog -f runme.
5、f +gui&1 132412.1.1.4 Next Steps2.1.1.5 WaveForm2.1.2 VCS2.1.2.1 TestBench/Time Unit & Precisiontimescale 1ns/1nsmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 7:0 test;wire 3:0 ALU_RESULT;/Top ModuleALU u1 (.S(S),.A(OPERAND_A),.B(OPERAND_B),.F(ALU_RESULT),
6、.Cin(CO);/ FOR VCSinitialbegin ifdef vcd $display(nVCD+ onn); $vcdpluson; endifend/FOR Simulationinitialbegin for ( test = 0; test = 8hfe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test3:0; OPERAND_B = test7:4; #10; end $finish;endendmodule2.1.2.2文件準備codes目錄下是你的設(shè)計文件和測試文檔runme.f文件:
7、./codes/ALU_tb.v ./codes/ALU.v2.1.2.3 Start Up/postprocessing modeserver% vcs f runme.f PP R +vcsd +define+vcdserver% vcs -f runme.f RPP/interactive modeserver% vcs -f runme.f -Mupdate -RINote: Environment variable $VCS_HOME (/synopsys/vcs6.0.1) overrides default location to find software (/usr/loca
8、l/VCS)* Using loader /usr/ccs/bin/ld instead of cc . Chronologic VCS (TM) Version 6.0.1 - Wed Jul 7 02:42:37 2004 Copyright (c) 1991-2001 by Synopsys Inc. ALL RIGHTS RESERVEDThis program is proprietary and confidential information of Synopsys Inc.and may be used and disclosed only as authorized in a
9、 license agreementcontrolling such use and disclosure.* Warning: ACC/CLI capabilities have been enabled for the entire design.For faster performance enable module specific capability in pli.tab fileParsing design file ./codes/ALU_tb.vParsing design file ./codes/ALU.vTop Level Modules: ALU_tbTimeScal
10、e is 1 ns / 1 ns2 modules to be compiled, 0 UDPs to be compiled. However, due to inlining, only 1 module needs to be compiled.recompiling module ALU_tb1 of 1 modules doneif -x ./simv ; then chmod -x ./simv; fi/usr/ccs/bin/ld -o ./simv /synopsys/vcs6.0.1/virsimdir/Solaris/vcdplus/vcs6_0/vcspli.o /syn
11、opsys/vcs6.0.1/sun_sparc_solaris_5.5.1/lib/crt1.o /synopsys/vcs6.0.1/sun_sparc_solaris_5.5.1/lib/crti.o /synopsys/vcs6.0.1/sun_sparc_solaris_5.5.1/lib/crtn.o 5NrI_d.o 5NrIB_d.o pZ0v_1_d.o -lnsl -lsocket -ldl /synopsys/vcs6.0.1/sun_sparc_solaris_5.5.1/lib/libvcs.a -lm -lc -ldl ./simv up to dateVirSim
12、 4.1.1.patch2 Virtual Simulator EnvironmentCopyright (C) 1993-2001 by Synopsys, Inc.Licensed Software. All Rights Reserved.Use virsim help_arg for usage information. help_arg: -help or -verilog_help or -vhdl_help or -epic_help2.1.2.4 Next Steps/postprocessing mode/interactive mode2.1.2.5 WaveForm/po
13、stprocessing mode/interactive mode2.2 CASE 22.2.1 Verilog_XL2.2.1.1 TestBenchtimescale 1 ns / 1 ns/Time Unit & Precisionmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 11:0 test;wire 3:0 ALU_RESULT;/Top ModuleTOP u8(.S(S),.OPERAND_A(OPERAND_A),.OPERAND_B(OPE
14、RAND_B),.ALU_RESULT(ALU_RESULT),.CO(CO);/FOR Simulationinitialbegin for ( test = 0; test = 12hffe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test7:4; OPERAND_B = test11:8; #50; end $finish;end/ FOR XLinitialbegin $shm_open(ALU.shm); $shm_probe(AC);endendmodule2.2.1.2文件準備codes目錄下是你
15、的設(shè)計文件和測試文檔runme.f文件:./codes/ALU_tb.v./codes/Decoder.v./codes/Four_BIT.v./codes/Four_BIT_ALU.v./codes/Single_BIT.v./codes/TOP.v2.2.1.3 Start Upserver% verilog -f runme.f +gui&2.2.1.4 WaveForm2.2.2 VCS2.2.2.1 TestBench/Time Unit & Precisiontimescale 1 ns / 1 nsmodule ALU_tb;/List Ports To be Simulated
16、reg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 11:0 test;wire 3:0 ALU_RESULT;/Top ModuleTOP u8 (.S(S),.OPERAND_A(OPERAND_A),.OPERAND_B(OPERAND_B),.ALU_RESULT(ALU_RESULT),.CO(CO);/ FOR VCSinitialbegin ifdef vcd / enable vcd dumping $display (nVCD+ dumping is turned onn); $vcdpluson; endifend/FOR Si
17、mulationinitialbegin for ( test = 0; test read_verilog ALU.vLoading verilog file /training/tr03/david_j/IC_test/test1/Syn/codes/ALU.vDetecting input file type automatically (-rtl or -netlist).Reading with Presto HDL Compiler (equivalent to -rtl option).Running PRESTO HDLCLoading db file /export/home
18、/synopsys/syn03/libraries/syn/standard.sldbLoading db file /export/home/synopsys/syn03/libraries/syn/gtech.dbLoading db file /training/tr03/david_j/IC_test/test1/Syn/Libs/csmc06core.dbCompiling source file /training/tr03/david_j/IC_test/test1/Syn/codes/ALU.vWarning: /training/tr03/david_j/IC_test/te
19、st1/Syn/codes/ALU.v:12: DEFAULT branch of CASE statement cannot be reached. (ELAB-311)Statistics for case statements in always block at line 10 in file /training/tr03/david_j/IC_test/test1/Syn/codes/ALU.v=| Line | full/ parallel |=| 12 | auto/auto |=Presto compilation completed successfully.Current
20、design is now /training/tr03/david_j/IC_test/test1/Syn/codes/ALU.db:ALUALUdc_shell-t linkLinking design: ALUUsing the following designs and libraries: ALU, csmc06core (library)1dc_shell-t echo $target_librarycsmc06core.dbdc_shell-t echo $link_library* csmc06core.dbdc_shell-t echo $symbol_librarycsmc
21、06core.sdbdc_shell-t echo $search_path. /export/home/synopsys/syn03/libraries/syn /export/home/synopsys/syn03/dw/sim_ver ./Libs ./Scripts ./codesdc_shell-t list_libsLogical Libraries:-Library File Path- - -standard.sldb standard.sldb /export/home/synopsys/syn03/libraries/sygtech gtech.db /export/hom
22、e/synopsys/syn03/libraries/sycsmc06core csmc06core.db /training/tr03/david_j/IC_test/test1/Syn1dc_shell-t report_lib csmc06core Reports/csmc06core.rptdc_shell-t get_designsALUdc_shell-t get_portsS2, S1, S0, A3, A2, A1, A0, B3, B2, B1, B0, F3, F2, F1, F0, Cindc_shell-t get_netsS2, S1, S0, A3, A2, A1,
23、 A0, B3, B2, B1, B0, F3, F2, F1, F0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, *Logic1*, Cin, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29, N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N4
24、1, N42, N43, N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57, N58, N59, N60, N61, N62, N63, N64, N65, N66, N67, N68, N69, N70.dc_shell-t all_inputsS2, S1, S0, Cin, A3, A2, A1, A0, B3, B2, B1, B0dc_shell-t all_outputsF3, F2, F1, F0dc_shell-t get_libsstandard.sldb, gtech, csmc06co
25、redc_shell-t report_attribute -pin get_pins csmc06core/AN02D1/A*Report : AttributeDesign : ALUVersion: 2003.06-SP1Date : Fri Jul 9 03:36:22 2004*Design Object Type Attribute Name Value-ALU A port capacitance 0.007631ALU A port fanout_load 0.996735ALU A port pin_used_in_function trueALU A port pin_cl
26、ass 0ALU A port pin_sense true1dc_shell-t report_attribute -pin get_pins csmc06core/IN01D1/YN*Report : AttributeDesign : ALUVersion: 2003.06-SP1Date : Thu Jul 8 21:44:46 2004*Design Object Type Attribute Name Value-ALU YN port max_fanout 4.000000ALU YN port function !(A)ALU YN port series_parallel t
27、rueALU YN port pin_function_class a1ALU YN port pin_function_id Ia1.0ALU YN port pin_class 1ALU YN port pin_sense false1dc_shell-t quitMemory usage for this session 17232 Kbytes.CPU usage for this session 5 seconds.Thank you.dc_shell-t exitMemory usage for this session 16008 Kbytes.CPU usage for thi
28、s session 5 seconds.Thank you.3.1.1.2.2運行命令server% dc_shell-t Behavioral Compiler (TM) DC Professional (TM) DC Expert (TM) DC Ultra (TM) FloorPlan Manager (TM) VHDL Compiler (TM) HDL Compiler (TM) Library Compiler (TM) Power Compiler (TM) DFT Compiler (TM) BSD Compiler DesignWare Developer (TM) Desi
29、gnPower (TM) Version 2003.06-SP1 for sparcOS5 - Aug 15, 2003 Copyright (c) 1988-2003 by Synopsys, Inc. ALL RIGHTS RESERVEDThis program is proprietary and confidential information of Synopsys, Inc.and may be used and disclosed only as authorized in a license agreementcontrolling such use and disclosu
30、re.Initializing.dc_shell-t source constraints.tclLoading db file /training/tr03/david_j/IC_test/test1/Syn/DB/1.dbCurrent design is now /training/tr03/david_j/IC_test/test1/Syn/DB/1.db:ALULinking design: ALUUsing the following designs and libraries: ALU, ALU, csmc06core (library)Resetting current des
31、ign ALUUsing operating conditions WORST found in library csmc06core.Design ALU: Using wire_load model 150kxabove found in library csmc06core.Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on th
32、e port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rul
33、e attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell w
34、ill be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Warning: Design rule attributes from the driving cell will be set on the port. (UID-401)Inf
35、ormation: Defining new variable MAX_INPUT_LOAD. (CMD-041)1dc_shell-t source run.tclInformation: Evaluating DesignWare library utilization. (UISN-27)=| DesignWare Library | Available |=| DesignWare-Basic | * | DesignWare-Foundation | |= Loading target library csmc06core Loading design ALU Beginning Resource Allocation (area only) - Allocating blocks in ALU Beginni
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 走進2024小自考公共事業(yè)管理試題及答案
- 7 做個“時間膠囊”教學設(shè)計-2024-2025學年科學一年級上冊教科版
- 食品安全事故處理試題及答案
- 第6單元 21三黑和土地(教學設(shè)計)2024-2025學年六年級語文上冊同步教學(統(tǒng)編版)
- 10 父母多愛我(教學設(shè)計)-2023-2024學年道德與法治三年級上冊統(tǒng)編版
- 11 大家排好隊(教學設(shè)計)-部編版道德與法治二年級上冊
- 建立高效復習計劃的省考試題及答案
- 全國電子工業(yè)版初中信息技術(shù)第四冊第1單元1.1活動1《感測系統(tǒng)的組成》教學設(shè)計
- 全國江西科學技術(shù)版小學信息技術(shù)六年級下冊第二單元第6課《運算的概述》教學設(shè)計
- 2023-2024學年川教版(2019)小學信息技術(shù)三年級下冊 第三單元 玩轉(zhuǎn)scratch(教學設(shè)計)
- 2025-2030中國城市和干線鐵路信號設(shè)備行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 法院調(diào)解以物抵債協(xié)議范文5篇
- 2025上半年貴州成黔企業(yè)(集團)有限公司招聘管理人員20人筆試參考題庫附帶答案詳解
- 湖北省武漢市2025屆高三下學期二月調(diào)研考試數(shù)學試卷
- 2025年志愿服務(wù)知識競賽考試題(附答案)
- 上海市徐匯區(qū)上海中學2024-2025學年高一下學期3月月考地理試題(含答案)
- 二零二五年度研學旅行基地運營管理合同協(xié)議
- 倉儲場所消防安全培訓
- 山東煙臺歷年中考語文文言文閱讀試題22篇(含答案與翻譯)(截至2023年)
- 大學課件-電路分析基礎(chǔ)
- 2025年中國流行成分和原料消費深度洞察白皮書
評論
0/150
提交評論