欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: VerilogHDL掃盲文(共26頁(yè)pdf)FPGA初學(xué)資料分享 [打印本頁(yè)]

作者: upohu    時(shí)間: 2017-11-30 21:30
標(biāo)題: VerilogHDL掃盲文(共26頁(yè)pdf)FPGA初學(xué)資料分享


第0章: Verilog HDL掃盲文
會(huì)翻開(kāi)這本筆記的讀者,估計(jì)你們都受夠了參考書(shū)的 “ 權(quán)威 ” ,即使把厚厚的參考書(shū)都啃完了 , 發(fā)覺(jué)自己對(duì) Verilog HDL 語(yǔ)言的理解還是 “ 迷迷糊糊 ” 。 呵呵 , 筆者也是過(guò)來(lái)人 ,筆者當(dāng)然清楚這樣的心情,那種感覺(jué)真的是想 “ 涅破了蛋蛋 ” 。當(dāng)讀者還沒(méi)有進(jìn)入正章之前 , 筆者有責(zé)任幫讀者們來(lái)個(gè)簡(jiǎn)單的掃盲掃盲 。 掃盲的目的有許多 , 第一是更進(jìn)一步刷新讀者對(duì) Verilog HDL 語(yǔ)言的認(rèn)識(shí)。第二則是可以清楚表達(dá)筆記所要討論的范圍。

0.1 各種的 HDL 語(yǔ)言
很多進(jìn)入 FPGA 世界不久得朋友,第一個(gè)要學(xué)習(xí)當(dāng)然是 HDL 語(yǔ)言,在網(wǎng)上流行的有Verilog 和 VDL 這兩個(gè) HDL 語(yǔ)言 。 如果讀者是 VDL HDL 語(yǔ)言的愛(ài)好者 , 那么讀者可以立即把這本筆記關(guān)了 。 在筆者的眼中 VDL 太石板了 , 好像帶著三角眼睛的中年女老師,對(duì)男學(xué)生都要求和尚頭;對(duì)女生的裙字一定要長(zhǎng)裙,這就是 VDL 給筆者的印象 。筆者不是說(shuō)它不好 , 只是筆者嫌它麻煩而已 。 反之 Verilog 卻像是一個(gè)活潑而且愛(ài)搗蛋的小男孩,我們知道小男孩的思想很簡(jiǎn)單卻很俏皮,我們要很難捉拿它。網(wǎng)上有一個(gè)很常見(jiàn)的問(wèn)題 : “ 學(xué)習(xí) VDL HDL 好?還是學(xué)習(xí) Verilog HDL 好? ” ... 唉 ~朋友 , 很多問(wèn)題的答案都是明顯的 。 筆者會(huì)很好客的說(shuō) : “ 來(lái)來(lái)來(lái) ! Verilog HDL 很有趣也很好玩,不要理那個(gè)石板的 VDL HDL ” 。
“ 為什么筆記選擇 Verilog HDL 語(yǔ)言? ”
嗯 ... 這個(gè)問(wèn)題筆者也很難回答,筆者是被特權(quán)同學(xué)帶入這個(gè)世界的。當(dāng)時(shí)學(xué)習(xí)的時(shí)候沒(méi)有考慮那么多 , 但是后來(lái)發(fā)現(xiàn)到 Verilog HDL 語(yǔ)言有太多的潛能了 , 筆者不小心就陷入研究它的陷阱了。 Verilog HDL 語(yǔ)言的語(yǔ)法和格式都比較隨便,它沒(méi)有 VDL HDL 語(yǔ)言那么嚴(yán)謹(jǐn) , 可能是這個(gè)原因吧?事實(shí)上選擇 VDL HDL 語(yǔ)言 也好 , 還是選擇 VerilogHDL 語(yǔ)言也好,都是一些蘿卜青菜的問(wèn)題(各有所愛(ài) ) 。筆者自身不喜歡受限制太多 ,故 Verilog HDL 語(yǔ)言和筆記意氣相投,所以筆者最終還是選擇了它。

