1.13k likes | 3.23k Views
新數位電子術科秘笈 ( 使用 VHDL/ Verilog-HDL) 作者 : 賈證主、王炳聰 參考資料 : 全華圖書 數位電子乙級術科秘笈 ( 使用 VHDL/Verilog-HDL). VHDL/Verilog-HDL 入門 (1/15). VHDL/Verilog-HDL 入門 (2/15). VHDL/Verilog-HDL 入門 (3/15). VHDL/Verilog-HDL 入門 (4/15). VHDL/Verilog-HDL 入門 (5/15).
E N D
新數位電子術科秘笈 (使用VHDL/Verilog-HDL) 作者: 賈證主、王炳聰 參考資料: 全華圖書 數位電子乙級術科秘笈 (使用VHDL/Verilog-HDL)
連接至電腦印表機埠 USB轉JTAG燒錄頭 使用右側USB轉JTAG接頭燒錄CPLD時,此顆IC需拔除 注意: 腳座缺口的方向務必裝置正確,否則將無法燒錄電路程式碼 供EPM3064ALC44-4工作 之3.3V直流電源 供第二題鍵盤掃描使用之4MHz石英振盪器 子電路板製作之注意事項
Quartus II燒錄器設定 在考場應試時則需注意考場所設定的燒錄介面為USB埠或印表機埠,若尚未設定,考生必須依照下述方式自行設定。 (1)USB-Blaster安裝:目前許多電腦已經沒有印表機埠,於平常練習時,可自備一組USB Blaster燒錄頭,如下圖將USB Blaster燒錄頭之USB埠插入電腦,電腦應該會偵測到USB Blaster,並要求使用者指定安裝驅動程式的位址,此時使用者必須將驅動程式的安裝路徑設定於 C:/quartus/drivers/usb-blaster,便可完成驅動程式安裝。 註:在單獨燒錄子板上之CPLD晶片時,必須在子板電源輸入端接上3.3V之直流電源。若已經完成子母板之裝配連接,並將它插入測試機台之金手指腳座進行晶片燒錄時,子板就不需要接上直流電源,此時電源由測試機台直接提供。
(2) USBPORT燒錄介面設定: 點選「Tools => Programmer」選項,出現右下圖,若尚未選取燒錄介面,圖中會標示No Hardware。用滑鼠點選Hardware setup後,再用滑鼠點選視窗中之USB-Blaster,並點選右下圖右側之Select Hardware 與Close後,就完成USB燒錄介面設定。
(3) PRINT PORT燒錄介面設定: 直接使用印表機介面來進行燒錄,須如上圖點選「Add Hardware」來產生下圖之Add Hardware表單,在Hardware type及Port的欄位分別選擇ByteBlasterMV及LPT1後,再按下OK就完成印表機埠燒錄介面設定。
(4) 燒錄CPLD晶片 檢定所使用的CPLD晶片是屬於非揮發性的CPLD元件,當開啟Quartus II Programmer後,將編譯成功的專案會自動在Programmer視窗中產生一個『*.pof』檔。進行晶片燒錄前,先在下圖中的Mode欄位選取JTAG,並勾選下方的『Program/configure』,接著按下左側之start鍵,便可進行晶片燒錄。
試 題 一(四位數多工顯示器) 一、檢定時間:六小時 二、 試題說明
四位數多工顯示器試題動作要求 (一) 電源開關(SW1)ON,則AC 110V 電源指示燈(NL1)及DC 電源指示燈(NL2)應亮。 (二) 凡未具有下列之全部功能要求者不予評分。調整VR1 可變電阻,改變CK1 振盪頻率輸出可使顯示計數速度增快或變慢,亦即: 1. 調整VR1 可變電阻器,讓個位數可清楚看出從0~9 順序計數,且七段顯示器能正常顯示。 2. 調整VR1 可變電阻器,讓十位數可清楚看出從0~9 順序計數,且七段顯示器能正常顯示。 3. 調整VR1 可變電阻器,讓百位數可清楚看出從0~9 順序計數,且七段顯示器能正常顯示。 4. 調整VR1 可變電阻器,讓千位數可清楚看出從0~9 順序計數,且七段顯示器能正常顯示。 (三) 調整VR2 可變電阻器,改變CK2 振盪頻率輸出可使多工掃瞄速度改變。 1. 順時針旋轉掃瞄速度變快,逆時針旋轉掃瞄速度變慢。 2. 當VR2 調整至適當值時,使顯示數字穩定不閃爍。 (四) 按下清除鍵(S1)時,則4 位數字均重置為「0000」,放開(S1)鍵後,計數重新由「0000」開始上數。
四位數多工顯示器應試要點 • 母電路板Layout圖繪製 • --應於30分鐘內用透明方格紙完成元件面的元件佈置圖與焊接面的裸銅線配線圖 • 子電路板裝配 • --應於30分鐘內完成子電路板的製作 • 母電路板實作與母子電路板連接 • --應於60分鐘內完成母電路板實作,並與子電路板完成連接 • CPLD內部電路設計 • --依照命題委員所公佈的CPLD內部電路方塊圖來設計電路,不必新增任何電路模組來進行訊號處理 • 應檢時間掌控 • --應該在3小時內完成母電路板Layout圖繪製、母子電路板實作以及CPLD內部電路設計,再加上一些故障排除及測試時間,建議考生應於4小時內完成第一題四位數多工顯示器的實作與測試
方格紙 第1面 方格紙 第3面,而背面為第4面 方格紙 第2面 母電路板Layout圖繪製建議方式(1/5) • (1)方格紙的特性 • 先將方格紙從中間對折,觀察幼圖可知,方格紙共有4個面相,第1面、第2面、第3面與第4面,其中第4面為第3面的背面。 • 快速元件佈置與佈線的秘訣,在於佈線時,不論元件面或銅箔面的圖形繪製,皆以元件面的方向進行。
母電路板Layout圖繪製建議方式(2/5) • 利用母板銅鉑面繪製母板實體圖並標示子板元件面腳位圖
母電路板Layout圖繪製建議方式(3/5) • 四位數多工顯示器使用到的金手指接腳共有11支,建議的規劃方式如下: • 金手指規劃線必須繪製於方格紙四個面相中的第3面,且一律以元件面方向繪製。 • 先將分別作為電源與接地的金手指P1及P22拉至兩側長條銅箔。 • 將P2、P3、P4和P6規劃在子板右側,並與子板間預留數格的接線空間。 • 將P8、P10、P12、P14與P16 規劃在子板兩排CPLD I/O接腳的中間,並與兩排CPLD I/O保持數格距離。
母電路板Layout圖繪製建議方式(4/5) • 金手指與CPLD I/O快速連接,建議的連接方式如下: • 金手指與CPLD I/O的連接線應繪製於方格紙第3面,且一律以元件面方向繪製。 • 直接將金手指往上拉至CPLD之I/O腳位,建議由最下方的CPLD I/O開始依序往上與金手指連接。
母電路板Layout圖繪製建議方式(5/5) • 電源、接地處理與電子元件佈置佈線,建議的連接方式如下: • 連接母板與子板的接地端:將子板CPLD I/O雙排腳位左下角的GND端直接往左拉至母板接地端之長條銅箔,便可使母板與子板之接地端等電位(此條連線應繪製於方格紙第3面)。 • 電源與電子元件佈置佈線: C10、C11、R10和U10的元件佈置與佈線結果,如右圖所示,元件外觀圖(包含跳線)必須繪製於方格式的第一面,而元件與元件間的連線應繪製於第3面,所有圖形繪製皆以元件面的方向進行。
四位數多工顯示器之子電路板功能與CPLD腳位對應圖四位數多工顯示器之子電路板功能與CPLD腳位對應圖
四位數多工顯示器電路程式碼 module mux_scan4(clr,ck1,ck2,dcba,sel); inputclr,ck1,ck2; output [3:0] dcba; output [1:0] sel; reg[3:0] dcba; reg[3:0] dig0,dig1,dig2,dig3; reg[3:0] cnt; assign sel = cnt[3:2]; always @(negedge ck2) begin cnt<=cnt+1; end always @(negedge ck1 or posedge clr) begin if (clr==1'b1) dig0<=4'b0000; else if (dig0>=9) dig0<=4'b0000; else dig0<=dig0+1; end always @(negedge dig0[3] or posedge clr) begin if (clr==1'b1) dig1<=4'b0000; else if (dig1>=9) dig1<=4'b0000; else dig1<=dig1+1; end always @(negedge dig1[3] or posedge clr) begin if (clr==1'b1) dig2<=4'b0000; else if (dig2>=9) dig2<=4'b0000; else dig2<=dig2+1; end always @(negedge dig2[3] or posedge clr) begin if (clr==1'b1) dig3<=4'b0000; else if (dig3>=9) dig3<=4'b0000; else dig3<=dig3+1; end always @(cnt or dig0 or dig1 or dig2 or dig3) begin case (cnt[3:2]) 2'b00: dcba = dig3; 2'b01: dcba = dig2; 2'b10: dcba = dig1; default : dcba = dig0; endcase end endmodule
電路程式碼使用Maxplus編譯之修正方式 ….. wirexx; ….. always @(negedge ck1 or posedge clr) begin if (clr==1'b1) dig0<=4'b0000; else if (dig0>=9) dig0<=4'b0000; else dig0<=dig0+1; end assign xx = dig0[3]; always @(negedge xx or posedge clr) begin if (clr==1'b1) dig1<=4'b0000; else if (dig1>=9) dig1<=4'b0000; else dig1<=dig1+1; end
運用繪圖法搭配小程式可以進行元件模組化的電路設計運用繪圖法搭配小程式可以進行元件模組化的電路設計
試 題 二(鍵盤掃瞄裝置) 一、 檢定時間:六小時 二、 試題說明
鍵盤掃描裝置試題動作要求 (一) 電源開關(SW1)ON,AC 電源指示燈(NL1)及DC 電源指示燈(NL2)應亮。 1. 開始/停止鍵(S1)為OFF 時,計數顯示器應顯示「00」。 2. 將函數信號產生器設定頻率1~5Hz,輸出電壓準位為0~12v 之正脈波,輸入於「CLOCK IN」端,作為電路動作所需之時序信號。(注意:不得由測試機台信號直接輸入)。 (二) 凡未具有下列之全部功能要求者不予評分。 1. 可由鍵盤輸入0~9 數目 (1) 每次鍵入之數目都能立即顯示於個位數,若再鍵入新數目時,原先之個位數則左移至十位數。 (2) 輸入過程中,可利用清除鍵(S2)隨時清除,顯示器顯示「00」。 2. 由步驟1.將數值設定為99 後,按鍵盤START/STOP 鍵(S1)為ON,則應開始倒數計數。 (1) 個位數可從顯示器上清楚看出由9~0 順序顯示。 (2) 十位數可從顯示器上清楚看出由9~0 順序顯示。 (三) 步驟(二)-2.倒數計數到顯示為「00」時 1. 倒數計數停止。 2. 計數歸零指示燈NL3 亮。 (四) 倒數計數過程中可隨時控制*(START/STOP)鍵(S1),使計數暫停或繼續倒數計。
母電路板Layout圖繪製建議方式 步驟(1):快速金手指腳位規劃 **由於P17是母板接地端,可直接將其拉至子板GND端。 **將P22母板電源輸入端直接拉至左方長條洞箔。
母電路板Layout圖繪製建議方式 步驟(2):金手指與CPLD I/O快速連接
母電路板Layout圖繪製建議方式 步驟(3):電源、接地處理與電子元件佈置佈線
步驟(3):母板元件面與焊接面 母電路板Layout完成圖
鍵盤掃描裝置之子電路板功能與CPLD腳位對應圖鍵盤掃描裝置之子電路板功能與CPLD腳位對應圖
always @(v or Lb2) begin case(v) 3'b011: enco = {2'b00,Lb2}; 3'b101: enco = {2'b01,Lb2}; 3'b110: enco = {2'b10,Lb2}; default: enco = {2'b00,Lb2}; endcase End always @(negedge scan) begin if (p21==1'b1) bcdo <= enco; end always @(Lb2) begin case(Lb2) 2'b00:h = 4'b0111; 2'b01:h = 4'b1011; 2'b10:h = 4'b1101; default:h = 4'b1110; endcase end always @(posedge scan) begin sq<= keyin; sqd<=sq; p20<=pulse; end assign pulse = sq & (~sqd); assign p6 = pulse; assignp1 = ~(p13 |p14); endmodule 鍵盤掃描裝置電路程式碼 module kb_scan(xtal,v,p13,p14,p21,h,bcdo,p6,p20,p1); inputxtal; input[0:2] v; inputp13,p14,p21; output[0:3] h; output[3:0] bcdo; outputp6,p20,p1; reg[15:0] cnt; reg[1:0] Lb2; reg[3:0] enco,bcdo; reg[0:3] h; regsq,sqd,p20; wirekeyin,scan,pulse; assign scan = cnt[15]; always @(posedge xtal) begin cnt<=cnt+1; end assign keyin = ~ (v[0] & v[1] & v[2]); always @(posedge scan) begin if (keyin==1'b0) Lb2<=Lb2+1; end