




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室1緒論1.什么是信號處理電路?它通常由哪兩大部分組成?信號處理電路是進行一些復雜的數(shù)字運算和數(shù)據(jù)處理, 并且又有實時響應(yīng)要求的電路。它通常有高速數(shù)據(jù)通道接口和高速算法電路兩大部分組成。2.為什么要設(shè)計專用的信號處理電路?因為有的數(shù)字信號處理對時間的要求非??量蹋?以至于用高速的通用處理器也無法在規(guī)定的時間內(nèi)完成必要的運算。 通用微處理器芯片是為一般目的而設(shè)計的,運算的步驟必須通過程序編譯后生成的機器碼指令加載到存儲器中,然后在微處理器芯片控制下,按時鐘的節(jié)拍,逐條取出指令分析指令和執(zhí)行指令,直到程序的結(jié)束。微處理器芯片中的內(nèi)部總線和運算
2、部件也是為通用目的而設(shè)計, 即使是專為信號處理而設(shè)計的通用微處理器, 因為它的通用性也不可能為某一特殊的算法來設(shè)計一系列的專用的運算電路而且其內(nèi)部總線的寬度也不能隨便的改變,只有通過改變程序,才能實現(xiàn)這個特殊的算法,因而其算法速度也受到限制所以要設(shè)計專用的信號處理電路。3.什么是實時處理系統(tǒng)?實時處理系統(tǒng)是具有實時響應(yīng)的處理系統(tǒng)。4.為什么要用硬件描述語言來設(shè)計復雜的算法邏輯電路?因為現(xiàn)代復雜數(shù)字邏輯系統(tǒng)的設(shè)計都是借助于 eda 工具完成的,無論電路系統(tǒng)的仿真和綜合都需要掌握硬件描述語言。5.能不能完全用 c 語言來代替硬件描述語言進行算法邏輯電路的設(shè)計?不能,因為基礎(chǔ)算法的描述和驗證通常用
3、c 語言來做。如果要設(shè)計一個專用的電路來進行這種對速度有要求的實時數(shù)據(jù)處理,除了以上 c 語言外,還須編寫硬件描述語言程序進行仿真以便從電路結(jié)構(gòu)上保證算法能在規(guī)定的時間內(nèi)完成,并能通過與前端和后端的設(shè)備接口正確無誤地交換數(shù)據(jù)。6.為什么在算法邏輯電路的設(shè)計中需要用 c 語言和硬件描述語言配合使用來提高設(shè)計效率?首先 c 語言很靈活,查錯功能強,還可以通過 pli 編寫自己的系統(tǒng)任務(wù),并直接與硬件仿真器結(jié)合使用。 c 語言是目前世界上應(yīng)用最為廣泛的一種編程語言,因而 c 程序的設(shè)計環(huán)境比 verilog hdl 更完整,此外,c 語言有可靠地編譯環(huán)境,語法完備,缺陷缺少,應(yīng)用于許多的領(lǐng)域。比較起
4、來,verilog 語言只是針對硬件描述的,在別處使用并不方便。而用 verilog 的仿真,綜合,查錯等大部分軟件都是商業(yè)軟件,與 c 語言相比缺乏長期大量的使用,可靠性較差,亦有很多缺陷。所以只有在 c 語言的配合使用下,verilog 才能更好地發(fā)揮作用。c語言與 verilog hdl 語言相輔相成,互相配合使用。這就是即利用 c 語言的完整性又要結(jié)合 verilog 對硬件描述的精確性,來更快更好地設(shè)計出符合性能要求的verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室2硬件電路系統(tǒng),從而來提高效率。第一部分 verilog 數(shù)字設(shè)計基礎(chǔ)第 1 章 verilog 的基本知識1
5、.什么是硬件描述語言?它的主要作用是什么?硬件描述語言是一種用形式化方式來描述數(shù)字電路和系統(tǒng)的語言。它的主要作用是:數(shù)字電路系統(tǒng)的設(shè)計者利用這種語言可以從上層到下層(從抽象到具體)逐步描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復雜的數(shù)字系統(tǒng)。2.目前世界上符合 ieee 標準的硬件描述語言有哪兩種?它們各有什么特點?符合 ieee 標準的硬件描述語言是 verilog hdl 和 vhdl 兩種。 它們的共同特點是:能夠形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計中層次與范圍的描述;可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;具有電路仿真與驗證機制以保證設(shè)計的正確性;支持電路描述由
6、高層到低層的綜合 1 轉(zhuǎn)換硬件描述與實現(xiàn)工藝無關(guān); 便于文檔管理; 易于理解和設(shè)計重用。 不同點: veriloghdl 是一種非常容易掌握的硬件描述語言,而 vhdl 掌握起來就比較困難。3.什么情況下需要采用硬件描述語言的設(shè)計方法?在對邏輯電路及系統(tǒng)的設(shè)計的時間要求很短的情況下需要采用硬件描述語言的設(shè)計方法。4.采用硬件描述語言設(shè)計方法的優(yōu)點是什么?有什么缺點?優(yōu)點是:與工藝無關(guān)性。這使得工程師在功能設(shè)計,邏輯驗證階段,可以不必過多考慮門級及工藝實現(xiàn)的具體細節(jié),只需要利用系統(tǒng)設(shè)計時對芯片的要求,施加不同的約束條件,即可設(shè)計出實際電路。缺點是: 需要相應(yīng)的 eda 工具, 而 eda 工具的
7、穩(wěn)定性需要進一步的在工程中提升。5.簡單敘述一下利用 eda 工具并采用硬件描述語言的設(shè)計方法和流程?采用自頂向下的設(shè)計方法:從系統(tǒng)級開始把系統(tǒng)劃分為基本單元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接用eda 元件庫中的基本元件來實現(xiàn)為止。其基本流程主要由兩大主要功能部分組成:(1)設(shè)計開發(fā) 即從編寫設(shè)計文件-綜合到布局布線-電路生成這樣一序列步驟。(2)設(shè)計驗證 也就是進行各種仿真的一序列步驟,如果在仿真過程中發(fā)現(xiàn)問題就返回設(shè)計輸入進行修改。5.硬件描述語言可以用哪兩種方式參與復雜數(shù)字電路的設(shè)計?復雜數(shù)字電路的設(shè)計和復雜數(shù)字電路的仿真驗證。verilog 數(shù)
8、字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室37.用硬件描述語言設(shè)計的數(shù)字系統(tǒng)需要經(jīng)過哪些步驟才能與具體的電路相對應(yīng)?編寫設(shè)計文件;功能仿真;優(yōu)化,布局布線;布線后門級仿真8.為什么說用硬件描述語言設(shè)計的數(shù)字邏輯系統(tǒng)下具有很大的靈活性并可以映射到任何工藝的電路上?硬件描述語言的設(shè)計具有與工藝無關(guān)性。這使得工程師在功能設(shè)計,邏輯驗證階段,可以不必過多考 慮門級及工藝實現(xiàn)的具體細節(jié),只需要利用系統(tǒng)設(shè)計時對芯片的要求,施加不同的約束條件,即可設(shè)計出實際電路。9.軟核是什么?虛擬器件是什么?它們的作用是什么?把功能經(jīng)過驗證的,可綜合的,實現(xiàn)后電路結(jié)構(gòu)總門數(shù)在 5000 門以上的verilog hdl 模型
9、稱為軟核。而把由軟核構(gòu)成的器件稱為虛擬器件。作用:大大縮短設(shè)計周期,加快復雜電路的設(shè)計。10.集成電路行業(yè)中 ip 的含義是什么?固核是什么?硬核是什么?與軟核相比它們各有什么特點?各適合于什么場合?在集成電路行業(yè)中 ip 是知識產(chǎn)權(quán)(intellectual property)的含義。把在某一現(xiàn)場可編程門陣列器件上實現(xiàn)的經(jīng)驗證是正確的,總門數(shù)在 5000 門以上的電路結(jié)構(gòu)編碼文件稱為固核。 把在某一專用集成電路工藝的器件上實現(xiàn)的經(jīng)驗證時正確的總門數(shù)在 5000 門以上的門電路結(jié)構(gòu)版圖掩膜稱為硬核。在工具實現(xiàn)手段和工藝技術(shù)尚未確定的邏輯設(shè)計階段,ip 核具有很大的靈活性,很容易借助 eda 工
10、具與其他外部邏輯結(jié)合為一體。相比之下固核和硬核與其他外部邏輯結(jié)合為一體的靈活性要差很多。11.簡述 top_down 設(shè)計方法和硬件描述語言的關(guān)系?top_down 的設(shè)計方法是首先從系統(tǒng)設(shè)計入手,從頂層進行功能劃分和結(jié)構(gòu)設(shè)計。系統(tǒng)的總仿真是頂層進行功能劃分的總要環(huán)節(jié),而該過程需要采用硬件描述語言的方法。12.system verilog 與 verilog 有什么關(guān)系?適合于何種設(shè)計?system verilog 是 verilog 語言的拓展和延伸。veril 適合系統(tǒng)級,算法級, 寄存器級,邏輯級,門級,電路開關(guān)級設(shè)計而 system verilog 更適合于可重用的可綜合 ip 和可重
11、用的驗證用 ip 設(shè)計,以及特大型基于 ip 的系統(tǒng)級設(shè)計和驗證。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室4第 2 章 verilog 語法的基本概念1.verilog 語言有什么作用?可描述順序執(zhí)行和并行執(zhí)行的程序結(jié)構(gòu);用延遲表達式或事件表達式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結(jié)構(gòu);提供了可帶參數(shù)且非零延續(xù)時間的任務(wù)程序結(jié)構(gòu);提供了可定義新的操作符的函數(shù)結(jié)構(gòu);提供了用于建立表達式的算術(shù)運算符,邏輯運算符,位運算符;verilog hdl 語言作為一種結(jié)構(gòu)化的語言非常適用于門級和開
12、光級的模型設(shè)計;提供了一套完整的表示組合邏輯的基本元件的原話;提供了雙向通路和電阻器件的原話;可建立 mos 器件的電荷分享和電荷衰減動態(tài)模型;verilog hdl 的構(gòu)造性語句可以精確地建立信號的模型;2.構(gòu)成模塊的關(guān)鍵詞是什么?module,endmodule3.為什么說可以用 verilog 構(gòu)成非常復雜的電路結(jié)構(gòu)?因為 verilog 可描述順序執(zhí)行和并行執(zhí)行的程序結(jié)構(gòu); 用延遲表達式或事件表達式來明確地控制過程的啟動時間; 通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結(jié)構(gòu);提供了可帶參數(shù)且非零延續(xù)時間的任務(wù)程序結(jié)構(gòu);提供了可
13、定義新的操作符的函數(shù)結(jié)構(gòu);提供了用于建立表達式的算術(shù)運算符,邏輯運算符,位運算符;verilog hdl 語言作為一種結(jié)構(gòu)化的語言非常適用于門級和開光級的模型設(shè)計; 提供了一套完整的表示組合邏輯的基本元件的原話;提供了雙向通路和電阻器件的原話;可建立 mos 器件的電荷分享和電荷衰減動態(tài)模型;verilog hdl 的構(gòu)造性語句可以精確地建立信號的模型。4.為什么可以用比較抽象的描述來設(shè)計具體的電路結(jié)構(gòu)?因為有可以用比較抽象描述設(shè)計電路結(jié)構(gòu)的語言,而這種語言是適合數(shù)字系統(tǒng)設(shè)計的語言。5.是否任意抽象的符合語法的 verilog 模塊都可以通過綜合工具轉(zhuǎn)變?yōu)殡娐方Y(jié)構(gòu)?不能。要符合語法,還符合一些
14、基本規(guī)則的 verilog 模塊才可以通過綜合工具轉(zhuǎn)變?yōu)殡娐方Y(jié)構(gòu)。6.什么叫綜合?verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室5通過綜合工具把行為級描述的模塊通過邏輯網(wǎng)表自動轉(zhuǎn)化為門級形式的模塊叫綜合。7.綜合是由什么工具來完成的?eda 工具來完成綜合的。8.通過綜合產(chǎn)生的是什么?產(chǎn)生的結(jié)果有什么用處?產(chǎn)生的是由與門,或門和非門組成的加法器,比較器等組合邏輯。產(chǎn)生的模塊很容易與某種工藝的基本元件逐一對應(yīng)起來, 再通過布局布線工具自動地轉(zhuǎn)變?yōu)槟撤N工具工藝的電路布線結(jié)構(gòu)。9.仿真是什么?為什么要進行仿真?仿真是對電路模塊進行動態(tài)的全面測試。通過觀測被測試模塊的輸出信號是否符合要求可
15、以調(diào)試和驗證邏輯系統(tǒng)的設(shè)計和結(jié)構(gòu)準確與否, 并發(fā)現(xiàn)問題及時修改。10.仿真可以在幾層面上進行?每個層面的仿真有什么意義?分別為;前仿真,邏輯網(wǎng)表仿真,門級仿真和布線后仿真;前仿真,邏輯網(wǎng)表仿真,門級仿真;可以調(diào)試和驗證邏輯系統(tǒng)的設(shè)計和結(jié)構(gòu)準確與否,并發(fā)現(xiàn)問題及時修改。布線后仿真:分析設(shè)計的電路模塊的運行是否正常。11.模塊的端口是如何描述的?用“.”表示被引用模塊的端口。12.在引用實例模塊的時候,如何在主模塊中連接信號線?用小括號中來表示本模塊中與之連接的模塊。13.如何產(chǎn)生連續(xù)的周期性測試時鐘?用 always 語句來產(chǎn)生連續(xù)的周期性測試模塊。14.如果不用 initial 塊,能否產(chǎn)生測
16、試時鐘?不能,沒有 initial 塊,就不知道時鐘信號的初始值15.從本講中的簡單例子,是否能明白 always 塊與 initial 塊有什么不同?initial 塊只執(zhí)行一次,而 always 塊執(zhí)行無數(shù)次。16.為什么說 verilog 可以用來設(shè)計數(shù)字邏輯電路和系統(tǒng)?因為 verilog 可描述順序執(zhí)行和并行執(zhí)行的程序結(jié)構(gòu); 用延遲表達式或事件表達式來明確地控制過程的啟動時間; 通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結(jié)構(gòu);提供了可帶參數(shù)且非零延續(xù)時間的任務(wù)程序結(jié)構(gòu);提供了可定義新的操作符的函數(shù)結(jié)構(gòu);提供了用于建立表達式的
17、算術(shù)運算符,邏輯運算符,位運算符;verilog hdl 語言作為一種結(jié)構(gòu)化的語言非常適用于門級和開光級的模型設(shè)計; 提供了一套完整的表示組合邏輯的基本元件的原話;提供了雙向通路和電阻器件的原話;可建立 mos 器verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室6件的電荷分享和電荷衰減動態(tài)模型;verilog hdl 的構(gòu)造性語句可以精確地建立信號的模型。第 3 章 模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運算符號1.模塊由幾個部分組成?由描述接口和描述邏輯功能兩部分組成。2.端口分為幾種?三種:輸出口,輸入口,輸入/輸出口3.為什么端口要說明信號的位寬?因為如果不說明信號的位寬可能會在信號
18、發(fā)生改變時發(fā)生錯誤, 不容易看出接收到的信號的數(shù)據(jù)寬度,就很難進行數(shù)據(jù)的處理。4.能否說模塊相當于電路圖中的功能模塊,端口相當于功能模塊的引腳?可以那樣說,每個模塊都有特定的功能,而功能的實現(xiàn)就必須依靠具體的電路得以實現(xiàn),端口是信號傳遞的通道,可以說是功能模塊的引腳。5.模塊中的功能描述可以由哪幾類語句或語句塊組成?它們出現(xiàn)的順序會不會影響功能的描述?用 assign 語句聲明,用實例元件,用 always 塊。它們出現(xiàn)的順序不會影響到功能的描述。6.這幾類描述中哪一種直接與電路結(jié)構(gòu)有關(guān)?用實例元件直接與電路結(jié)構(gòu)有關(guān)。7.最基本的 verilog 變量有哪幾種類型?wire 型、reg 型、m
19、emory 型8.reg 型和 wire 型變量的差別是什么?reg 型變量是寄存器型變量,wire 型變量是連線型變量。兩者根本性的差別在于reg 型變量有個寄存器來存放變量,這個值只有變量發(fā)生改變時才會改變否則保證原來的值不變,wire 型變量的值不是確定的值。9.由連續(xù)賦值語句(assign)賦值的變量能否是 reg 類型的?可以是 reg 類型的變量。10.在 always 模塊中被賦值的變量能否是 wire 類型的?如果不能是 wire 類型, 那么必須是什么類型的?它們表示的一定是實際的寄存器嗎?不能。必須是 reg 類型的變量,它們表示不一定是實際的寄存器。11.參數(shù)類型的變量有
20、什么用處?參數(shù)類型的變量的好處是可以提高程序的可讀性和可維護性。12.verilog 語法規(guī)定的參數(shù)傳遞和重新定義功能有什么直接的應(yīng)用價值?verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室7可以用于定義延遲時間和變量寬度。13.邏輯比較運算符小于等于“=”和非阻塞賦值大于等于“=”的表示是完全一樣的,為什么 verilog 在語句解釋和編譯時不會搞錯?因為邏輯比較時“=”兩邊是兩個操作數(shù),此時“=”是雙目運算符,而在非阻塞賦值時“=”的右邊是操作數(shù),此時“=”單目運算符。14.是否可以說實例引用的描述實際上就是嚴格意義上的電路結(jié)構(gòu)描述?不能實例引用的描述是在門級電路上加以描述的, 和
21、嚴格意義上的電路結(jié)構(gòu)描述還是有點差距的。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室8第 4 章 運算符、賦值語句和結(jié)構(gòu)說明語句1.邏輯運算符與按位邏輯運算符有什么不同,它們各在什么場合使用?用邏輯運算符運算時是兩個操作數(shù)進行邏輯運算, 而按位邏輯運算符運算時是兩個操作數(shù)對應(yīng)的每一位進行邏輯運算。邏輯運算符多用于條件的判斷,按位邏輯運算符用于信號的運算和檢測。2.指出兩種邏輯等式運算符的不同點,解釋書上的真值表。兩種邏輯運算符有很大的區(qū)別。 ”=“要求兩個比較數(shù)完全一樣,無論高阻還是未知,只要每位完全相同即可;而“=”只有在兩個操作數(shù)每位都已知即 1或 0,在這種前提下兩個操作數(shù)
22、每位相同結(jié)果才為真,如果不是在這個前提那么其結(jié)果始終為 x;3.拼接符的作用是什么?為什么說合理地使用拼接符可以提高程序的可讀性和可維護性?拼接符表示的操作其物理意義是什么?拼接符的作用是把兩個或多個信號的某些位拼接起來進行運算操作。 因為借助拼接符可以用一個符號名來表示由多位信號組成的復雜信號。 其物理意義是將多個信號結(jié)合成一個信號。4.如果都不帶時間延遲,阻塞和非阻塞賦值有什么不同?舉例說明它們的不同點?阻塞和非阻塞賦值的區(qū)別在阻塞是順序執(zhí)行而非阻塞是并行執(zhí)行。以下面的語句舉例非阻塞賦值always(posedge clk)beginb=a;c=b;end阻塞賦值always(posedg
23、e clk)beginb=a;c=b;end兩種不同的賦值方式結(jié)果是不同的, 非阻塞賦值 b=a;cend_wave;endfork#50r=h35;#100r=he2;#150r=h00;#200r=hf7;#250-end_wave;join上面兩個塊執(zhí)行起來效果是完全一樣的,第一個模塊是按順序執(zhí)行,而第二個模塊是每個語句同時執(zhí)行的。6.如果在順序塊中,前面有一條語句是無限循環(huán),下面的語句能否進行?下面的語句不能執(zhí)行。7.如果在并行塊中,發(fā)生上述情況,會如何呢?下面的語句能夠執(zhí)行。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室10第 5 章 條件語句、循環(huán)語句、塊語句與生成語句
24、1.為什么建議在編寫verilog 模塊程序時, 如果用到if語句建議大家把配套的else情況也考慮在內(nèi)?因為如果沒有配套的 else 語句,在不滿足 if 條件語句時,將會保持原來的狀態(tài)不變,從而在綜合時會產(chǎn)生一個鎖存器,而這是設(shè)計不想要的結(jié)果。2.用 if 語句;elseif 語句;elseif 語句;.else 語句和用 case endcase 表示不同條件下的多個分支是完全相同的,還是有什么不同?不是完全相同。 (1)與 case 語句中的控制表達式和多分支表達式這種比較相比,if_else_if 結(jié)構(gòu)中條件表達式更為直觀些。 (2) 對于那些分支表達式中存在不定值x 和高阻值 z
25、的位時 case 語句提供了處理這種情況的手段。3.如果 case 語句的分支條件沒有覆蓋所有可能的組合條件,定義了 default 項和沒有定義 default 項有什么不同?定義了 default 項則會使電路描述的更加的清楚,綜合的時候不會產(chǎn)生不想要的結(jié)果,沒用定義 default 則會使在綜合是產(chǎn)生一個鎖存器。4.仔細闡釋 case、casex 和 casez 之間的不同。case、casex、casez 對應(yīng)的真值表如上,可以看出 case 無論是 0,1,還是 x 高阻都能夠比較,而 casez 不將高阻進行比較,在其它情況都進行比較;而 casex 不將高阻和 x 進行比較,在其
26、它情況進行比較。5.forever 語句如果運行了,在它下面的語句能否運行?它位于 begin end 和位于fork join 塊有什么不同?不能運行。位于 begin end,由于 begin and 是順序塊,所以只要執(zhí)行到 forever則將不能運行下面的程序;而位于 fork join,它是并行塊,執(zhí)行了 forever 還是能夠執(zhí)行 forever 下面的語句。6.forever 語句 repeat 語句能否獨立于過程塊而存在,即能否不在 initial 或 always塊中使用?forever 不能獨立于過程塊中,而 repeat 能夠獨立于過程塊中。verilog 數(shù)字系統(tǒng)設(shè)計
27、教程思考題答案天之藍電子工作室117.用 for 循環(huán)為存儲器許多單元賦值時是否需要時間?為什么如果不定義時間延遲,它可以不需要時間就把不管多大的儲存器賦值完畢?如果定義了時間延遲則需要時間,否則不需要時間。因為循環(huán)的邊界是確定的,那么在綜合時該循環(huán)語句被認為是重復的硬件結(jié)構(gòu)。8.for 循環(huán)是否可以表示可以綜合的組合邏輯?請舉例說明??梢员硎揪C合的組合邏輯。例如用 for 循環(huán)實現(xiàn)的乘法器9.在編寫測試模塊時用什么方法可以使 for 循環(huán)按照時鐘的節(jié)拍運行?請比較圖5.3 所示程序段。可以在 for 循環(huán)的最后嵌套時鐘節(jié)拍運行的信號。第一種程序不能按照時鐘節(jié)拍來對 memi賦值,而第二種程序
28、可以。10.聲明一個為 oscillate 的寄存器變量并將它初始化為 0,使其每 30 個時間單位進行一次取反操作,不要使用 always 語句(提示:使用 forever 循環(huán))。reg oscillate;initialbeginoscillate=0;forever#30 oscillate=!oscillate;end11.設(shè)計一個周期為 40 個時鐘單位的時鐘循環(huán),其占空比為 25%,使用 always和 initial 塊進行設(shè)計,將其在仿真 0 時刻的值初始化為 0。initialbeginclock=0;alwaysbeginverilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電
29、子工作室12#30 clock=0;#10 clock=1;endend12.給定下面含有阻塞過程賦值語句的 initial 塊, 每個語句在什么仿真時刻開始執(zhí)行?a,b,c 和 d 在仿真過程中的中間值和仿真結(jié)束時的值是什么?initialbegin1a=1b0;2b=#10 1b0;3c=#51b0;4d=#20a,b,c;end第一條語句在仿真開始時就執(zhí)行,第二句在仿真 10 個時鐘單元后執(zhí)行,第三句在仿真 15 個時鐘信號單元后執(zhí)行,第四句在仿真 35 個時鐘單元后執(zhí)行。在中間仿真過程中a=0,b,c,d為不確定值結(jié)束時abcd的值是a=1b0,b=10,c=10,d=3b000。13
30、.在第 12 題中,如果 initial 塊中包含的是非阻塞過程賦值語句,那么各個問題的答案是什么?如果是非阻塞過程賦值則答案是;第一條語句在仿真開始時就執(zhí)行,第二句在仿真 10 個時鐘單元后執(zhí)行,第三句在仿真 5 個時鐘信號單元后執(zhí)行,第四句在仿真 20 個時鐘單元后執(zhí)行。在中間仿真過程中 a=0,b,c,d 為不確定值結(jié)束時 abcd的值是 a=1b0,b=10,c=10,d=3b000。14.下面例子中 d 的最終值是什么?initialbeginb=1b1;c=1b0;#10b=1b0;endinitialbegind=#25(b|c);endd 的最終值 0。verilog 數(shù)字系統(tǒng)
31、設(shè)計教程思考題答案天之藍電子工作室1315 使用帶同步清零端的 d 觸發(fā)器(清零高電平有效,在時鐘下降沿執(zhí)行清零操作)設(shè)計下一個下降沿觸發(fā)的 d 觸發(fā)器,只能使用行為語句(提示:d 觸發(fā)器的輸出 q 應(yīng)當聲明為寄存器變量)。 使用設(shè)計出的 d 觸發(fā)器輸出一個周期為 10 個時間單位的時鐘信號。module d_ff(clr,clk,d,q);input clr,clk,d;output q;reg q;always (posedge clr or necedge clk)beginif(clr)q=0;else#10 q=d;endendmodule16.使用帶有異步清零端的 d 觸發(fā)器設(shè)計第
32、 15 題要求的 d 觸發(fā)器(在清零端變?yōu)楦唠娖胶罅⒓磮?zhí)行清零操作,無須等待下一個時鐘下降沿),并對這個 d 觸發(fā)器進行測試。module d_ff(clr,clk,d,q);input clr,clk,d;output q;reg q;always (posedge clr )beginq=0;endalways (necedge clk)begin#10 q=d;endendmodule17.使用wait語句設(shè)計一個電平敏感的鎖存器, 該鎖存器的輸入信號為d和clock,輸出為 q,其功能是當 clock=1 時 q=d;module l_ff(d,clock,q);inputd,clk;
33、h t t p : / /b l o g . s i n a . c o m . c n / s /b l o g _6 0 8 a 53150 10 0 r hk s . h t m lverilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室14outputq;regq;alwaysbeginwait(clock=1)q=d;endendmodule18.使用條件語句設(shè)計例 5.18中的四選一多路選擇器,外部端口必須保持不變。module mux4_to_1(out,i0,i1,i2,i3,s1,s0);output out;input i0,i1,i2,i3;input s1,s0;re
34、g out;always (s1 or s0 or i0 or i1 or i2 or i3)beginif(s1=0&s0=0)out=i0;else if(s1=0&s0=1)out=i1;else if(s1=1&s0=0)out=i2;else if(s1=1&s0=1)out=i3;elseout=1bx;endendmodule19.使用 case 語句設(shè)計八功能的算術(shù)運算單元(alu),其輸入信號 a 和 b 均為 4 位,還有功能選擇信號 select 為 3 位,輸出信號為 out(5 位),算術(shù)運算單元 alu 所執(zhí)行的操作與 select
35、信號有關(guān), 具體關(guān)系如 5.1 所列(忽略輸出結(jié)果中的上溢和下溢的位)。另外的條件語句沒寫的話會自動生成一個鎖存器。即為當c l o c k 不等于1的時候,q 值不發(fā)生變化。o u t 選擇的是一個寄存器變量,是因為o u t 是隨著 里面的語句變化而變化的,所以是寄存器變量。多路選擇器的電路圖?數(shù)電p 2 0 7 ,用寄存器怎么寫?? ?verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室15modulealu(a,b,select,out);input3:0a,b;input2:0select;output4:0 out;reg4:0 out;always (select)begi
36、ncase(select)3b000: out=a;3b001: out=a+b;3b010: out=a-b;3b011: out=a/b;3b100: out=a%b;3b101: out=a1;3b111: out=ab;default:out=5bx;endcaseendendmoduleverilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室1620.使用 while 循環(huán)設(shè)計一個時鐘信號發(fā)生器。其時鐘信號的初值為 0,周期為 10個時間單元。initialbeginclk=0;while(1)#10 clk=!clk;end21.使用 for 循環(huán)對一個長度為 1024(地址從
37、01023)、位寬為 4 的寄存器類型數(shù)組 cache_var 進行初始化,把所有單元都設(shè)置為 0.beginreg3:0cache_var1023:0;intiger i;for(i=0;i1024;i+)cache_vari=0;end22.使用 forever 循環(huán)設(shè)計一個時鐘信號,周期為 10,占空比為 40%,初值為 0.initialbeginclk=0;foreverbegin#6 clk=0;#4 clk=1;endend23.使用 repeat 將語句 a=a+1 延遲 20 個時鐘上升沿之后再執(zhí)行。parameter delay=20;intigeri;reg a;begi
38、nrepeat(delay)過多少個時鐘不是用i 來進行循環(huán)的,直接#就可以了!verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室17always (posedge clk)begini+;if(i=20)a=a+1;endend24.下面是一個內(nèi)嵌順序塊和并行塊的塊語句。該塊的執(zhí)行結(jié)束時間是多少?事件的順序是怎樣的?每條語句的仿真結(jié)束時間是多少?initialbegin/ 順序執(zhí)行x=1b0;#5y=1b1;.5fork/并行執(zhí)行#20 a=x;.25#15 b=y;.20join#40 x=1b1;/ 順序執(zhí)行.65fork/并行執(zhí)行#10 p=x;.75begin/ 順序執(zhí)行#1
39、0 a=y;.75#30 b=x;.105end#5 m=y;.70joinend該塊的執(zhí)行結(jié)束時間是 5+20+40+40=105 個時鐘單位每條語句執(zhí)行的時間如上圖所標25.用 forever 循環(huán)語句,命名塊(named block)和禁用(disabling of) 命名塊來設(shè)計一個八位計數(shù)器。這個計數(shù)器從 count=5 開始計數(shù),到 count=67 結(jié)束計數(shù)。每個時鐘正跳變計數(shù)器加一,時鐘的周期為 10,計數(shù)器的設(shè)計只用到了一次循環(huán),然后就被禁用了(提示:使用 disable 語句)。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室18reg7:0count;initi
40、albegincount =5;endbegin:mame blockforeverbegin: disabling ofalways (posedge clk)beginif(count67)#10 count=count+1;disable: disabling of;endendendverilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室19第 6 章 結(jié)構(gòu)語句、系統(tǒng)任務(wù)、函數(shù)語句和顯示系統(tǒng)任務(wù)1.怎樣理解 initial 語句只執(zhí)行一次的概念?在仿真開始時,initial 語句只執(zhí)行一次,但 initial 語句里面的語句可能不執(zhí)行一次,因為如果是 while 循環(huán),雖然 init
41、ial 語句是執(zhí)行一次,但只要進了 while 循環(huán),則會執(zhí)行到仿真結(jié)束。2.在 initial 語句引導的過程中是否可以有循環(huán)語句?如果可以, 是否與思考題 1,互相矛盾?可以,并不互相矛盾。initial 語句確實是執(zhí)行了一次,但并不意味著 initial 語句過程中就不能是循環(huán)語句,兩者并不矛盾。3.怎樣理解由 always 語句引導的過程塊是不斷活動的?always 語句的過程塊是不斷活動的,在仿真過程中 always 塊始終在循環(huán)的活動著,檢查 always 語句后面的信號是否發(fā)生相應(yīng)改變,這是 always 活動的實質(zhì),如果 always 語句后面沒有檢查的信號則將會進入一個循環(huán),
42、將會使仿真器鎖死。4.不斷活動與不斷執(zhí)行有什么不同?不斷活動是 always 語句不斷活動檢查是否滿足條件(如某個信號發(fā)生改變) ,不斷執(zhí)行時 always 語句引導的過程中的語句不斷的執(zhí)行著。5.怎樣理解沿觸發(fā)和電平觸發(fā)的不同?沿觸發(fā)是在某個信號在上升沿或下降沿到來時,觸發(fā)執(zhí)行過程塊。電平觸發(fā)是在某個信號發(fā)生改變時就會觸發(fā)執(zhí)行過程塊。6.是不是可以說沿觸發(fā)是有間隔的,在一定的時間區(qū)間里只需要注意有限的點,而電平觸發(fā)卻需要注意無窮多個點?不是。沿觸發(fā)是信號的上升沿或下降沿進行觸發(fā),而電平觸發(fā)是在某個信號發(fā)生改變時進行觸發(fā),并不需要注意無窮多個點。7.沿觸發(fā)的 always 塊和電平觸發(fā)的 al
43、ways 塊各表示什么類型的邏輯電路的行為?為什么?沿觸發(fā)的 always 塊常表示時序邏輯電路,因為其和時序有很關(guān)。電平觸發(fā)的always 塊常表示組合邏輯電路,因為其和只和電平有關(guān)。8.簡單敘述任務(wù)和函數(shù)的不同點(1)函數(shù)只能與主模塊共用同一個仿真時間單元,而任務(wù)可以定義自己的仿真時間單位;(2)函數(shù)不能啟動任務(wù),而任務(wù)能啟動其他任務(wù)和函數(shù);(3)函數(shù)至少要有一個輸入變量,而任務(wù)可以沒有或有多個任何類型的變量;(4)函數(shù)返回一個值,而任務(wù)則不返回值。9.簡單敘述$display、$write 和$strobe 的不同點。$display 自動地在輸出后進行換行,$write 則不進行自動換
44、行,其它都非常相似。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室20如果許多其他語句與$display 任務(wù)在同一個時間單位執(zhí)行,那么這些語句與$display 任務(wù)的執(zhí)行順序是不確定的。如果使用$strobe,該語句總是在同時刻的其他賦值語句執(zhí)行完成之后執(zhí)行。10.簡單敘述 verilog1364-2001 版語法規(guī)定的電平敏感列表的簡化寫法。關(guān)鍵詞“or”也可以使用“, ”來代替。11.如何在 verilog 測試模塊中,利用文件的讀寫產(chǎn)生預(yù)定格式的信號,并記錄有測試價值的信號?verilog 提供了系統(tǒng)任務(wù)來選擇要轉(zhuǎn)儲的模塊實例或模塊實例信號(dumpvars) ,選擇 v
45、cd 文件的名稱($dumpfile),選擇轉(zhuǎn)儲過程的起點和終點($dumppon,$dumpoff),選擇生成檢測點(sdunpall),其使用方法如下initial$dumpfile(myfile.dmp);/仿真信息轉(zhuǎn)儲到 myfile.dmp 文件initial$dumpvars;/沒有指定變量范圍,把設(shè)計中全部信號都轉(zhuǎn)儲initail$dunpvars(1,top);/轉(zhuǎn)儲模塊實例投票中的信號/數(shù) 1 表示層次的等級只轉(zhuǎn)儲 top 下第一層信號/即轉(zhuǎn)儲 top 模塊中的變量,而不轉(zhuǎn)儲在 top 中引用initial$dumpvars(2,top.m1);/轉(zhuǎn)儲 top.m1 模塊下兩
46、層的信號initial$dumpvars(0,top.m1);/數(shù) 0 表示轉(zhuǎn)儲 top.m1 模塊下面各個層的所有信號initialbegin$dumpon;/啟動轉(zhuǎn)儲過程#100000 $dunpoff;/過了 100000 個仿真單位后,停止轉(zhuǎn)儲過程endinitial/生成一個檢查點,轉(zhuǎn)儲所有 vcd 變量的現(xiàn)行值$dumpall;verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室21第 7 章 調(diào)試用系統(tǒng)任務(wù)和常用編譯預(yù)處理語句1.為什么在多個模塊調(diào)試的情況下$monitor 需要配合$monitoron 和$monitoroff 來工作?$monitoron 和$monit
47、oroff 任務(wù)的作用是通過打開和關(guān)閉監(jiān)控標志來控制監(jiān)控任務(wù)$monitor的啟動和停止, 這樣使得程序員可以很容易地控制$monitor何時發(fā)生。$monitoron 則用于打開監(jiān)控標志,啟動監(jiān)控任務(wù)$monitor。通常在通過調(diào)用$monitoron 來啟動$monitor 時不管$monitor 參數(shù)列表中的值是否發(fā)生改變,總是立刻輸出顯示當前時刻參數(shù)列表中的值, 這用于在監(jiān)控的初始時刻設(shè)定初始比較值。在默認情況下,控制標志在仿真的起始時刻就已經(jīng)打開了。在多模式調(diào)試的情況下,許多模塊中都調(diào)用了$monitor,因為任何時刻只能用一個$monitor 起作用,因此需配合$monitoron
48、 與$monitoroff 使用,把需要監(jiān)視的模塊用$monitor 打開,在監(jiān)視完畢后及時用$monitoroff 關(guān)閉,以便把$monitor 讓給其他模塊使用。2.請用$random 配合求模運算編寫:(1)用于測試的跳變沿抖動為周期 1/10 的時鐘波形。(2)隨機出現(xiàn)的脈寬隨機的窄脈寬。module random_pulse(dout);output9:0dout;reg9:0 dout;integer delay;initialbegin#10 dout=0;for(k=0;k100;k=k+1)begindelay=$random%10;#delay dout=1;#delay
49、dout=0;endendendmodule3.verilog 的編譯預(yù)處理與 c 語言的編譯預(yù)處理有什么不同?verilog 的編譯處理,在編譯處理命令之前要以開頭。4.請仔細闡釋timescale 編譯預(yù)處理的作用?timescale 命令用來說明跟在該命令后的模塊的時間單位和時間精度。使用timescale 命令可以在同一個設(shè)計里包含采用了不同的時間單位的模塊。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室225.不同timescale 定義的多模塊仿真測試時需要注意什么?如果在同一個設(shè)計里,多個模塊中用到的時間單位和時間精度單位不同, 需要用到以下的時間結(jié)構(gòu):(1)用tim
50、escale 命令來聲明本模塊中所用到的時間單位和時間精度;(2)用系統(tǒng)任務(wù)$printtimescale 來輸出顯示一個模塊的時間單位和時間精度;(3)用系統(tǒng)函數(shù)$time和$realtime及%t格式聲明來輸出顯示eda工具記錄的時間信息。6.為什么說系統(tǒng)任務(wù)$readmen 可以用來產(chǎn)生用于算法驗證的極其復雜的測試用數(shù)據(jù)流?在 verilog hdl 程序中有兩個系統(tǒng)任務(wù)$readmemb 和$readmemh, 并用來從文件中讀取數(shù)據(jù)到存儲器中,這兩個系統(tǒng)任務(wù)可以在仿真的任何時刻被執(zhí)行使用。復雜數(shù)據(jù)可以用 c 語言產(chǎn)生,存在文件中,用$readmem 取出存入存儲器,在按節(jié)拍輸出,這在
51、驗證算法邏輯電路時特別有用。7.為什么熟練地使用條件編譯命令可以使源代碼有更大的靈活性,可以使用于不同的實現(xiàn)對象, 如不同工藝的 asic 或速度規(guī)模不同的 fbga 或 cpld,從而為軟核的商品化創(chuàng)造條件?合理的使用條件編譯和條件執(zhí)行預(yù)處理可以使測試程序適應(yīng)不同的編譯環(huán)境,也可以把不同的測試過程編寫到一個統(tǒng)一的測試程序中去,可以簡化測試的過程,對于復雜設(shè)計的驗證模塊的編寫很有實用價值。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室23第二部分設(shè)計和驗證部分第 9 章 verilog hdl 模型的不同抽象級別1.verilog hdl 的模型共有哪幾種類型(級別)?有 5 種類
52、型,系統(tǒng)級,算法級,rtl 級,門級,開關(guān)級。2.每種類型的 verilog hdl 各有什么特點?主要用于什么場合?系統(tǒng)級,算法級和 rtl 級是屬于行為級,門級是屬于結(jié)構(gòu)級的。系統(tǒng)級:用高級語言結(jié)構(gòu)實現(xiàn)設(shè)計模塊的外部性能的模型。算法級:用高級語言結(jié)構(gòu)實現(xiàn)設(shè)計算法的模型。rtl 級:描述數(shù)據(jù)在寄存器之間流動和如何處理這些數(shù)據(jù)的模型。門級:描述邏輯門以及邏輯門之間的連接的模型。開關(guān)級:描述器件中三極管和存儲節(jié)點以及它們之間連接的模型。3.不可綜合成為電路的 verilog 模塊有什么好處?描述比較直觀4.為什么說 verilog hdl 的語言結(jié)構(gòu)可以支持構(gòu)成任意復雜的數(shù)字邏輯系統(tǒng)?通過 ve
53、rilog 語言中的模塊實例引用,可以構(gòu)成任何復雜結(jié)構(gòu)的電路,這種以結(jié)構(gòu)方式所建成的 verilog 模型不僅是可以以仿真的,而且也是可以綜合的,其本質(zhì)是表示電路的具體結(jié)構(gòu),也可以說這種 verilog 文件也是一種結(jié)構(gòu)網(wǎng)表。5.什么是綜合?是否任何符合語法的 verilog hdl 程序都可以綜合?綜合是通過綜合器把hdl程序轉(zhuǎn)化成標準的門級結(jié)構(gòu)網(wǎng)表。 不是任何復合語法的veriloghdl 程序都可以綜合。6.綜合生成的是不是真實的電路?若不是,還需要哪些步驟才能真正成為具體的電路?不是,真實的電路還需要利用 asic 和 fpga 制造廠商的布局布線工具,根據(jù)綜合生成的標準的門級結(jié)構(gòu)網(wǎng)來
54、產(chǎn)生。7.為什么綜合以后還可以用 verilog 進行仿真?通過綜合以后產(chǎn)生的是門級結(jié)構(gòu),而門級結(jié)構(gòu)再經(jīng)過 verilog 仿真測試驗證其正確性8.同一物理電路的行為模塊仿真驗證與結(jié)構(gòu)模塊的仿真驗證在意義上有什么不同?行為模塊的仿真首先要轉(zhuǎn)換為結(jié)構(gòu)模塊再進行仿真驗證,結(jié)構(gòu)模塊是直接進行仿真的。9.為什么說前端邏輯設(shè)計必須包含結(jié)構(gòu)仿真驗證,只有行為驗證是遠遠不夠的?只有行為仿真遠遠不夠的,因為 verilog hdl 各種建模的方法,發(fā)揮各自在不同類型電路描述中的長處, 而且要在層次管理工具的協(xié)調(diào)下把各個既獨立又相互聯(lián)系的模塊組和, 才能有效的設(shè)計出高質(zhì)量的數(shù)字電路來。10.什么是 top-do
55、wn 設(shè)計方法?通過什么手段來驗證系統(tǒng)分塊的合理性。通過行為建模把一個復雜的系統(tǒng)分解成可操作的若干個模塊,每個模塊之間的邏輯關(guān)系通過行為建模的仿真加以驗證。11.編寫兩路每路為 1 位信號的二選一多路器的行為模塊,再編寫它的結(jié)構(gòu)模塊,然后編寫測試模塊分別對這兩個模塊進行測試,觀測仿真運行的結(jié)果,編寫實驗報告。行為模塊module sel2_1(a,b,s,f);input a,b,s;verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室24output f;reg f;always (a,b,s)beginif(s=0)f=a;elsef=b;endendmodule結(jié)構(gòu)模塊module
56、 sel2_1(a,b,s,f);input a,b,s;output f;wire s_not,and1,and2;not u1(s_not,s);and u2(and1,b,s),u3(and2,a,s_not);oru4(f,and1,and2);endmodule12.如果讓你編寫兩路每路為 8 位信號的二選一多路器的結(jié)構(gòu)模塊是不是感覺麻煩?編寫行為模塊是不是很方便?是,編寫行為模塊會很方便,只需要將輸入輸出的一位改為八位。13.用什么方法可以把行為模塊轉(zhuǎn)換為結(jié)構(gòu)模塊?用你掌握的綜合器,把 10 題和 11 題從行為模塊轉(zhuǎn)換為 verilog 網(wǎng)表,仔細閱讀自動生成的網(wǎng)表文件。用 ed
57、a 綜合工具可以把行為模塊轉(zhuǎn)換為結(jié)構(gòu)模塊。14.編寫測試模塊分別對行為的和自動生成的 verilog 網(wǎng)表進行測試,比較仿真結(jié)果細微的不同,分析為什么不同。verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室25verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室26第 10 章 如何編寫和驗證簡單的純組合邏輯1.寫出八位加法器和八位乘法器的邏輯表達式,比較用超前進位邏輯和不用超前進位邏輯的延遲。八位加法器:module add8(a,b,sum,cout);input7:0 a,b;output7:0 sum;output cout;assign count,sum=a+b;en
58、dmodule八位乘法器module add8(a,b,m);input7:0 a,b;output15:0 m;assign m=a*b;endmodule用超前進位邏輯可以減少由于逐位進位信號的傳遞所造成的延時。2.為什么用算法操作符號表示的加法器和乘法器能通過綜合器轉(zhuǎn)變?yōu)檫壿嬰娐??除了用算法操作符的表達式實現(xiàn)加法器和乘法器外, 是否可以直接引用可配置的參數(shù)化實例來實現(xiàn)算術(shù)操作電路?因為庫中已經(jīng)存在著可配置的參數(shù)化加法器乘法器的電路結(jié)構(gòu)和相應(yīng)行為模型??梢灾苯右每膳渲玫膮?shù)化實例來實現(xiàn)算術(shù)操作電路。3.提高復雜運算組合邏輯運算速度有哪些辦法?采用流水線的設(shè)計方法,用總線的方式實現(xiàn)數(shù)據(jù)流通
59、。4.如何用 verilog hdl 模塊來描述總線的操作?為什么總線的操作必須有嚴格的時序控制?各運算部件和數(shù)據(jù)寄存器可以通過帶控制的三態(tài)門與總線的連接, 通過對控制端電平的控制來確定在某一段時間內(nèi),總線歸哪兩個或哪幾個部件使用。因為使總線連接模塊能正常工作的最重要的因素是與其他模塊的配合, 控制信號的互相配合由同步狀態(tài)機控制的開關(guān)陣列控制。5.詳細解釋為什么采用流水線的辦法可以顯著提高層次多的復雜組合邏輯的運算速度。采用流水線技術(shù)可以在相同的半導體工藝的前提下通過電路結(jié)構(gòu)的改進大幅度地提高重復多次使用的復雜組合邏輯計算電路的吞吐量, 從而來提高層次多的復雜組合邏輯的運算速度。 如果某個組合
60、邏輯設(shè)計的處理流程可以分為若干個步驟,而且整個數(shù)據(jù)處理過程是單向的即沒有反饋或者迭代運算,前一個步驟的輸出是下一個步驟的輸入, 則可以考慮采用流水線設(shè)計方法提高系統(tǒng)的數(shù)據(jù)處理頻率即吞吐量。把組合邏輯分成延遲時間相等的小塊,每塊完成一定的組合邏輯功能都用寄存器暫存保存組合邏輯輸出的數(shù)據(jù)值, 只要小塊的組合邏輯的延遲小于時鐘周期, 整個組合邏輯的輸入值每個時鐘就可以變化一次不會由于組合邏輯的延遲引起輸出值的錯誤,若沒有這些寄存器來暫時保存局部組合邏輯的輸出值,則為了保證整個組合邏輯的輸出正確,輸出端信號的變化周期必須大于整體verilog 數(shù)字系統(tǒng)設(shè)計教程思考題答案天之藍電子工作室27邏輯的延遲時間。數(shù)據(jù)處理的吞吐量受到限制,
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 殯葬考試題庫答案
- 出門心理測試題及答案
- 成章編程考試題及答案
- 2025年會計實務(wù)知識大綱試題及答案
- 學校班主任的班級文化塑造策略計劃
- 2025年工程法規(guī)考試心理調(diào)節(jié)技巧試題及答案
- 中級會計實務(wù)考試各章節(jié)梳理與試題答案
- 復習規(guī)劃中級會計實務(wù)考試試題及答案
- 2025年工程法規(guī)考試明細試題及答案
- 建立良好師生關(guān)系的建議計劃
- 2025年交管12123駕駛證學法減分題庫與參考答案
- 食堂餐飲服務(wù)個性化與多樣化考核試卷
- 事業(yè)單位工資福利政策培訓
- 表現(xiàn)技法(山東聯(lián)盟)知到智慧樹章節(jié)測試課后答案2024年秋濰坊學院
- 培訓班脫口秀課件
- 2021圍產(chǎn)期抑郁癥篩查與診治專家共識(全文)
- 《兔子坡》小學生閱讀分享課課件
- 《風電施工流程》課件
- 2024-2025學年人教版初中物理九年級全一冊《電與磁》單元測試卷(原卷版)
- 沈陽市第二屆“舒心傳技 莘紳向陽”職業(yè)技能大賽技術(shù)工作文件-建筑信息模型技術(shù)文件
- 文化市場法律法規(guī)培訓
評論
0/150
提交評論