版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一、 第一章1. 幾個(gè)英文縮寫:PLA(Programmable Logic Array)可編程邏輯陣列FPGA(Field Programmable Gate Array)現(xiàn)場可編程邏輯門陣列CPLD(Complex Programmable Logic Device)復(fù)雜可編程邏輯器件CAD(Computer Aided Design) 計(jì)算機(jī)輔助設(shè)計(jì)CAE(computer aided engineering)EDA(electronic design automation) 電子設(shè)計(jì)自動化2. EDA定義:以計(jì)算機(jī)為工作平臺,以EDA軟件為開發(fā)環(huán)境,以PLD器件或者ASIC專用集成電路
2、為目標(biāo)器件設(shè)計(jì)實(shí)現(xiàn)電路系統(tǒng)的一種技術(shù)。3. 現(xiàn)代EDA技術(shù)的特征【簡答】(1) 采用硬件描述語言(HDL)進(jìn)行設(shè)計(jì)HDL語言更適合于描述規(guī)模大、功能復(fù)雜的數(shù)字系統(tǒng),使設(shè)計(jì)者在比較抽象的層次上對所設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)和邏輯功能進(jìn)行描述。(2) 邏輯綜合與優(yōu)化目前EDA工具最高只能接受行為級和RTL級描述的HDL文件進(jìn)行邏輯綜合(3) 開放性和標(biāo)準(zhǔn)化普遍采用標(biāo)準(zhǔn)化和開放性的框架結(jié)構(gòu),可以與其他的EDA工具一起進(jìn)行設(shè)計(jì)工作,實(shí)現(xiàn)各種工具的優(yōu)化組合,集成在一個(gè)易于管理的統(tǒng)一環(huán)境下,實(shí)現(xiàn)資源共享提高工作效率,利于大規(guī)模設(shè)計(jì)。(4)更完備的庫(Library)在電路設(shè)計(jì)的各個(gè)階段,EDA系統(tǒng)需要不同層次、不同種
3、類的元器件模型庫的支持。EDA工具要具有更強(qiáng)大的設(shè)計(jì)能力和更高的設(shè)計(jì)效率,必須配有豐富的庫。各種模型庫的功能和規(guī)模是衡量EDA工具優(yōu)劣的一個(gè)標(biāo)志4. 基于EDA技術(shù)的設(shè)計(jì)思路(P4P5)(1) Top-down設(shè)計(jì),即自頂向下的設(shè)計(jì)將設(shè)計(jì)分成幾個(gè)不同的層次:系統(tǒng)級、功能級、門級、開關(guān)級,按照自上而下的順序,在不同的層次上對系統(tǒng)進(jìn)行設(shè)計(jì)和仿真。首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能框圖的劃分和機(jī)構(gòu)設(shè)計(jì)。在功能級進(jìn)行仿真糾錯(cuò),并用HDL對高層次的系統(tǒng)行為進(jìn)行描述,然后用綜合工具將設(shè)計(jì)轉(zhuǎn)化為具體門電路網(wǎng)表。Top-down的設(shè)計(jì)須經(jīng)過“設(shè)計(jì)驗(yàn)證修改設(shè)計(jì)再驗(yàn)證”的過程,不斷反復(fù),直到結(jié)果能夠?qū)崿F(xiàn)所要求的功
4、能,并在速度、功耗、價(jià)格和可靠性方面實(shí)現(xiàn)較為合理的平衡。(2) Bottom-up設(shè)計(jì),即自底向上的設(shè)計(jì)設(shè)計(jì)者選擇標(biāo)準(zhǔn)集成電路,或者將各種基本單元做成基本單元庫,調(diào)用這些基本單元,直到設(shè)計(jì)出滿足需要的系統(tǒng)。缺點(diǎn):效率低、易出錯(cuò)5. IP核的一些概念(intellectual property)IP核(IP模塊):指功能完整,性能指標(biāo)可靠,已驗(yàn)證的、可重用的電路功能模塊。分為硬核、固核、軟核。(1) 軟核:如ARM。是指在寄存器級或門級對電路功能用HDL描述,表現(xiàn)為用VHDL等硬件描述語言描述的功能塊,但是并不涉及用什么具體電路元件實(shí)現(xiàn)這些功能。(2) 硬核:以版圖形式實(shí)現(xiàn)的設(shè)計(jì)模塊,基于一定的
5、設(shè)計(jì)工藝。供設(shè)計(jì)的最終階段產(chǎn)品:掩膜。(3) 固核:完成了綜合的功能塊。以網(wǎng)表形式提交客戶使用。軟核使用靈活,但可預(yù)測性差;硬核可靠性高,能確保性能,并和很快投入使用。6. SOC: SYSTEM on a CHIP芯片系統(tǒng)、片上系統(tǒng)。是指把一個(gè)完整的系統(tǒng)集成在一個(gè)芯片上;或者說用一個(gè)芯片實(shí)現(xiàn)一個(gè)功能完整的系統(tǒng)。舉例:由微處理器核(MPU Core),數(shù)字信號處理器核(DSP Core),存儲器核(RAM/ROM),A/D、D/A核以及USB接口核等構(gòu)成一個(gè)單片系統(tǒng)(SoC)。7. 設(shè)計(jì)方法的演變(見下圖)8. 基于FPGA/CPLD的數(shù)字系統(tǒng)設(shè)計(jì)流程 (見下圖)9. 綜合將較高層次的設(shè)計(jì)描述
6、自動轉(zhuǎn)化為較低層次描述的過程。行為綜合:從算法表示、行為描述轉(zhuǎn)換到寄存器傳輸級(RTL)邏輯綜合:RTL級描述轉(zhuǎn)換到邏輯門級(包括觸發(fā)器) 版圖綜合或結(jié)構(gòu)綜合:從邏輯門表示轉(zhuǎn)換到版圖表示,或轉(zhuǎn)換到PLD器件的配置網(wǎng)表表示綜合器是能自動實(shí)現(xiàn)上述轉(zhuǎn)換的軟件工具,是能將原理圖或HDL語言描述的電路功能轉(zhuǎn)化為具體電路網(wǎng)表的工具注意VHDL與C的區(qū)別。10. 仿真仿真是對所設(shè)計(jì)電路的功能的驗(yàn)證。在設(shè)計(jì)過程中對整個(gè)系統(tǒng)和各個(gè)模塊進(jìn)行仿真,在PC上用軟件驗(yàn)證功能是否正確,各部分時(shí)序配合是否準(zhǔn)確。(1) 功能仿真(Function Simulation)不考慮信號延時(shí)等因素(2) 時(shí)序仿真(Timing Si
7、mulation)選擇具體器件并完成布局布線后進(jìn)行的包含延時(shí)的仿真。11. 常用的EDA軟件工具l 按公司分:(1) 第三方EDA軟件工具,如 cadence design systemsmentor graphicssynopsys功能強(qiáng)、有良好的兼容性、適合復(fù)雜和高效率的設(shè)計(jì),但價(jià)格昂貴(2) PLD廠商專用開發(fā)工具,如alteraxilinxlattice針對性好、提高資源利用率,降低功耗l 按軟件功能分:(1) 集成的 FPGA/CPLD開發(fā)工具(2) 設(shè)計(jì)輸入工具(3) 邏輯綜合器將設(shè)計(jì)者在EDA平臺上編輯輸入的HDL、原理圖、狀態(tài)圖等,依據(jù)給定的硬件結(jié)構(gòu)和約束控制條件進(jìn)行編譯、優(yōu)化
8、和轉(zhuǎn)換,最終獲得門級電路甚至更底層的電路描述網(wǎng)表文件的過程。專業(yè)邏輯綜合軟件有:Synopsys的FPGA Express,fpga compiler, fpga compiler IISynplicity的synplify pro/synplifyMentor的leonardo spectrum(4) 仿真工具(5) 其他設(shè)計(jì)工具二、 第二章(1) PLD理論基礎(chǔ)(P19)【簡答】任何組合邏輯函數(shù)均可化為“與或”表達(dá)式,用“與門或門”二級電路實(shí)現(xiàn),任何時(shí)序電路又都可以由組合電路加上存儲元件(觸發(fā)器)構(gòu)成。因此,從原理上說,與或陣列加上觸發(fā)器的結(jié)構(gòu)就可以實(shí)現(xiàn)任意的數(shù)字邏輯。(2) CPLD和F
9、PGA的區(qū)別?(3) JTAG邊界掃描測試(P42)為了解決超大規(guī)模集成電路(VLSI)的測試問題,自1986年開始,IC領(lǐng)域的專家成立了“聯(lián)合測試行動組”(JTAG,Joint Test Action Group),并制定出了IEEE 1149.1邊界掃描測試(BST,Boundary Scan Test)技術(shù)規(guī)范 這種測試方法提供一個(gè)串行掃描路徑,它能捕獲器件邏輯的內(nèi)容,以可以測試遵守JTAG規(guī)范的器件之間的引腳連接情況,且可以在器件正常工作時(shí)捕獲功能數(shù)據(jù)。測試數(shù)據(jù)從左邊的一個(gè)邊界單元串行移入,捕獲的數(shù)據(jù)從右邊的一個(gè)邊界掃描單元串行移入,然后同標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行比較,就能夠知道芯片性能的好壞。(
10、4) 在系統(tǒng)可編程(ISP)in-system programmable)指的是對器件、電路板或整個(gè)電子系統(tǒng)的邏輯功能可隨時(shí)進(jìn)行修改或重構(gòu)的能力。三、 第三章1. Quartus II設(shè)計(jì)開發(fā)流程 (P56)(1) 設(shè)計(jì)輸入:包括原理圖輸入、HDL文本輸入、EDIF網(wǎng)表輸入、波形輸入(2) 編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯方式和編譯策略,如器件的選擇,邏輯綜合方法的選擇。然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合、器件適配,并產(chǎn)生報(bào)告文件、延時(shí)信息文件及編程文件,供分析、仿真編程使用。(3) 仿真:用以驗(yàn)證設(shè)計(jì)項(xiàng)目的邏輯功能和時(shí)序關(guān)系是否正確(4) 編程與驗(yàn)證:用得到的編程文件通過編
11、程電纜配置PLD,加入實(shí)際激勵(lì),進(jìn)行在線測試。2. 時(shí)序分析建立時(shí)間(tsu):在觸發(fā)器記時(shí)的時(shí)鐘信號已在時(shí)鐘引腳確立之前,通過輸入或使能端輸入而進(jìn)入寄存器的數(shù)據(jù)必須在輸入引腳處出現(xiàn)的時(shí)間長度保持時(shí)間(th):在觸發(fā)器記時(shí)的時(shí)鐘信號已在時(shí)鐘引腳確立之后,通過輸入或使能端輸入而進(jìn)入寄存器的數(shù)據(jù)必須在輸入引腳處出現(xiàn)的時(shí)間長度時(shí)鐘至輸出延時(shí)(tco):時(shí)鐘信號在觸發(fā)寄存器的輸入引腳發(fā)生轉(zhuǎn)換之后,再由寄存器饋送到信號的輸出引腳上取得有效輸出所需的時(shí)間引腳至引腳延時(shí)(tpd):輸入引腳處信號通過組合邏輯進(jìn)行傳輸并出現(xiàn)在外部最大時(shí)鐘頻率(fmax):在不違反內(nèi)部tsu和th要求下可以達(dá)到的最大頻率。延緩時(shí)
12、間:3. 宏模塊庫Quartus自帶的有Megafunctionsmaxplusiiprimitives. Megafunction庫是Altera提供的參數(shù)化模塊庫。從功能上看,可以把Megafunction庫中的元器件分為:算術(shù)運(yùn)算模塊(arithmetic)邏輯門模塊(gates)儲存模塊(storage)IO模塊(I/O)四、 第四章1. Verilog語言的特點(diǎn):從C發(fā)展而來【簡答】(1) 既適合于可綜合的電路設(shè)計(jì),也可勝任電路與系統(tǒng)的仿真(2) 能在多個(gè)層次上對所設(shè)計(jì)的系統(tǒng)加以描述,從開關(guān)級、門級、寄存器傳輸級、行為級,同時(shí)該語言不對設(shè)計(jì)規(guī)模加以限制(3) 靈活多樣的描述風(fēng)格,包括
13、行為描述和結(jié)構(gòu)描述,支持混合建模,可以在一個(gè)設(shè)計(jì)中不同模塊在不同層次上建模和描述(4) Verilog的行為描述語句,如條件語句、賦值語句和循環(huán)語句等,類似于軟件高級語言,便于學(xué)習(xí)和使用。(5) 內(nèi)置各種基本邏輯門,可以方便進(jìn)行門級結(jié)構(gòu)描述,內(nèi)置各種開關(guān)級元件,可以進(jìn)行開關(guān)級建模(6) 易學(xué)易用,功能強(qiáng),可滿足各個(gè)層次設(shè)計(jì)人員的需要。2. Verilog程序的特點(diǎn):(1) Verilog程序由模塊構(gòu)成,沒搞個(gè)模塊的內(nèi)容嵌在module和endmodule兩個(gè)關(guān)鍵字之間;每個(gè)模塊實(shí)現(xiàn)特定功能(2) 每個(gè)模塊首先要進(jìn)行端口定義,并說明輸入和輸出口,然后對模塊的功能進(jìn)行定義(3) Verilog程序
14、書寫格式自由,一行可以寫幾個(gè)語句,一個(gè)語句也可以分多行寫(4) 除了endmodule等少數(shù)語句外,每個(gè)語句最后必須有分號(5) 可以用/*/和/對Verilog程序做注釋,以增強(qiáng)程序的可讀性和可維護(hù)性3. Verilog模塊基本結(jié)構(gòu):圖4.2(1) 模塊聲明(2) 端口定義:端口類型有三種(輸入端口、輸出端口、輸入輸出雙向端口)(3) 信號類型聲明(輸入端口和雙向端口不可以用寄存器型)(4) 邏輯功能描述assign語句:一般用于組合邏輯賦值always語句:既可用于組合電路也可以描述時(shí)序電路元件例化:調(diào)用元件的方法類似于在電路圖輸入方式下調(diào)入圖形符號來完成設(shè)計(jì),這種方法側(cè)重于電路的結(jié)構(gòu)描述
15、。/*/module ();output 輸出端口列表; /輸出端口聲明input 輸入端口列表; /輸入端口聲明/*定義數(shù)據(jù),信號的類型,函數(shù)聲明*/reg 信號名;/邏輯功能定義assign =; /使用assign語句定義邏輯功能/用always塊描述邏輯功能always () begin /過程賦值 /if-else,case語句 /while,repeat,for循環(huán)語句 /task,function調(diào)用 end /調(diào)用其他模塊 ();/門元件例化 門元件關(guān)鍵字 ();endmodule/*/五、 第五章1. Verilog中的標(biāo)識符可以是任意一組字母、數(shù)字以及符號“$”和“_”(下
16、劃線)的組合,但標(biāo)識符的第一個(gè)字符必須是字母或者下劃線。另外,標(biāo)識符是區(qū)分大小寫的。2. Verilog有下面四種基本的邏輯狀態(tài)。 0:低電平、邏輯0或邏輯非 1:高電平、邏輯1或“真” x或X:不確定或未知的邏輯狀態(tài) z或Z:高阻態(tài) 3. Verilog中的變量分為如下兩種數(shù)據(jù)類型: net型 variable型 Net型數(shù)據(jù)相當(dāng)于硬件電路中的各種物理連接,其特點(diǎn)是輸出的值緊跟輸入值的變化而變化。對連線型有兩種驅(qū)動方式,一種方式是在結(jié)構(gòu)描述中將其連接到一個(gè)門元件或模塊的輸出端;另一種方式是用持續(xù)賦值語句assign對其進(jìn)行賦值。wire是最常用的Net型變量,tri跟wire完全一樣 var
17、iable型變量必須放在過程語句(如initial、always)中,通過過程賦值語句賦值;在always、initial等過程塊內(nèi)被賦值的信號也必須定義成variable型。注意:variable型變量并不意味著一定對應(yīng)著硬件上的一個(gè)觸發(fā)器或寄存器等存儲元件,在綜合器進(jìn)行綜合時(shí),variable型變量會根據(jù)具體情況來確定是映射成連線還是映射為觸發(fā)器或寄存器。 4. 在Verilog語言中,用參數(shù)parameter來定義符號常量,即用parameter來定義一個(gè)標(biāo)志符代表一個(gè)常量。參數(shù)常用來定義時(shí)延和變量的寬度。 5. 向量(1) 標(biāo)量與向量 寬度為1位的變量稱為標(biāo)量,如果在變量聲明中沒有指定
18、位寬,則默認(rèn)為標(biāo)量(1位)。(2) 在表達(dá)式中可任意選中向量中的一位或相鄰幾位,分別稱為位選擇和域選擇(3) 向量分為:標(biāo)量類向量、向量類向量。標(biāo)量類支持位選擇域選擇,后者不支持。前者用scalared說明,后者用vectored說明。(4) 在數(shù)字設(shè)計(jì)中用reg類型陣列構(gòu)成的存儲器在綜合時(shí)均被綜合成存儲器宏模塊。而不是真正的RAMROM。6. 運(yùn)算符(1) 位拼接運(yùn)算符(2) 可用括號()控制運(yùn)算符的優(yōu)先級六、 第六章1. Verilog行為語句包括:過程語句、塊語句、賦值語句、條件語句、循環(huán)語句、編譯指示語句2. 過程語句過程語句包括initial、always。多數(shù)過程模塊均從屬于此。兩
19、者區(qū)別:在一個(gè)模塊(module)中,使用initial和always語句的次數(shù)是不受限制的。initial語句常用于仿真中的初始化;initial過程塊中的語句僅執(zhí)行一次,always塊內(nèi)的語句則是不斷重復(fù)執(zhí)行的;always語句帶觸發(fā)條件,initial不帶;always可綜合,initial不可綜合;兩者過程塊中均只對reg型變量賦值3. 塊語句塊語句是由塊標(biāo)志符串行塊begin-end或并行塊fork-join界定的一組語句,當(dāng)塊語句只包含一條語句時(shí),塊標(biāo)志符可以缺省。4. 賦值語句。5. 過程賦值語句過程賦值語句多用于對reg型變量進(jìn)行賦值。(1)非阻塞(non_blocking)賦
20、值方式 賦值符號為“=”, 如:b= a;(2)阻塞(blocking)賦值方式 賦值符號為“=”, 如:b= a;(3)阻塞賦值與非阻塞賦值的區(qū)別:非阻塞賦值語句右端表達(dá)式計(jì)算完后并不立即賦給左端,而是同時(shí)啟動下一條語句繼續(xù)執(zhí)行,在進(jìn)程結(jié)束時(shí)同時(shí)賦給左端變量(4)使用時(shí)應(yīng)當(dāng)注意的事項(xiàng):1) 當(dāng)用always塊描述組合邏輯時(shí),既可以用阻塞賦值,又可以用非阻塞賦值,建議使用阻塞賦值2) 設(shè)計(jì)時(shí)序邏輯電路,盡量使用非阻塞賦值3) 描述鎖存器盡量使用非阻塞賦值4) 若在同一個(gè)always過程塊中既為組合邏輯建模,又為時(shí)序邏輯建模,最好使用非阻塞賦值5) 在同一個(gè)always過程中,最好不要混合使用阻
21、塞賦值和非阻塞賦值,對同一個(gè)變量,不能既進(jìn)行阻塞賦值,又進(jìn)行非阻塞賦值6) 不能在兩個(gè)或兩個(gè)以上的always過程中對同一個(gè)變量賦值7) 仿真時(shí)使用$strobe顯示非阻塞賦值的變量在always過程塊中,阻塞賦值可以理解為賦值語句是順序執(zhí)行的,而非阻塞賦值可以理解為賦值語句是并發(fā)執(zhí)行的。6. 任務(wù)與函數(shù)的區(qū)別7. 順序執(zhí)行與并發(fā)執(zhí)行兩個(gè)或更多個(gè)“always”過程塊、“assign”持續(xù)賦值語句、實(shí)例元件調(diào)用等操作都是同時(shí)執(zhí)行的。在“always”模塊內(nèi)部,其語句如果是非阻塞賦值,也是并發(fā)執(zhí)行的;而如果是阻塞賦值,則語句是按照指定的順序執(zhí)行的,語句的書寫順序?qū)Τ绦虻膱?zhí)行結(jié)果有著直接的影響。
22、module serial2(q,a,clk);output q,a;input clk;reg q,a;always(posedge clk) begin a=q; q=q; endendmodulemodule serial1(q,a,clk);output q,a;input clk;reg q,a;always (posedge clk) begin q=q; a=q; endendmodule 七、 第七章1. Verilog HDL 是一種能夠在多個(gè)層級對數(shù)字系統(tǒng)進(jìn)行描述的語言,verilog HDL 模型可以是實(shí)際電路不同級別的抽象。這些抽象級別可分為5級(1) 系統(tǒng)級(syst
23、em level)(2) 算法級(algorithm level)(3) 寄存器傳輸級 (RTL, Register Transfer Level )(4) 門級 (Gate Level)(5) 開關(guān)級 (Switch level)2. Verilog HDL 允許設(shè)計(jì)者用三種方式來描述邏輯電路:l 結(jié)構(gòu)描述(structural)l 行為描述(behavioural)l 數(shù)據(jù)流描述(data flow)(1) 結(jié)構(gòu)描述方式,就是指在設(shè)計(jì)中,通過調(diào)用庫中的元件或是以設(shè)計(jì)好的模塊來完成設(shè)計(jì)實(shí)體功能的描述。(2) 行為描述,就是對設(shè)計(jì)實(shí)體的數(shù)學(xué)模型的描述,其抽象程度遠(yuǎn)高于結(jié)構(gòu)描述,無須知道具體電路
24、的結(jié)構(gòu),只要描述清楚輸入與輸出信號的行為l 可綜合的verilog行為描述方式多采用always過程語句實(shí)現(xiàn),這種行為描述既適合于設(shè)計(jì)時(shí)序邏輯電路,也適合于設(shè)計(jì)組合邏輯電路。l 采用行為描述方式時(shí)注意以下幾點(diǎn)1 用行為描述方式設(shè)計(jì)電路,可以降低設(shè)計(jì)難度。行為描述只需表示輸入與輸出之間的關(guān)系,不需要包含任何結(jié)構(gòu)方面的信息。2 設(shè)計(jì)者只需寫出源程序,而挑選電路方案的工作由EDA軟件自動完成,最終選取的電路的優(yōu)化程度,往往取決與綜合軟件的技術(shù)水平和器件的支持能力??赡茏罱K選取得電路方案所耗用的器件資源并非是最少的。3 在電路規(guī)模較大或者需要描述復(fù)雜的邏輯關(guān)系時(shí),應(yīng)首先考慮用行為描述方式設(shè)計(jì)電路,如果
25、設(shè)計(jì)的結(jié)果不能滿足資源耗用的要求,則應(yīng)改變描述方式。(3) 數(shù)據(jù)流描述方式主要使用持續(xù)賦值語句,多用于描述組合邏輯電路。用數(shù)據(jù)流描述方式設(shè)計(jì)電路與用傳統(tǒng)的邏輯方程設(shè)計(jì)電路很相似。3. 采用的描述級別越高,設(shè)計(jì)越容易:對綜合器而言,行為級的描述為綜合器的優(yōu)化提供了更大的空間,較之門級結(jié)構(gòu)描述更能發(fā)揮綜合器的性能,所以在電路設(shè)計(jì)中,除非一些關(guān)鍵路徑的設(shè)計(jì)采用門級結(jié)構(gòu)描述外,一般更多地采用行為建模方式。4. 簡易微處理器(1) 代碼(2)測試代碼5. 同步雙端口8*128FIFO八、 第八章有限狀態(tài)機(jī)(Finite State Machine, FSM)是時(shí)序電路設(shè)計(jì)中經(jīng)常采用的一種方式,尤其適于設(shè)
26、計(jì)數(shù)字系統(tǒng)的控制模塊。優(yōu)點(diǎn)是:具有速度快,結(jié)構(gòu)簡單,可靠性高等優(yōu)點(diǎn) ,過程明確,適用于控制。1. 狀態(tài)機(jī)可分為兩類:米里型(Mealy)和摩爾型(moore)。摩爾型狀態(tài)機(jī)的輸出只用當(dāng)前狀態(tài)的函數(shù),米里型狀態(tài)機(jī)的輸出則是當(dāng)前狀態(tài)和當(dāng)前輸入的函數(shù)2. 狀態(tài)機(jī)有三種表示方法:狀態(tài)圖(state diagram)、狀態(tài)表(state table)、流程圖3. 狀態(tài)機(jī)設(shè)計(jì)中主要包含三個(gè)對象:(1)當(dāng)前狀態(tài) ,或稱為現(xiàn)態(tài)(current state,cs)(2)下一個(gè)狀態(tài),或稱為次態(tài)(Next State,ns)(3)輸出邏輯(out logic,ol)相應(yīng)的,在用verilog描述有限狀態(tài)機(jī)時(shí),有下面
27、幾種描述方式(1) 用三個(gè)過程描述:即現(xiàn)態(tài)(cs),次態(tài)(ns),輸出邏輯(ol)各用一個(gè)always過程描述(2) 雙過程描述(CS+NS,OL雙過程描述):使用兩個(gè)always過程來描述有限狀態(tài)機(jī),一個(gè)過程描述現(xiàn)態(tài)和次態(tài)時(shí)序邏輯(CS+NS);另一個(gè)過程描述輸出邏輯(OL)(3) 雙過程描述(CS,NS+OL雙過程描述);一個(gè)過程用來描述現(xiàn)態(tài)(CS);另一個(gè)過程描述次態(tài)和輸出邏輯(NS+OL).(4) 單過程描述:在但過程描述方式中,將狀態(tài)機(jī)現(xiàn)態(tài)。次態(tài),和輸出邏輯(CS+NS+OL)放在一個(gè)always過程中進(jìn)行描述。4. 101序列檢測器(1)三過程module fsm1_seq101(
28、clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state,next_state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10; /*狀態(tài)編碼,采用格雷(Gray)編碼方式*/always (posedge clk or posedge clr) /*該過程定義當(dāng)前狀態(tài)*/beginif(clr) state=S0; /異步復(fù)位,s0為起始狀態(tài)else state=next_state;endalways (state or x) /*該過程定義次態(tài)*/begincase (state)S0:begin
29、 if(x) next_state=S1;else next_state=S0; endS1:beginif(x) next_state=S1;else next_state=S2; endS2:beginif(x) next_state=S3;else next_state=S0; endS3:beginif(x) next_state=S1;else next_state=S2; enddefault:next_state=S0; /*default語句*/endcase endalways (state) /*該過程產(chǎn)生輸出邏輯*/begin case(state)S3: z=1b1;d
30、efault:z=1b0;endcase endendmodule (2)CS,NS+OL(3)單過程module fsm4_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10;/*狀態(tài)編碼,采用格雷(Gray)編碼方式*/always (posedge clk or posedge clr)Begin if(clr) state=S0; /異步復(fù)位,s0為起始狀態(tài)else case(state)S0:begin if(x) begin
31、 state=S1; z=1b0;endelse begin state=S0; z=1b0;end endS1:begin if(x) begin state=S1; z=1b0;endelse begin state=S2; z=1b0;end endS2:beginif(x) begin state=S3; z=1b0;endelse begin state=S0; z=1b0;end endS3:begin if(x) begin state=S1; z=1b1;endelse begin state=S2; z=1b1;end enddefault:begin state=S0; z
32、=1b0;end /*default語句*/endcase endendmodule 5. 狀態(tài)編碼一位熱碼的特點(diǎn):雖然多用觸發(fā)器,但可以有效節(jié)省和簡化譯碼電路。對于FPGA器件來說,采用一位熱碼可有效提高電路的速度和可靠性,也有利于提高資源利用率。6. 狀態(tài)機(jī)的復(fù)位狀態(tài)機(jī)一般都應(yīng)設(shè)計(jì)為同步方式,并有一個(gè)時(shí)鐘信號來觸發(fā)。實(shí)用的狀態(tài)機(jī)都應(yīng)該設(shè)計(jì)為由唯一時(shí)鐘邊沿觸發(fā)的同步運(yùn)行方式。時(shí)鐘信號和復(fù)位信號對每一個(gè)有限狀態(tài)機(jī)來說都是很重要的。 同步復(fù)位型號在時(shí)鐘的跳變沿到來時(shí),對有限狀態(tài)機(jī)進(jìn)行復(fù)位操作,同時(shí)把復(fù)位值賦給輸出信號并使用有限狀態(tài)機(jī)回到起始狀態(tài)。在描述帶同步復(fù)位有限狀態(tài)機(jī)時(shí),對同步復(fù)位信號進(jìn)行判
33、斷的if語句中,如果不指定輸出信號的值,那么輸出信號將保持原來的值不變。這種情況會需要額外的寄存器來保持原值,從而增加了資源耗用,因此應(yīng)該在if語句中指定輸出信號的值。有時(shí)可以指定在復(fù)位時(shí)輸出信號的值是任意值,這樣在邏輯綜合時(shí)會忽略它們。如果只需要在上電和系統(tǒng)錯(cuò)誤時(shí)進(jìn)行復(fù)位操作,那么采用異步復(fù)位方式要比同步復(fù)位方式好。這樣做的主要原因是;同步復(fù)位方式占用較多的額外資源,而異步復(fù)位可以消除引入額外寄存器的可能性;而且?guī)в挟惒綇?fù)位信號的verilog語言描述簡單,只需要描述狀態(tài)寄存器的過程中引入異步復(fù)位信號即可。7. 多余狀態(tài)的處理(1) 在case語句中用default分支決定如果進(jìn)入無效狀態(tài)所
34、采用的措施(2) 編寫必要的verilog源代碼明確定義進(jìn)入無效狀態(tài)所采取的行為。8. 狀態(tài)機(jī)AD采用控制電路九、 第九章流水線加法器與后面重復(fù)十、 第十章1. 用FPGA/CPLD器件實(shí)現(xiàn)的設(shè)計(jì)中,綜合就是將Verilog或VHDL語言描述的行為級或功能級電路模型轉(zhuǎn)化為RTL級功能塊或門級電路網(wǎng)表的過程 2. 可綜合的設(shè)計(jì)中應(yīng)注意(1)不使用初始化語句;不使用帶有延時(shí)的描述;不使用循環(huán)次數(shù)不確定的循環(huán)語句,如forever,while等。(2) 應(yīng)盡量采用同步方式設(shè)計(jì)電路。除非是關(guān)鍵路徑的設(shè)計(jì),一般不采用調(diào)用門級元件來描述設(shè)計(jì)的方法,建議采用行為語句來完成設(shè)計(jì)。(3) 用always過程塊描
35、述組合邏輯,應(yīng)在敏感信號列表中列出塊中出現(xiàn)的所有輸入信號。 (4) 所有的內(nèi)部寄存器都應(yīng)該能夠被復(fù)位,在使用FPGA實(shí)現(xiàn)設(shè)計(jì)時(shí),應(yīng)盡量使用器件的全局復(fù)位端作為系統(tǒng)總的復(fù)位,用器件的全局時(shí)鐘端作為系統(tǒng)外部時(shí)鐘輸入端。(5) 在Verilog模塊中,任務(wù)(task)通常被綜合成組合邏輯的形式;每個(gè)函數(shù)(function)在調(diào)用時(shí)通常也被綜合為一個(gè)獨(dú)立的組合電路模塊。3. 流水線技術(shù)流水線加法器好處:工作速度快,在邏輯電路中加入若干寄存器來暫存中間結(jié)果,雖然多用了一些寄存器資源,但減小了每一級的電路的時(shí)延,提高整個(gè)加法器的運(yùn)行頻率。為了保證數(shù)據(jù)吞吐率,電路設(shè)計(jì)中的一個(gè)主要問題是要維持系統(tǒng)時(shí)鐘的速度處
36、于或高于某一頻率,如果延時(shí)路徑較長,就必須在組合邏輯間插入觸發(fā)器流水線設(shè)計(jì)技術(shù)使用情形:在某些復(fù)雜邏輯功能的完成需要較長延時(shí)就會使得系統(tǒng)難以運(yùn)行在高的頻率上,這時(shí)可使用流水線設(shè)計(jì)技術(shù)流水線設(shè)計(jì)技術(shù)的好處:在長延時(shí)的邏輯功能塊中插入觸發(fā)器,使得復(fù)雜的邏輯操作分步完成,減小每個(gè)部分的延時(shí),從而是系統(tǒng)的運(yùn)行頻率得以提高流水線技術(shù)的缺點(diǎn):增加了寄存器邏輯,即增加量芯片資源的耗用4. 流水線加法器(1) 2級module adder_pipe2(cout,sum,ina,inb,cin,clk);input7:0 ina,inb; input cin,clk; output reg7:0 sum;out
37、put reg cout; reg3:0 tempa,tempb,firsts; reg firstc;always (posedge clk)begin firstc,firsts=ina3:0+inb3:0+cin;tempa=ina7:4; tempb=inb7:4;endalways (posedge clk)begin cout,sum7:4=tempa+tempb+firstc;sum3:0=firsts;endendmodule (2) 4級module pipeline(cout,sum,ina,inb,cin,clk);output7:0 sum;output cout;in
38、put7:0 ina,inb;input cin,clk; reg7:0 tempa,tempb,sum;reg tempci,firstco,secondco,thirdco, cout;reg1:0 firsts, thirda,thirdb;reg3:0 seconda, secondb, seconds; reg5:0 firsta, firstb, thirds;always (posedge clk)begin tempa=ina; tempb=inb; tempci=cin; end /輸入數(shù)據(jù)緩存 always (posedge clk)begin firstco,firsts=tempa1:0+tempb1:0+tempci; /第一級加(低2位) firsta=tempa7:2; firstb=tempb7:2; /未參加計(jì)算的數(shù)據(jù)緩存 endalways (posedge clk)begin secondco,seconds=firsta1:0+firstb1:0+firstco,firsts; seconda=firsta5:2; secondb=firstb5:2; /數(shù)據(jù)緩存 endalways (posedge clk)begin thirdco,thirds=se
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- PB-22-N-5-Hydroxypentyl-3-carboxyindole-metabolite-生命科學(xué)試劑-MCE-1773
- L-Glutamic-acid-ammonium-生命科學(xué)試劑-MCE-7975
- 1-Octadecyl-lysophosphatidic-acid-PA-O-18-0-0-0-生命科學(xué)試劑-MCE-8369
- 2025年度績效合同簽訂與履行指南
- 二零二五年度未簽合同員工勞動仲裁應(yīng)對措施及賠償協(xié)議
- 二零二五年度物業(yè)與業(yè)主之間綠化賠償合作協(xié)議
- 2025年度煙酒店員工培訓(xùn)與職業(yè)發(fā)展合同
- 柴油發(fā)電機(jī)組技術(shù)協(xié)議
- 施工日志填寫樣本防雷工程施工
- 小學(xué)語文人教一年級上冊識字2《日月明》教學(xué)設(shè)計(jì)
- 充電樁知識培訓(xùn)課件
- 2025年七年級下冊道德與法治主要知識點(diǎn)
- 2025年交通運(yùn)輸部長江口航道管理局招聘4人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(2024版)解讀
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測試(零模)英語 含解析
- 偏癱足內(nèi)翻的治療
- 藥企質(zhì)量主管競聘
- 信息對抗與認(rèn)知戰(zhàn)研究-洞察分析
- 心腦血管疾病預(yù)防課件
- 手術(shù)室??谱o(hù)士工作總結(jié)匯報(bào)
- 2025屆高三聽力技巧指導(dǎo)-預(yù)讀、預(yù)測
評論
0/150
提交評論