0.2 HDL 語(yǔ)言的層次有一個(gè)很好笑的話(huà)題,老師常常都說(shuō) HDL 語(yǔ)言的層次是匯編語(yǔ)言和 C 語(yǔ)言的之間 。 假設(shè)匯編語(yǔ)言是低級(jí)語(yǔ)言, C 語(yǔ)言是高級(jí)語(yǔ)言,那么 HDL 語(yǔ)言既是不上又不小?啊哈哈哈 , 如果站在人類(lèi)之中它亦是不男也不女 。 我們不需要為這個(gè)無(wú)聊的話(huà)題 , 浪費(fèi)太多思考的時(shí)間。 HDL 語(yǔ)言的英文全名是 Hardware Description Language ,中文譯名就是硬件描述語(yǔ)言 。 事實(shí)上無(wú)論是匯編語(yǔ)言也好還是 C 語(yǔ)言也好 , 它們的作用就是用來(lái)控制處
理器,反之 HDL 語(yǔ)言的作用只是用來(lái)建立一個(gè)硬件的模塊而已。打個(gè)比方 , 假設(shè)有一個(gè) c51 單片機(jī)的串口硬件 , 我們可以使用匯編語(yǔ)言去控制它 , 我們也可以使用 C 語(yǔ)言去控制它 。 但是站在 HDL 語(yǔ)言的角度上 , 我們可以建立一個(gè)受控制的串口硬件模塊,我們也可以建立一個(gè)不受控制(是自動(dòng)的意思,而不是暴走的意思 )的串口硬件模塊,當(dāng)然我們也可以用 HDL 去控制一個(gè)可以受控制的串口硬件模塊。從這一點(diǎn) , 我們就可以看出 HDL 語(yǔ)言和匯編語(yǔ)言與 C 語(yǔ)言基本上就在不同的層次上的東東,我們又何為把它們來(lái)作比較呢?但是在一些標(biāo)準(zhǔn)上 HDL 語(yǔ)言卻是硬件語(yǔ)言又是低級(jí)語(yǔ)言 ( 凡是涉及硬件的通通都被打入低級(jí)語(yǔ)言的冷宮 ) , 總而言之 HDL 語(yǔ)言的層次就是很曖昧就是了。
實(shí)際上還有不同層次級(jí)的 HDL 語(yǔ)言 , 如 SystemVerilog 或者 SystemC 。 傳言上它們都是系統(tǒng)級(jí)的 HDL 語(yǔ)言 , 相比之下 Verilog HDL 語(yǔ)言 和 VDL HDL 語(yǔ)言的層次都稱(chēng)為模塊級(jí) 。 但是這些層次的區(qū)分一點(diǎn)也不重要 , 只要把 Verilog HDL 語(yǔ)言掌握得好 , 讀者什么層次都可以實(shí)現(xiàn)。

0.3 RTL 級(jí)和組合邏輯級(jí)
筆者說(shuō)太多廢話(huà)了還是切入正題吧 。 雖說(shuō) Verilog HDL 語(yǔ)言是用來(lái)描述硬件 , 但是這些都是一些刻板的認(rèn)識(shí)和標(biāo)準(zhǔn)而已。從筆者的眼中 Verilog HDL 語(yǔ)言建立的硬件模塊可以分為有時(shí)鐘源和無(wú)時(shí)鐘源。
有時(shí)鐘源的意思是需要時(shí)鐘信號(hào)作為操作最基本消耗單位 , 硬件模塊才能執(zhí)行 。 無(wú)時(shí)鐘源的意思就是不需要消費(fèi)時(shí)鐘信號(hào) , 硬件模塊也可以被執(zhí)行 。 無(wú)時(shí)鐘源最好的例子就是由組合邏輯建立的硬件模塊 , 一些典型的設(shè)計(jì)如 : 硬件乘法器 , 硬件除法器等基本上都是由一些復(fù)雜的邏輯門(mén)組合 , 故它們根本就不需要時(shí)鐘來(lái)操作 , 或者說(shuō)它們只需要一個(gè)步驟又或者只需要一個(gè)時(shí)鐘就可以完成任務(wù)。打個(gè)比方,就如同人類(lèi)吃飯,在無(wú)時(shí)鐘源的情況下,放在餐桌上的食物一下子被吃光 ,而且瞬間食物被消化和被吸收(事實(shí)上這是不可能的 ) 。反之有時(shí)鐘源,就像我們需要心跳來(lái)提供身體一個(gè)節(jié)拍,每一個(gè)節(jié)拍都有固定的動(dòng)作,先張口,送入飯,吃下飯 , 消
化飯,然后吸收。
由此就有 RTL 級(jí)和組合邏輯級(jí)的建模之分 。 基本上 RTL 級(jí)建模的基本單元會(huì)是 “ 寄存器 ” , 然而組合邏輯級(jí)的建模基本單元就是邏輯門(mén) 。 單單用幾行的文字來(lái)講述 RTL 級(jí)和組合邏輯級(jí)的建模實(shí)在太抽象了,筆者聚個(gè)簡(jiǎn)單的例子:


