寫在前面的小知識:
解碼器將**重新翻譯為高/低電平訊號。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 ...