做出上數至60進位的功能。
Da:輸入。(4 bits)
Db: 輸入。(3 bits)
clk: 輸入-時脈訊號。(週期:10ns)
clrn:重置。
en:致能鍵。
load:載入數字。
按鍵設計:
Counter Mod6
//Counter Mod6
module counter6( load, D, en, clrn, clk, Q, Co);
input load,en,clrn,clk;
input [2:0] D;
output [2:0] Q;
output Co;
reg [2:0] Q;
always @(posedge clk or posedge clrn)
begin
if(clrn ==1)
Q = 0;
else if(load ==1)
Q = D;
else if(en ==1)
begin
if(Q ==5)
Q = 0;
else
Q = Q + 1;
end
end
assign Co = Q[2] & Q[0] & en;
endmodule
Counter Mod 10
module counter10( load, D, en, clrn, clk, Q, Co);
input load,en,clrn,clk;
input [3:0] D;
output [3:0] Q;
output wire Co;
reg [3:0] Q;
always @(posedge clk or posedge clrn)
begin
if(clrn ==1)
Q = 0;
else if(load ==1)
Q = D;
else if(en ==1)
begin
if(Q ==9)
Q = 0;
else
Q = Q + 1;
end
end
assign Co = Q[3] & Q[0] & en;
endmodule
Counter Mod 60
module counter60( load, clk, en, clrn, Da, Db, Co, qa, qb);
input load,en,clrn,clk;
input [3:0] Da;//
input [2:0] Db;//
output Co;
output [3:0] qa;
output [2:0] qb;
wire counter10Co;
counter10 U1( .load(load), .D(Da), .en(en), .clrn(clrn), .clk(clk), .Q(qa), .Co(counter10Co));
counter6 U2( .load(load), .D(Db), .en(counter10Co), .clrn(clrn), .clk(clk), .Q(qb), .Co(Co));
endmodule
建立新專案:
1. 打開<ISE Project Navigator 13.4>。
2. 點選File -> New Project 。
3. Location的位置,輸入 “D:\FPGA”。
4. Name的位置,輸入”counter60”。
5. 最後,滑鼠點擊Nxet。
(圖)
專案設定:
6. Family: 選擇Spartan 3E。
7. Device: 選擇XC3S500E 或是 XC3S1200E。
8. Speed: 選擇-4。
9. Package: 選擇FG320。
10.Preterred Language: 選擇Verilog。
11.最後,點擊Next。
(圖)
12.再次確認,專案設定是否有誤。
滑鼠點擊Finish。
加入程式檔:
13.點擊滑鼠右鍵,在選擇”Add Copy of Source”。
選出”code_lab5_num1”資料夾內,四個檔案”counter10” 、”counter6” 、”counter60”和 “counter60_tb.v”,再點ok。
(圖)
邏輯合成(Synthesize):
16.連點兩下<Synthesize – XST>做邏輯合成,若是成功<Synthesize – XST>前面會出現綠色勾勾。
17.點開<Synthesize – XST>前面”+”做展開後,滑鼠左鍵連點兩次,在按OK。
(圖)
訊號模擬:
18.點選<Simulation>,再點開<hex7seg_tb.v>。
19.先點選<mux21b_tb.v>,再點開<ISim Simulator>,再點左鍵連點兩下<Simulate Behavioral Module>。
(圖)
20.連點兩下<Simulate Behavioral Module>完後,會跳出一個新視窗。
21.點擊 <Zoom to Full View>,如圖
,就可以觀看完整的訊號圖。
(圖)
22. 若要放大圖,在訊號圖上,按住Ctrl且滑鼠滾輪向前滾動,反之,要縮小圖,按住Ctrl且滑鼠滾輪向後滾動。
(圖)
訊號模擬(圖)
Please design a mod24 up-counter.