![《verilog-數(shù)字系統(tǒng)設計課程》(第二版)思考題答案_第1頁](http://file4.renrendoc.com/view/cd94771cfaa760775128cd1b0d74e549/cd94771cfaa760775128cd1b0d74e5491.gif)
![《verilog-數(shù)字系統(tǒng)設計課程》(第二版)思考題答案_第2頁](http://file4.renrendoc.com/view/cd94771cfaa760775128cd1b0d74e549/cd94771cfaa760775128cd1b0d74e5492.gif)
![《verilog-數(shù)字系統(tǒng)設計課程》(第二版)思考題答案_第3頁](http://file4.renrendoc.com/view/cd94771cfaa760775128cd1b0d74e549/cd94771cfaa760775128cd1b0d74e5493.gif)
![《verilog-數(shù)字系統(tǒng)設計課程》(第二版)思考題答案_第4頁](http://file4.renrendoc.com/view/cd94771cfaa760775128cd1b0d74e549/cd94771cfaa760775128cd1b0d74e5494.gif)
![《verilog-數(shù)字系統(tǒng)設計課程》(第二版)思考題答案_第5頁](http://file4.renrendoc.com/view/cd94771cfaa760775128cd1b0d74e549/cd94771cfaa760775128cd1b0d74e5495.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 | HYPERLINK / 百度首頁 HYPERLINK /v2/?login 登錄 HYPERLINK /cashier/browse/vipcashier?dqStatCode=topnav_joinvip&cashier_code=topnav_joinvip VIP意見反饋 HYPERLINK /apps?fr=1011 下載客戶端4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案 HYPERLINK /?fr=nav 首頁 HYPERLINK javascript:void(0); 分類 HYPERLI
2、NK javascript:void(0); 精品內容 HYPERLINK /wenkuverify?from=1 申請認證 HYPERLINK javascript:void(0); 機構合作 HYPERLINK javascript:void(0); 頻道專區(qū) HYPERLINK /xtopic/wkback 百度智慧課堂 HYPERLINK /user/browse/vip/ 百度教育VIP緒 論 HYPERLINK /?fr=crumbs 百度文庫 HYPERLINK /?fr=crumbs HYPERLINK /edu/index 教育專區(qū) HYPERLINK /edu/index
3、HYPERLINK /list/10 高等教育 HYPERLINK /list/10 HYPERLINK /list/109 工學1.什么是信號處理電路?它通常由哪兩大部分組成?信號處理電路是進行一些復雜的數(shù)字運算和數(shù)據(jù)處理,并且又有實時響應要求的電路。它通常有高速數(shù)據(jù)通道接口和高速算法電路兩大部分組成。2.為什么要設計專用的信號處理電路?因為有的數(shù)字信號處理對時間的要求非??量蹋灾劣谟酶咚俚耐ㄓ锰幚砥饕矡o法在規(guī)定的時間內完成必要的運算。通用微處理器芯片是為一般目的而設計的,運算的步驟必須通過程序編譯后生成的機器碼指令加載到存儲器中,然后在微處理器芯片控制下,按時鐘的節(jié)拍,逐條取出指令分析指
4、令和執(zhí)行指令,直到程序的結束。微處理器芯片中的內部總線和運算部件也是為通用目的而設計,即使是專為信號處理而設計的通用微處理器,因為它的通用性也不可能為某一特殊的算法來設計一系列的專用的運算電路而且其內部總線的寬度也不能隨便的改變,只有通過改變程序,才能實現(xiàn)這個特殊的算法,因而其算法速度也受到限制所以要設計專用的信號處理電路。3.什么是實時處理系統(tǒng)?實時處理系統(tǒng)是具有實時響應的處理系統(tǒng)。4.為什么要用硬件描述語言來設計復雜的算法邏輯電路?因為現(xiàn)代復雜數(shù)字邏輯系統(tǒng)的設計都是借助于 EDA 工具完成的,無論電路系統(tǒng)的仿真和綜合都需要掌握硬件描述語言。5.能不能完全用 C 語言來代替硬件描述語言進行算
5、法邏輯電路的設計?不能,因為基礎算法的描述和驗證通常用 C 語言來做。如果要設計一個專用的電路來進行這種對速度有要求的實時數(shù)據(jù)處理,除了以上 C 語言外,還須編寫硬件描述語言程序進行仿真以便從電路結構上保證算法能在規(guī)定的時間內完成,并能通過與前端和后端的設備接口正確無誤地交換數(shù)據(jù)。6.為什么在算法邏輯電路的設計中需要用 C 語言和硬件描述語言配合使用來提高設計效率?首先 C 語言很靈活,查錯功能強,還可以通過 PLI 編寫自己的系統(tǒng)任務,并直接與硬件仿真器結合使用。C 語言是目前世界上應用最為廣泛的一種編程語言,因而 C 程序的設計環(huán)境比 Verilog HDL 更完整,此外,C 語言有可靠地
6、編譯環(huán)境,語法完備,缺陷缺少,應用于許多的領域。比較起來,Verilog 語言只是針對硬件描述的,在別處使用并不方便。而用 Verilog 的仿真,綜合,查錯等大部分軟件都是商業(yè)軟件,與 C 語言相比缺乏長期大量的使用,可靠性較差,亦有很多缺陷。所以只有在 C 語言的配合使用下,Verilog 才能更好地發(fā)揮作用。C語言與 Verilog HDL 語言相輔相成,互相配合使用。這就是即利用 C 語言的完整性又要結合 Verilog 對硬件描述的精確性,來更快更好地設計出符合性能要求的天之藍電子工作室1/view/33cc9b7d192e45361166f54e.html1/44 4/15/201
7、9verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案硬件電路系統(tǒng),從而來提高效率。第一部分 Verilog 數(shù)字設計基礎第 1 章 Verilog 的基本知識1.什么是硬件描述語言?它的主要作用是什么?硬件描述語言是一種用形式化方式來描述數(shù)字電路和系統(tǒng)的語言。它的主要作用是:數(shù)字電路系統(tǒng)的設計者利用這種語言可以從上層到下層(從抽象到具體)逐步描述自己的設計思想,用一系列分層次的模塊來表示極其復雜的數(shù)字系統(tǒng)。2.目前世界上符合 IEEE 標準的硬件描述語言有哪兩種?它們各有什么特點?符合 IEEE 標準的硬件描述語言是 Verilog
8、 HDL 和 VHDL 兩種。它們的共同特點是:能夠形式化地抽象表示電路的行為和結構;支持邏輯設計中層次與范圍的描述;可借用高級語言的精巧結構來簡化電路行為的描述;具有電路仿真與驗證機制以保證設計的正確性;支持電路描述由高層到低層的綜合 1 轉換硬件描述與實現(xiàn)工藝無關;便于文檔管理;易于理解和設計重用。不同點:VerilogHDL 是一種非常容易掌握的硬件描述語言,而 VHDL 掌握起來就比較困難。3.什么情況下需要采用硬件描述語言的設計方法?在對邏輯電路及系統(tǒng)的設計的時間要求很短的情況下需要采用硬件描述語言的設計方法。4.采用硬件描述語言設計方法的優(yōu)點是什么?有什么缺點?優(yōu)點是:與工藝無關性
9、。這使得工程師在功能設計,邏輯驗證階段,可以不必過多考慮門級及工藝實現(xiàn)的具體細節(jié),只需要利用系統(tǒng)設計時對芯片的要求,施加不同的約束條件,即可設計出實際電路。缺點是:需要相應的 EDA 工具,而 EDA 工具的穩(wěn)定性需要進一步的在工程中提升。5.簡單敘述一下利用 EDA 工具并采用硬件描述語言的設計方法和流程?采用自頂向下的設計方法:從系統(tǒng)級開始把系統(tǒng)劃分為基本單元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接用EDA 元件庫中的基本元件來實現(xiàn)為止。其基本流程主要由兩大主要功能部分組成:(1)設計開發(fā) 即從編寫設計文件-綜合到布局布線-電路生成這樣一序列步驟。(2)
10、設計驗證 也就是進行各種仿真的一序列步驟,如果在仿真過程中發(fā)現(xiàn)問題就返回設計輸入進行修改。5.硬件描述語言可以用哪兩種方式參與復雜數(shù)字電路的設計?復雜數(shù)字電路的設計和復雜數(shù)字電路的仿真驗證。天之藍電子工作室2/view/33cc9b7d192e45361166f54e.html2/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案7.用硬件描述語言設計的數(shù)字系統(tǒng)需要經過哪些步驟才能與具體的電路相對應?編寫設計文件;功能仿真;優(yōu)化,布局布線;布線后門級仿真8.為什么說用硬件描述語言設計的數(shù)字邏輯系統(tǒng)下具有很大的
11、靈活性并可以映射到任何工藝的電路上?硬件描述語言的設計具有與工藝無關性。這使得工程師在功能設計,邏輯驗證階段,可以不必過多考 慮門級及工藝實現(xiàn)的具體細節(jié),只需要利用系統(tǒng)設計時對芯片的要求,施加不同的約束條件,即可設計出實際電路。9.軟核是什么?虛擬器件是什么?它們的作用是什么?把功能經過驗證的,可綜合的,實現(xiàn)后電路結構總門數(shù)在 5000 門以上的Verilog HDL 模型稱為軟核。而把由軟核構成的器件稱為虛擬器件。作用:大大縮短設計周期,加快復雜電路的設計。10.集成電路行業(yè)中 IP 的含義是什么?固核是什么?硬核是什么?與軟核相比它們各有什么特點?各適合于什么場合?在集成電路行業(yè)中 IP
12、是知識產權(Intellectual Property)的含義。把在某一現(xiàn)場可編程門陣列器件上實現(xiàn)的經驗證是正確的,總門數(shù)在 5000 門以上的電路結構編碼文件稱為固核。把在某一專用集成電路工藝的器件上實現(xiàn)的經驗證時正確的總門數(shù)在 5000 門以上的門電路結構版圖掩膜稱為硬核。在工具實現(xiàn)手段和工藝技術尚未確定的邏輯設計階段,IP 核具有很大的靈活性,很容易借助 EDA 工具與其他外部邏輯結合為一體。相比之下固核和硬核與其他外部邏輯結合為一體的靈活性要差很多。11.簡述 Top_Down 設計方法和硬件描述語言的關系?Top_Down 的設計方法是首先從系統(tǒng)設計入手,從頂層進行功能劃分和結構設計
13、。系統(tǒng)的總仿真是頂層進行功能劃分的總要環(huán)節(jié),而該過程需要采用硬件描述語言的方法。12.System Verilog 與 Verilog 有什么關系?適合于何種設計?System Verilog 是 Verilog 語言的拓展和延伸。Veril 適合系統(tǒng)級,算法級,寄存器級,邏輯級,門級,電路開關級設計而 System Verilog 更適合于可重用的可綜合 IP 和可重用的驗證用 IP 設計,以及特大型基于 IP 的系統(tǒng)級設計和驗證。天之藍電子工作室3/view/33cc9b7d192e45361166f54e.html3/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)
14、思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第 2 章 Verilog 語法的基本概念1.Verilog 語言有什么作用?可描述順序執(zhí)行和并行執(zhí)行的程序結構;用延遲表達式或事件表達式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結構;提供了可帶參數(shù)且非零延續(xù)時間的任務程序結構;提供了可定義新的操作符的函數(shù)結構;提供了用于建立表達式的算術運算符,邏輯運算符,位運算符;Verilog HDL 語言作為一種結構化的語言非常適用于門級和開光級的模型設計;提供了一套完整的表示組合邏輯的基本元件的原話
15、;提供了雙向通路和電阻器件的原話;可建立 MOS 器件的電荷分享和電荷衰減動態(tài)模型;Verilog HDL 的構造性語句可以精確地建立信號的模型;2.構成模塊的關鍵詞是什么?module,endmodule3.為什么說可以用 Verilog 構成非常復雜的電路結構?因為 Verilog 可描述順序執(zhí)行和并行執(zhí)行的程序結構;用延遲表達式或事件表達式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結構;提供了可帶參數(shù)且非零延續(xù)時間的任務程序結構;提供了可定義新的操作符的函數(shù)結構;提供了用于建立表達式的算術運算符,邏輯
16、運算符,位運算符;Verilog HDL 語言作為一種結構化的語言非常適用于門級和開光級的模型設計;提供了一套完整的表示組合邏輯的基本元件的原話;提供了雙向通路和電阻器件的原話;可建立 MOS 器件的電荷分享和電荷衰減動態(tài)模型;Verilog HDL 的構造性語句可以精確地建立信號的模型。4.為什么可以用比較抽象的描述來設計具體的電路結構?因為有可以用比較抽象描述設計電路結構的語言,而這種語言是適合數(shù)字系統(tǒng)設計的語言。5.是否任意抽象的符合語法的 Verilog 模塊都可以通過綜合工具轉變?yōu)殡娐方Y構?不能。要符合語法,還符合一些基本規(guī)則的 Verilog 模塊才可以通過綜合工具轉變?yōu)殡娐方Y構。
17、6.什么叫綜合?天之藍電子工作室4/view/33cc9b7d192e45361166f54e.html4/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案通過綜合工具把行為級描述的模塊通過邏輯網(wǎng)表自動轉化為門級形式的模塊叫綜合。7.綜合是由什么工具來完成的?EDA 工具來完成綜合的。8.通過綜合產生的是什么?產生的結果有什么用處?產生的是由與門,或門和非門組成的加法器,比較器等組合邏輯。產生的模塊很容易與某種工藝的基本元件逐一對應起來,再通過布局布線工具自動地轉變?yōu)槟撤N工具工藝的電路布線結構。9.仿真是什
18、么?為什么要進行仿真?仿真是對電路模塊進行動態(tài)的全面測試。通過觀測被測試模塊的輸出信號是否符合要求可以調試和驗證邏輯系統(tǒng)的設計和結構準確與否,并發(fā)現(xiàn)問題及時修改。10.仿真可以在幾層面上進行?每個層面的仿真有什么意義?分別為;前仿真,邏輯網(wǎng)表仿真,門級仿真和布線后仿真;前仿真,邏輯網(wǎng)表仿真,門級仿真;可以調試和驗證邏輯系統(tǒng)的設計和結構準確與否,并發(fā)現(xiàn)問題及時修改。布線后仿真:分析設計的電路模塊的運行是否正常。11.模塊的端口是如何描述的?用“.”表示被引用模塊的端口。12.在引用實例模塊的時候,如何在主模塊中連接信號線?用小括號中來表示本模塊中與之連接的模塊。13.如何產生連續(xù)的周期性測試時鐘
19、?用 always 語句來產生連續(xù)的周期性測試模塊。14.如果不用 initial 塊,能否產生測試時鐘?不能,沒有 initial 塊,就不知道時鐘信號的初始值15.從本講中的簡單例子,是否能明白 always 塊與 initial 塊有什么不同?Initial 塊只執(zhí)行一次,而 always 塊執(zhí)行無數(shù)次。16.為什么說 Verilog 可以用來設計數(shù)字邏輯電路和系統(tǒng)?因為 Verilog 可描述順序執(zhí)行和并行執(zhí)行的程序結構;用延遲表達式或事件表達式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件如 if-else,case 等循環(huán)程序結構;提供了
20、可帶參數(shù)且非零延續(xù)時間的任務程序結構;提供了可定義新的操作符的函數(shù)結構;提供了用于建立表達式的算術運算符,邏輯運算符,位運算符;Verilog HDL 語言作為一種結構化的語言非常適用于門級和開光級的模型設計;提供了一套完整的表示組合邏輯的基本元件的原話;提供了雙向通路和電阻器件的原話;可建立 MOS 器天之藍電子工作室5/view/33cc9b7d192e45361166f54e.html5/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案件的電荷分享和電荷衰減動態(tài)模型;Verilog HDL 的構造性語
21、句可以精確地建立信號的模型。第 3 章 模塊的結構、數(shù)據(jù)類型、變量和基本運算符號1.模塊由幾個部分組成?由描述接口和描述邏輯功能兩部分組成。2.端口分為幾種?三種:輸出口,輸入口,輸入/輸出口3.為什么端口要說明信號的位寬?因為如果不說明信號的位寬可能會在信號發(fā)生改變時發(fā)生錯誤,不容易看出接收到的信號的數(shù)據(jù)寬度,就很難進行數(shù)據(jù)的處理。4.能否說模塊相當于電路圖中的功能模塊,端口相當于功能模塊的引腳?可以那樣說,每個模塊都有特定的功能,而功能的實現(xiàn)就必須依靠具體的電路得以實現(xiàn),端口是信號傳遞的通道,可以說是功能模塊的引腳。5.模塊中的功能描述可以由哪幾類語句或語句塊組成?它們出現(xiàn)的順序會不會影響
22、功能的描述?用 assign 語句聲明,用實例元件,用 always 塊。它們出現(xiàn)的順序不會影響到功能的描述。6.這幾類描述中哪一種直接與電路結構有關?用實例元件直接與電路結構有關。7.最基本的 Verilog 變量有哪幾種類型?wire 型、reg 型、memory 型8.reg 型和 wire 型變量的差別是什么?reg 型變量是寄存器型變量,wire 型變量是連線型變量。兩者根本性的差別在于reg 型變量有個寄存器來存放變量,這個值只有變量發(fā)生改變時才會改變否則保證原來的值不變,wire 型變量的值不是確定的值。9.由連續(xù)賦值語句(assign)賦值的變量能否是 reg 類型的?可以是
23、reg 類型的變量。10.在 always 模塊中被賦值的變量能否是 wire 類型的?如果不能是 wire 類型,那么必須是什么類型的?它們表示的一定是實際的寄存器嗎?不能。必須是 reg 類型的變量,它們表示不一定是實際的寄存器。11.參數(shù)類型的變量有什么用處?參數(shù)類型的變量的好處是可以提高程序的可讀性和可維護性。12.Verilog 語法規(guī)定的參數(shù)傳遞和重新定義功能有什么直接的應用價值?天之藍電子工作室6/view/33cc9b7d192e45361166f54e.html6/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)
24、字系統(tǒng)設計教程思考題答案可以用于定義延遲時間和變量寬度。13.邏輯比較運算符小于等于“=”和非阻塞賦值大于等于“=”的表示是完全一樣的,為什么 Verilog 在語句解釋和編譯時不會搞錯?因為邏輯比較時“=”兩邊是兩個操作數(shù),此時“=”是雙目運算符,而在非阻塞賦值時“=”的右邊是操作數(shù),此時“=”單目運算符。14.是否可以說實例引用的描述實際上就是嚴格意義上的電路結構描述?不能實例引用的描述是在門級電路上加以描述的,和嚴格意義上的電路結構描述還是有點差距的。天之藍電子工作室7/view/33cc9b7d192e45361166f54e.html7/44 4/15/2019verilog - 數(shù)
25、字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第 4 章 運算符、賦值語句和結構說明語句1.邏輯運算符與按位邏輯運算符有什么不同,它們各在什么場合使用?用邏輯運算符運算時是兩個操作數(shù)進行邏輯運算,而按位邏輯運算符運算時是兩個操作數(shù)對應的每一位進行邏輯運算。邏輯運算符多用于條件的判斷,按位邏輯運算符用于信號的運算和檢測。2.指出兩種邏輯等式運算符的不同點,解釋書上的真值表。兩種邏輯運算符有很大的區(qū)別?!?“要求兩個比較數(shù)完全一樣,無論高阻還是未知,只要每位完全相同即可;而“=”只有在兩個操作數(shù)每位都已知即 1或 0,在這種前提下兩個操作數(shù)每位相同結果才
26、為真,如果不是在這個前提那么其結果始終為 x;3.拼接符的作用是什么?為什么說合理地使用拼接符可以提高程序的可讀性和可維護性?拼接符表示的操作其物理意義是什么?拼接符的作用是把兩個或多個信號的某些位拼接起來進行運算操作。因為借助拼接符可以用一個符號名來表示由多位信號組成的復雜信號。其物理意義是將多個信號結合成一個信號。4.如果都不帶時間延遲,阻塞和非阻塞賦值有什么不同?舉例說明它們的不同點?阻塞和非阻塞賦值的區(qū)別在阻塞是順序執(zhí)行而非阻塞是并行執(zhí)行。以下面的語句舉例非阻塞賦值always(posedge clk)beginb=a;c=b;end阻塞賦值always(posedge clk)beg
27、inb=a;c=b;end兩種不同的賦值方式結果是不同的,非阻塞賦值 b=a;cend_wave;endfork#50 r=h35;#100 r=hE2;#150 r=h00;#200 r=hF7;#250 -end_wave;join上面兩個塊執(zhí)行起來效果是完全一樣的,第一個模塊是按順序執(zhí)行,而第二個模塊是每個語句同時執(zhí)行的。6.如果在順序塊中,前面有一條語句是無限循環(huán),下面的語句能否進行?下面的語句不能執(zhí)行。7.如果在并行塊中,發(fā)生上述情況,會如何呢?下面的語句能夠執(zhí)行。天之藍電子工作室9/view/33cc9b7d192e45361166f54e.html9/44 4/15/2019ve
28、rilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第 5 章 條件語句、循環(huán)語句、塊語句與生成語句1.為什么建議在編寫 Verilog 模塊程序時,如果用到 if 語句建議大家把配套的 else情況也考慮在內?因為如果沒有配套的 else 語句,在不滿足 if 條件語句時,將會保持原來的狀態(tài)不變,從而在綜合時會產生一個鎖存器,而這是設計不想要的結果。2.用 if 語句;elseif 語句;elseif 語句;.else 語句和用 case endcase 表示不同條件下的多個分支是完全相同的,還是有什么不同?不是完全相同。(1)與 ca
29、se 語句中的控制表達式和多分支表達式這種比較相比,if_else_if 結構中條件表達式更為直觀些。(2)對于那些分支表達式中存在不定值x 和高阻值 z 的位時 case 語句提供了處理這種情況的手段。3.如果 case 語句的分支條件沒有覆蓋所有可能的組合條件,定義了 default 項和沒有定義 default 項有什么不同?定義了 default 項則會使電路描述的更加的清楚,綜合的時候不會產生不想要的結果,沒用定義 default 則會使在綜合是產生一個鎖存器。4.仔細闡釋 case、casex 和 casez 之間的不同。case、casex、casez 對應的真值表如上,可以看出
30、 case 無論是 0,1,還是 x 高阻都能夠比較,而 casez 不將高阻進行比較,在其它情況都進行比較;而 casex 不將高阻和 x 進行比較,在其它情況進行比較。5.forever 語句如果運行了,在它下面的語句能否運行?它位于 begin end 和位于fork join 塊有什么不同?不能運行。位于 begin end,由于 begin and 是順序塊,所以只要執(zhí)行到 forever則將不能運行下面的程序;而位于 fork join,它是并行塊,執(zhí)行了 forever 還是能夠執(zhí)行 forever 下面的語句。6.forever 語句 repeat 語句能否獨立于過程塊而存在,
31、即能否不在 initial 或 always塊中使用?forever 不能獨立于過程塊中,而 repeat 能夠獨立于過程塊中。天之藍電子工作室10/view/33cc9b7d192e45361166f54e.html10/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案7.用 for 循環(huán)為存儲器許多單元賦值時是否需要時間?為什么如果不定義時間延遲,它可以不需要時間就把不管多大的儲存器賦值完畢?如果定義了時間延遲則需要時間,否則不需要時間。因為循環(huán)的邊界是確定的,那么在綜合時該循環(huán)語句被認為是重復的硬件結
32、構。8.for 循環(huán)是否可以表示可以綜合的組合邏輯?請舉例說明??梢员硎揪C合的組合邏輯。例如用 for 循環(huán)實現(xiàn)的乘法器9.在編寫測試模塊時用什么方法可以使 for 循環(huán)按照時鐘的節(jié)拍運行?請比較圖5.3 所示程序段??梢栽?for 循環(huán)的最后嵌套時鐘節(jié)拍運行的信號。第一種程序不能按照時鐘節(jié)拍來對 memi賦值,而第二種程序可以。10.聲明一個為 oscillate 的寄存器變量并將它初始化為 0,使其每 30 個時間單位進行一次取反操作,不要使用 always 語句(提示:使用 forever 循環(huán))。reg oscillate;initialbeginoscillate=0;forever
33、#30 oscillate=!Oscillate;end11.設計一個周期為 40 個時鐘單位的時鐘循環(huán),其占空比為 25%,使用 always和 initial 塊進行設計,將其在仿真 0 時刻的值初始化為 0。initialbeginclock=0;alwaysbegin天之藍電子工作室11/view/33cc9b7d192e45361166f54e.html11/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案#30 clock=0;#10 clock=1;endend12.給定下面含有阻塞過程賦值語
34、句的 initial 塊,每個語句在什么仿真時刻開始執(zhí)行?a,b,c 和 d 在仿真過程中的中間值和仿真結束時的值是什么?initialbegina=1b0;1b=#10 1b0;c=#5 1b0;d=#20a,b,c;234end第一條語句在仿真開始時就執(zhí)行,第二句在仿真 10 個時鐘單元后執(zhí)行,第三句在仿真 15 個時鐘信號單元后執(zhí)行,第四句在仿真 35 個時鐘單元后執(zhí)行。在中間仿真過程中 a=0,b,c,d 為不確定值結束時 abcd 的值是 a=1b0,b=10,c=10,d=3b000。13.在第 12 題中,如果 initial 塊中包含的是非阻塞過程賦值語句,那么各個問題的答案是
35、什么?如果是非阻塞過程賦值則答案是;第一條語句在仿真開始時就執(zhí)行,第二句在仿真 10 個時鐘單元后執(zhí)行,第三句在仿真 5 個時鐘信號單元后執(zhí)行,第四句在仿真 20 個時鐘單元后執(zhí)行。在中間仿真過程中 a=0,b,c,d 為不確定值結束時 abcd的值是 a=1b0,b=10,c=10,d=3b000。14.下面例子中 d 的最終值是什么?initialbeginb=1b1;c=1b0;#10 b=1b0;endinitialbegind=#25(b|c);endD 的最終值 0。天之藍電子工作室12/view/33cc9b7d192e45361166f54e.html12/44 4/15/20
36、19verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案15 使用帶同步清零端的 D 觸發(fā)器(清零高電平有效,在時鐘下降沿執(zhí)行清零操作)設計下一個下降沿觸發(fā)的 D 觸發(fā)器,只能使用行為語句(提示:D 觸發(fā)器的輸出 q 應當聲明為寄存器變量)。使用設計出的 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
37、 Q=D;endendmodule16.使用帶有異步清零端的 D 觸發(fā)器設計第 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 語句設計一個電平敏感的鎖存器,該鎖存器的輸入信號為 d 和 clock,輸出為 q,其功能是當 cloc
38、k=1 時 q=d;module L_FF(d,clock,q);input d,clk;天之藍電子工作室13/view/33cc9b7d192e45361166f54e.html13/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案output q;reg q;alwaysbeginwait(clock=1)q=d;endendmodule18.使用條件語句設計例 5.18中的四選一多路選擇器,外部端口必須保持不變。module mux4_to_1(out,i0,i1,i2,i3,s1,s0);outpu
39、t out;input i0,i1,i2,i3;input s1,s0;reg 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 語句設計八功能的算術運算單元(ALU),其輸入信號 a 和 b 均為 4 位,還有功能選擇信號 select 為 3 位,輸出信號為 out(5 位),算術運算
40、單元 ALU 所執(zhí)行的操作與 select 信號有關,具體關系如 5.1 所列(忽略輸出結果中的上溢和下溢的位)。天之藍電子工作室14/view/33cc9b7d192e45361166f54e.html14/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案module ALU(a,b,select,out);input3:0 a,b;input2:0 select;output4:0 out;reg4:0 out;always (select)begincase(select)3b000: out=a;3
41、b001: out=a+b;3b010: out=a-b;3b011: out=a/b;3b100: out=a%b;3b101: out=a1;3b111: out=ab;default:out=5bx;endcaseendendmodule天之藍電子工作室15/view/33cc9b7d192e45361166f54e.html15/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案20.使用 while 循環(huán)設計一個時鐘信號發(fā)生器。其時鐘信號的初值為 0,周期為 10個時間單元。initialbegin
42、clk=0;while(1)#10 clk=!clk;end21.使用 for 循環(huán)對一個長度為 1024(地址從 01023)、位寬為 4 的寄存器類型數(shù)組 cache_var 進行初始化,把所有單元都設置為 0.beginreg3:0 cache_var1023:0;intiger i;for(i=0;i1024;i+)cache_vari=0;end22.使用 forever 循環(huán)設計一個時鐘信號,周期為 10,占空比為 40%,初值為 0.initialbeginclk=0;foreverbegin#6 clk=0;#4 clk=1;endend23.使用 repeat 將語句 a=a
43、+1 延遲 20 個時鐘上升沿之后再執(zhí)行。parameter delay=20;intiger i;reg a;beginrepeat(delay)天之藍電子工作室16/view/33cc9b7d192e45361166f54e.html16/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案always (posedge clk)begini+;if(i=20)a=a+1;endend24.下面是一個內嵌順序塊和并行塊的塊語句。該塊的執(zhí)行結束時間是多少?事件的順序是怎樣的?每條語句的仿真結束時間是多少?in
44、itialbegin/ 順序執(zhí)行x=1b0;#5 y=1b1;fork.5/并行執(zhí)行#20 a=x;#15 b=y;join.25.20#40 x=1b1; / 順序執(zhí)行 .65fork#10 p=x;/并行執(zhí)行.75begin/ 順序執(zhí)行.75#10 a=y;#30 b=x;.105end#5 m=y;.70joinend該塊的執(zhí)行結束時間是 5+20+40+40=105 個時鐘單位每條語句執(zhí)行的時間如上圖所標25.用 forever 循環(huán)語句,命名塊(named block)和禁用(disabling of) 命名塊來設計一個八位計數(shù)器。這個計數(shù)器從 count=5 開始計數(shù),到 coun
45、t=67 結束計數(shù)。每個時鐘正跳變計數(shù)器加一,時鐘的周期為 10,計數(shù)器的設計只用到了一次循環(huán),然后就被禁用了(提示:使用 disable 語句)。天之藍電子工作室17/view/33cc9b7d192e45361166f54e.html17/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案reg7:0 count;initialbegincount =5;endbegin:mame blockforeverbegin: disabling ofalways (posedge clk)beginif(cou
46、nt67)#10 count=count+1;disable: disabling of;endendend天之藍電子工作室18/view/33cc9b7d192e45361166f54e.html18/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第 6 章 結構語句、系統(tǒng)任務、函數(shù)語句和顯示系統(tǒng)任務1.怎樣理解 initial 語句只執(zhí)行一次的概念?在仿真開始時,initial 語句只執(zhí)行一次,但 initial 語句里面的語句可能不執(zhí)行一次,因為如果是 while 循環(huán),雖然 initial 語句是
47、執(zhí)行一次,但只要進了 while 循環(huán),則會執(zhí)行到仿真結束。2.在 initial 語句引導的過程中是否可以有循環(huán)語句?如果可以,是否與思考題 1,互相矛盾?可以,并不互相矛盾。initial 語句確實是執(zhí)行了一次,但并不意味著 initial 語句過程中就不能是循環(huán)語句,兩者并不矛盾。3.怎樣理解由 always 語句引導的過程塊是不斷活動的?always 語句的過程塊是不斷活動的,在仿真過程中 always 塊始終在循環(huán)的活動著,檢查 always 語句后面的信號是否發(fā)生相應改變,這是 always 活動的實質,如果 always 語句后面沒有檢查的信號則將會進入一個循環(huán),將會使仿真器鎖死
48、。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ā)的 always 塊各表示
49、什么類型的邏輯電路的行為?為什么?沿觸發(fā)的 always 塊常表示時序邏輯電路,因為其和時序有很關。電平觸發(fā)的always 塊常表示組合邏輯電路,因為其和只和電平有關。8.簡單敘述任務和函數(shù)的不同點(1)函數(shù)只能與主模塊共用同一個仿真時間單元,而任務可以定義自己的仿真時間單位;(2)函數(shù)不能啟動任務,而任務能啟動其他任務和函數(shù);(3)函數(shù)至少要有一個輸入變量,而任務可以沒有或有多個任何類型的變量;(4)函數(shù)返回一個值,而任務則不返回值。9.簡單敘述$display、$write 和$strobe 的不同點。$display 自動地在輸出后進行換行,$write 則不進行自動換行,其它都非常相似
50、。天之藍電子工作室19/view/33cc9b7d192e45361166f54e.html19/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案如果許多其他語句與$display 任務在同一個時間單位執(zhí)行,那么這些語句與$display 任務的執(zhí)行順序是不確定的。如果使用$strobe,該語句總是在同時刻的其他賦值語句執(zhí)行完成之后執(zhí)行。10.簡單敘述 Verilog1364-2001 版語法規(guī)定的電平敏感列表的簡化寫法。關鍵詞“or”也可以使用“,”來代替。11.如何在 Verilog 測試模塊中,利用文
51、件的讀寫產生預定格式的信號,并記錄有測試價值的信號?Verilog 提供了系統(tǒng)任務來選擇要轉儲的模塊實例或模塊實例信號( dumpvars),選擇 VCD 文件的名稱($dumpfile),選擇轉儲過程的起點和終點($dumppon,$dumpoff),選擇生成檢測點(Sdunpall),其使用方法如下initial$dumpfile(myfile.dmp); /仿真信息轉儲到 myfile.dmp 文件initial$dumpvars;initail/沒有指定變量范圍,把設計中全部信號都轉儲$dunpvars(1,top); /轉儲模塊實例投票中的信號/數(shù) 1 表示層次的等級只轉儲 top
52、下第一層信號/即轉儲 top 模塊中的變量,而不轉儲在 top 中引用initial$dumpvars(2,top.m1); /轉儲 top.m1 模塊下兩層的信號initial$dumpvars(0,top.m1); /數(shù) 0 表示轉儲 top.m1 模塊下面各個層的所有信號initialbegin$dumpon;/啟動轉儲過程#100000 $dunpoff; /過了 100000 個仿真單位后,停止轉儲過程endinitial/生成一個檢查點,轉儲所有 VCD 變量的現(xiàn)行值$dumpall;天之藍電子工作室20/view/33cc9b7d192e45361166f54e.html20/4
53、4 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第 7 章 調試用系統(tǒng)任務和常用編譯預處理語句1.為什么在多個模塊調試的情況下$monitor 需要配合$monitoron 和$monitoroff 來工作?$monitoron 和$monitoroff 任務的作用是通過打開和關閉監(jiān)控標志來控制監(jiān)控任務$monitor 的啟動和停止,這樣使得程序員可以很容易地控制$monitor 何時發(fā)生。$monitoron 則用于打開監(jiān)控標志,啟動監(jiān)控任務$monitor。通常在通過調用$monitoron 來啟動$mo
54、nitor 時不管$monitor 參數(shù)列表中的值是否發(fā)生改變,總是立刻輸出顯示當前時刻參數(shù)列表中的值,這用于在監(jiān)控的初始時刻設定初始比較值。在默認情況下,控制標志在仿真的起始時刻就已經打開了。在多模式調試的情況下,許多模塊中都調用了$monitor,因為任何時刻只能用一個$monitor 起作用,因此需配合$monitoron 與$monitoroff 使用,把需要監(jiān)視的模塊用$monitor 打開,在監(jiān)視完畢后及時用$monitoroff 關閉,以便把$monitor 讓給其他模塊使用。2.請用$random 配合求模運算編寫:(1)用于測試的跳變沿抖動為周期 1/10 的時鐘波形。(2)
55、隨機出現(xiàn)的脈寬隨機的窄脈寬。module random_pulse(dout);output9:0 dout;reg9:0 dout;integer delay;initialbegin#10 dout=0;for(k=0;k100;k=k+1)begindelay=$random%10;#delay dout=1;#delay dout=0;endendendmodule3.Verilog 的編譯預處理與 C 語言的編譯預處理有什么不同?Verilog 的編譯處理,在編譯處理命令之前要以開頭。4.請仔細闡釋timescale 編譯預處理的作用?timescale 命令用來說明跟在該命令后的模
56、塊的時間單位和時間精度。使用timescale 命令可以在同一個設計里包含采用了不同的時間單位的模塊。天之藍電子工作室21/view/33cc9b7d192e45361166f54e.html21/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案5.不同timescale 定義的多模塊仿真測試時需要注意什么?如果在同一個設計里,多個模塊中用到的時間單位和時間精度單位不同,需要用到以下的時間結構:(1)用timescale 命令來聲明本模塊中所用到的時間單位和時間精度;(2)用系統(tǒng)任務$printtimesc
57、ale 來輸出顯示一個模塊的時間單位和時間精度;(3)用系統(tǒng)函數(shù)$time 和$realtime 及%t 格式聲明來輸出顯示 EDA 工具記錄的時間信息。6.為什么說系統(tǒng)任務$readmen 可以用來產生用于算法驗證的極其復雜的測試用數(shù)據(jù)流?在 Verilog HDL 程序中有兩個系統(tǒng)任務$readmemb 和$readmemh,并用來從文件中讀取數(shù)據(jù)到存儲器中,這兩個系統(tǒng)任務可以在仿真的任何時刻被執(zhí)行使用。復雜數(shù)據(jù)可以用 C 語言產生,存在文件中,用$readmem 取出存入存儲器,在按節(jié)拍輸出,這在驗證算法邏輯電路時特別有用。7.為什么熟練地使用條件編譯命令可以使源代碼有更大的靈活性,可以
58、使用于不同的實現(xiàn)對象,如不同工藝的 ASIC 或速度規(guī)模不同的 FBGA 或 CPLD,從而為軟核的商品化創(chuàng)造條件?合理的使用條件編譯和條件執(zhí)行預處理可以使測試程序適應不同的編譯環(huán)境,也可以把不同的測試過程編寫到一個統(tǒng)一的測試程序中去,可以簡化測試的過程,對于復雜設計的驗證模塊的編寫很有實用價值。天之藍電子工作室22/view/33cc9b7d192e45361166f54e.html22/44 4/15/2019verilog - 數(shù)字系統(tǒng)設計課程(第二版)思考題答案 - 百度文庫Verilog 數(shù)字系統(tǒng)設計教程思考題答案第二部分 設計和驗證部分第 9 章 Verilog HDL 模型的不同
59、抽象級別1.Verilog HDL 的模型共有哪幾種類型(級別)?有 5 種類型,系統(tǒng)級,算法級,RTL 級,門級,開關級。2.每種類型的 Verilog HDL 各有什么特點?主要用于什么場合?系統(tǒng)級,算法級和 RTL 級是屬于行為級,門級是屬于結構級的。系統(tǒng)級:用高級語言結構實現(xiàn)設計模塊的外部性能的模型。算法級:用高級語言結構實現(xiàn)設計算法的模型。RTL 級:描述數(shù)據(jù)在寄存器之間流動和如何處理這些數(shù)據(jù)的模型。門級:描述邏輯門以及邏輯門之間的連接的模型。開關級:描述器件中三極管和存儲節(jié)點以及它們之間連接的模型。3.不可綜合成為電路的 Verilog 模塊有什么好處?描述比較直觀4.為什么說 V
60、erilog HDL 的語言結構可以支持構成任意復雜的數(shù)字邏輯系統(tǒng)?通過 Verilog 語言中的模塊實例引用,可以構成任何復雜結構的電路,這種以結構方式所建成的 Verilog 模型不僅是可以以仿真的,而且也是可以綜合的,其本質是表示電路的具體結構,也可以說這種 Verilog 文件也是一種結構網(wǎng)表。5.什么是綜合?是否任何符合語法的 Verilog HDL 程序都可以綜合?綜合是通過綜合器把 HDL 程序轉化成標準的門級結構網(wǎng)表。不是任何復合語法的 VerilogHDL 程序都可以綜合。6.綜合生成的是不是真實的電路?若不是,還需要哪些步驟才能真正成為具體的電路?不是,真實的電路還需要利用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年的合同延續(xù)與權利轉讓協(xié)議樣本
- 2025年企業(yè)租賃新能源汽車合作合同
- 2025年企業(yè)市場營銷策劃委托協(xié)議書樣本
- 2025年合作伙伴店鋪聯(lián)合經營協(xié)議
- 2025年共發(fā)展合作協(xié)議示例
- 2025年居民小區(qū)消防系統(tǒng)設計申請與施工協(xié)議
- 2025年先進技術許可合同規(guī)范模板
- 2025年全球貿易增長與多邊合作協(xié)議
- 2025年協(xié)作一致行動人協(xié)議樣本
- 2025年大型卡車租賃服務合同
- GMS要素-持續(xù)改進(CI)-上汽通用五菱-課件
- 信訪事項復查復核申請書
- 神經遞質和神經調質生
- 18CS01 裝配式箱泵一體化消防給水泵站選用及安裝-MX智慧型泵站
- 枇杷常見病蟲害一覽表專家講座
- 《紙杯變變變》教學設計
- 九九乘法口訣表(超清晰打印版)
- GB/T 3921-2008紡織品色牢度試驗耐皂洗色牢度
- GA/T 1780-2021多道心理測試實驗室建設規(guī)范
- PPT模板第二講運動選材概述運動選材學
- 營養(yǎng)學基礎知識-課件
評論
0/150
提交評論