0.4 Verilog HDL 語(yǔ)言真的那么難掌握?
Verilog HDL 語(yǔ)言容易入門(mén)但是不容易掌握,估計(jì)這是所有學(xué)習(xí) Verilog HDL 語(yǔ)言人們的心聲 。 其實(shí)要掌握 Verilog HDL 語(yǔ)言是很簡(jiǎn)單的 , 筆者的秘訣就是 “ 掌握 Verilog HD L語(yǔ)言的思想 ” 。 在筆者眼中 Verilog HDL 語(yǔ)言的思想有兩種 , 一種是建模和另一種是時(shí)序 。建模是 Verilog HDL 語(yǔ)言的結(jié)構(gòu)或者說(shuō)是它的地基,然而時(shí)序是所有模塊的活動(dòng)記錄 。這些概念,目前的讀者不明白也不要緊,筆者已經(jīng)分為兩個(gè)筆記來(lái)詳談了它們了。筆者相信很多接觸 FPGA 的朋友之前都有接觸過(guò)單片機(jī),在不知不覺(jué)之中,自然而然學(xué)習(xí)單片機(jī)的想法就主宰了學(xué)習(xí) FPGA 。 筆者也是過(guò)來(lái)人 , 這樣的心情筆者非常的了解 。當(dāng)我們?cè)賹W(xué)習(xí)單片機(jī)的時(shí)候 , 很多人估計(jì)都是直接以 C 語(yǔ)言入門(mén)吧?筆者就先說(shuō)說(shuō)單片機(jī)這個(gè)硬件吧 : 它們都是各大產(chǎn)商的產(chǎn)品 , 一些基本的硬件資源老早就已經(jīng)嵌入在這個(gè)小小的單片機(jī)當(dāng)中 。 余下 , 尤其說(shuō)學(xué)習(xí)單片機(jī)還不如說(shuō)我們學(xué)習(xí)如何控制單片機(jī)的寄存器更為貼切 。 一些硬件的發(fā)生 , 使用者可以完全不用知道 , 我們只要懂得如何配置控制該硬件的寄存器就可以了。

相比之下 FPGA 可以稱(chēng)為赤裸裸的樂(lè)高積木 , 如果讀者要實(shí)現(xiàn)串口 , 讀者就要自行建立串口硬件模塊 。 要建立一個(gè)串口硬件模塊 , 首先需要明白串口的操作原理 , 然后根據(jù)需要自定義和修改原理的發(fā)生 。 最后還要考慮這個(gè)串口硬件模塊如何被控制?是否獨(dú)立化它(見(jiàn)接口建模 ) ?這些就是建模思路。在軟件方面 , 我們可以用 C 語(yǔ)言去配置單片機(jī)的寄存器和編輯單片機(jī)操作的邏輯 。 但是有一點(diǎn)請(qǐng)讀者不要忘了 , C 語(yǔ)言也是一個(gè)產(chǎn)品 , 它和 Verilog HDL 語(yǔ)言不同 C 語(yǔ)言在出生之后它就有自己的結(jié)構(gòu)和自己一套的使用規(guī)則 。 最后根據(jù)單片機(jī)的產(chǎn)商需要 , C 語(yǔ)言還可以進(jìn)一步被自定義 , 這種現(xiàn)象不難看見(jiàn) , 學(xué)習(xí) c51 和學(xué)習(xí) AVR 基本上就有兩套的C語(yǔ)言用法。反之 Verilog HDL 語(yǔ)言雖然有語(yǔ)法 , 但是 Verilog HDL 語(yǔ)言就沒(méi)有自身的結(jié)構(gòu)也沒(méi)有自己一套的用法 。 在網(wǎng)上這種現(xiàn)象很普遍 , 讀者會(huì)看到五花八門(mén) , 百花齊放 , 各種各樣的模塊內(nèi)容 。 很多時(shí)候 , 這些模塊的內(nèi)容只有設(shè)計(jì)者自己看懂而已 , 別人估計(jì)要花上幾倍的精力才可以搞明白 “ 它在干嘛 ” 。為此 , 如果要把 Verilog HDL 語(yǔ)言掌握好 , 第一要提供 Verilog HDL 語(yǔ)言的結(jié)構(gòu) , 第二要提供 Verilog HDL 語(yǔ)言一套用法(使用規(guī)則 ) 。前者筆者是用建模來(lái)解決,后者筆者用 “ 仿順序操作 ” 的想法來(lái)補(bǔ)充。


余下完整的pdf格式文檔51黑下載地址(共26頁(yè)pdf):
VerilogHDL掃盲文.pdf (3.23 MB, 下載次數(shù): 92)



作者: SnowWolf    時(shí)間: 2018-9-27 21:00
謝謝分享!
作者: fgsdfgsdf    時(shí)間: 2018-10-8 15:01
學(xué)完32,想學(xué)FPGA,處于白紙狀態(tài)




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1