Verilog HDL實戰操作 組合電路設計

2021-10-06 22:04:42 字數 2708 閱讀 5958

寫在前面的小知識:

解碼器將**重新翻譯為高/低電平訊號。74hc138是3線-8線解碼器,用於將3位二進位製碼翻譯成8個高/低電平訊號,解碼器也可以採用行為描述、資料流描述和結構描述等多種方式進行描述。

顯示解碼器cd4511是特殊的解碼器,用於將bcd翻譯成七段碼,以驅動數碼管顯示數字資訊。是bcd顯示解碼器,輸出高電平有效,同時具有燈測試、滅燈和鎖存三種附加功能。

1.hc138

module hc138

(s1,s2_n,s3_n,a,y_n)

; input s1,s2_n,s3_n;

input [0:

2] a;

output reg [0:

7] y_n;

wire en;

assign en = s1&

(~s2_n)&(

~s3_n)

; always @(en , a)

if(en)

case

(a)3

'b000: y_n = 8'b01111111;

3'b001: y_n = 8'b10111111;

3'b010: y_n = 8'b11011111;

3'b011: y_n = 8'b11101111;

3'b100: y_n = 8'b11110111;

3'b101: y_n = 8'b11111011;

3'b110: y_n = 8'b11111101;

3'b111: y_n = 8'b11111110;

default

: y_n =

8'b11111111;

endcase

else

y_n =

8'b11111111

endmodule

2.cd4511

module cd4511

(le,bi_n,lt_n,bcd,seg7)

; input le,bi_n,lt_n;

input [3:

0] bcd;

output reg [6:

0] seg7;

always @(le,bi_n,lt_n,bcd)if(

!lt_n)

// 燈測試訊號有效時

seg7 =

7'b1111111;

// seg7: gfedcba

elseif(

!bi_n)

// 滅燈輸入有效時

seg7 =

7'b0000000;

elseif(

!le)

// 鎖存訊號無效時

case

(bcd)

// seg7: gfedcba

4'b0000: seg7 <=7'b0111111;

// 顯示 0

4'b0001: seg7 <=7'b0000110;

// 顯示 1

4'b0010: seg7 <= 7'b1011011;

// 顯示 2

4'b0011: seg7 <=7'b1001111;

// 顯示 3

4'b0100: seg7 <=7'b1100110;

// 顯示 4

4'b0101: seg7 <=7'b1101101;

// 顯示 5

4'b0110: seg7 <=7'b1111100;

// 顯示 6

4'b0111: seg7 <=7'b0000111;

// 顯示 7

4'b1000: seg7 <=7'b1111111;

// 顯示 8

4'b1001: seg7 <=7'b1100111;

// 顯示 9

default

: seg7 <=

7'b0000000;

// 不顯示

endcase

endmodule

**時的小技巧:

hc138:

其中a0,a1,a2為位址訊號,三位位址有三種輸出方式,分別進行驗證,此時設定a0為500ns,a1為250ns,a2為125ns,則輸出的組合方式為000,001,010,011,100,101,110,111八種方式,s1,s2_n,s3_n為hc138工作的使能端,其中s1為高電平有效,s2,s3為低電平有效,因此在定義時定義為s2_n,s3_n加以區分。y為八位輸出,且低電平有效,**結果中,輸出為低電平的位為三位輸入二進位製碼的權值。

cd4511:

cd511四位輸入為bcd碼,bcd碼為用二進位制表示的十進位制數,其中lt為燈測試端,低電平有效,bi為滅燈,低電平有效,le為鎖存允許端,高電平有效。cd4511的轉換原理為用相應位的高低電平來控制每段發光二極體的亮滅。如下圖所示為高低電平的對應和數碼管發光二極體對應圖。向量波形圖**結果正確。

cd4511中採用非阻塞賦值的方法,而阻塞賦值和非阻塞賦值的區別在於阻塞賦值按照書寫**的順序來執行語句,而非阻塞賦值是多條語句同時執行,非阻塞常用於時序電路,阻塞用於組合電路。在波形向量**圖中雖然不能看到直觀的輸出結果,但通過其二進位制序列,可確定其數碼管顯示的值。

Verilog HDL實戰操作 時序電路設計

寫在前面的小知識 74hc160是應用最廣泛的時序邏輯器件,分為同步計數器和非同步計數器兩大類。計數器根據計數容量又可分為二進位制 十進位制和其它進製計數器,根據計數方式又可分加法 減法和加 減計數器三種型別。74hc160為常用的同步十進位制計數器 1.74hc160 module hc160 c...

實戰 陣列操作

要求 定義乙個陣列操作類 array類 在這個類裡面可以進行整型陣列的操作 由外部類傳入陣列的大小,實現資料的儲存以及資料的輸出 在這個類派生出兩個子類 範例 基礎實現 執行結果 定義乙個排序陣列的子類 class sortarray extends array 因為父類中的getdata 方法不夠...

Oracle 實戰操作

在工作中經常會遇到一些情況,需要匯出或者備份你的資料庫,並且在需要的時候再進行匯入,或者建立乙個新的工作空間指定給乙個新的使用者。1.匯出使用者下的所有表結構exp 使用者名稱 密碼 資料庫ip 若沒有則可以省略 資料庫例項 file 檔案儲存路徑 full y dba許可權下需要寫。例子 exp ...