【计算机组成与设计学习笔记】(二)
一、Verilog HDL
Verilog HDL(Hardware Description Language)是一種設計硬件電路的語言,由IEEE完成了對其標準化的工作。 Verilog HDL總體來講帶有C語言的風格,是工業界常用的硬件描述語言。——《計算機原理與設計》,李亞民(全文引用的概念都出自此書,不多贅述)
個人感覺,Verilog HDL跟每一種編程語言一樣,有自己獨特的地方。Verilog HDL作為一種HDL,它語法風格很像C類語言,但是它更如同名字一樣,偏重于去描述,而不是像C注重算法實現的過程或者是面向對象的抽象。這或許是因為它除了邏輯設計以外,還有時序設計,所以往往要比一般設計更加復雜,對設計者要求更加謹慎和細心。
二、CMOS
CMOS的全稱是Complementary Metal Oxide Semiconductor,意味互補型金屬氧化物半導體,由PMOS和NMOS兩種晶體管“互補”構成
CMOS晶體管結合了PMOS和NMOS兩種晶體管的優點,使得電路更易導通1和0兩種狀態,物理特性和規格標準這里不作討論。
在CMOS級別上,我們可以搭建起常見的門級邏輯,如非門、與或門、異或門等。而在我們設計時,我們會經常忽略CMOS這一層級的考慮,因為越低的層級更加繁瑣,而且當工程量大了以后,我們也很難顧慮了。用的晶體管的個數,可以在大致程度上衡量這個器件的功耗、面積,從而決定這個器件最后的好壞。
在Verilog HDL里,給出了這一級別設計的一些類型:
而在這個層級上定義了一些CMOS門,代碼已經傳上CSDNCode里,需要或有興趣實現的可以參考這里
三、四種風格的Verilog HDL描述
1.晶體管開關級:也就是上述的CMOS級別描述;
2.邏輯門級:在CMOS上搭建的邏輯門,從而實現更高的設計;
3.數據流級:從這一級別開始,設計變得簡易。數據流級強調和關注數據的流向、改變,使得信號數據有了連接關系,牽一發而動全身的姿態。
4.功能描述級:更接近自然語言的級別。
四、常用的組合電路
1.多路選擇器
2.譯碼器
這里就不多贅述兩者的概念和實現。這兩個組合電路可以很簡單地實現邏輯門(非、與、或等),從而組成組合電路。
五、時序電路
1.D鎖存器
2.D觸發器
3.狀態機
同樣,三者也不多贅述。
狀態機是一個很重要的時序邏輯,可以很方便地解決我們一些實際問題,而我們的生活中處處都是一個個狀態機,包括我們的投幣機、電子防盜門系統等。如果有機會,將進一步學習。
六、實例:3輸入CMOS與非門
在這里,以一個3輸入CMOS的與非門作為實例。
實現代碼:
測試代碼:
<verilog HDL> `include "cmosnand3.v"module cmosnand3_test;reg ina,inb,inc;wire out;cmosnand3 c1(ina,inb,inc,out);integer i;initial begin#0 ina = 0; inb = 0; inc = 0;$display("\tina\tinb\tinc\tout");for(i = 0; i < 9; i = i + 1)begin#1 {ina,inb,inc} = i;end#1 $finish;endinitial begin$monitor("\t%b\t%b\t%b\t%b",ina,inb,inc,out);$dumpfile("cmosnand3.vcd");$dumpvars;end endmodule</verilog HDL>測試結果截圖:
總結
以上是生活随笔為你收集整理的【计算机组成与设计学习笔记】(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机截屏-雷阵雨
- 下一篇: Screen安装+命令使用教程