久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 74LS160計數器功能模塊 [打印本頁]

作者: WeTiGY    時間: 2016-11-25 23:00
標題: 74LS160計數器功能模塊
本帖最后由 WeTiGY 于 2016-11-25 23:13 編輯

實驗五  74LS160計數器功能模塊
一、實驗目的
1、學會用HDL語言設計時序電路;
2、用HDL語言設計74LS160計數器功能模塊。
二、硬件需求
    EDA/SOPC實驗箱一臺。
三、實驗原理
計數器是最常用的寄存器邏輯電路,從微處理器的地址發生器到頻率計都需要用到計數器。一般計數器可以分為兩類:加法計數器和減法計數器。加法計數器每來一個脈沖計數值加1;減法計數器每來一個脈沖計數值減1。
下面將通過模仿中規模集成電路74LS160的功能,用HDL語言設計一個十進制可預置計數器。74LS160共有一個時鐘輸入端CLK,一個清除輸入端CLR,兩個計數允許信號P和T,4個可預置數據輸入端D、C、B、A,一個置位允許端LOAD,4個計數輸出端QD、QC、QB、QA,一個進位輸出端RC,其工作模式及時序圖如下表和圖2-14所示。
  
功能
  
輸入
輸出
操作
CLR
CLK
P
T
LOAD
QDQCQBQA
復位
L
X
X
X
X
LLLL
預置
H
X
X
L
DCBA
計數
H
H
H
H
+1
保持
H
X
L
X
H
QDQCQBQA
保持
H
X
X
L
H
QDQCQBQA
注:進位輸出端RC=Q3&!Q2&!Q1&Q0&T
四、實驗內容
本實驗要完成的任務就是實現中規模集成電路74LS160的功能,觀察其工作時序,并下載到芯片中觀察其實際工作過程。實驗時為了便于觀察,需經分頻得到1Hz時鐘,用撥擋開關的SW1A~SW4A作為計數器的輸入D,按鍵F3和F4作為計數器的控制允許P和T信號,F2作為清除輸入CLR,用按鍵開關模塊的F1作為LOAD信號(注意:由于計數器采用的是1Hz時鐘,而裝載數據是在時鐘信號的上升沿作用下進行,所以要想正確的加載預制數據,F1按鍵必須按住至少1s以上才可以),用七段數碼管模塊中的某一位作為計數器的輸出Q指示,用led8作為計數器的輸出翻轉信號RC指示。
第一個是分頻模塊:
  1. module divider_module
  2. (
  3.        CLK,f_Out
  4. );

  5.        input CLK;
  6.        output f_Out;
  7.    

  8.        parameter T1s=26'd50_000_000;
  9.        reg [25:0]Count1;
  10.    
  11.       always @ ( posedge CLK )
  12.                  if( Count1 == T1s)
  13.                       Count1 <= 26'd0;
  14.                 else
  15.                       Count1 <= Count1 + 1'b1;
  16.         
  17.        reg rf_Out;        
  18.        always @ ( posedge CLK )
  19.                    if( Count1 >= 26'd0 && Count1 <= 26'd25_000_000)
  20.                         rf_Out <= 1'b0;
  21.                   else
  22.                         rf_Out <= 1'b1;     
  23.       assign f_Out = rf_Out;

  24. endmodule
復制代碼


第二個是數碼管模塊:
  1. module hex_module
  2. (
  3.    f_Out,hex,Q
  4. );
  5.    input  f_Out;
  6.    input  [3:0] Q;
  7.    output [6:0] hex;
  8.    
  9.    reg [6:0] rhex;
  10.    always@(posedge f_Out)
  11.         begin
  12.            case(Q)
  13.                  4'd0 :  rhex<=7'b0000001;    //0
  14.                  4'd1 :  rhex<=7'b1111001;    //1
  15.                  4'd2 :  rhex<=7'b0010010;    //2
  16.                  4'd3 :  rhex<=7'b0000011;    //3
  17.                  4'd4 :  rhex<=7'b1001100;    //4
  18.                  4'd5 :  rhex<=7'b0100100;    //5
  19.                  4'd6 :  rhex<=7'b0100000;    //6
  20.                  4'd7 :  rhex<=7'b0001111;    //7
  21.                  4'd8 :  rhex<=7'b0000000;    //8
  22.                  4'd9 :  rhex<=7'b0000100;    //9
  23.                  
  24.                default:  rhex<=7'b0110110;    //F
  25.            endcase
  26.          end
  27.    assign hex=rhex;

  28. endmodule
復制代碼
第三個是計數模塊:
  1. module count_module
  2. (
  3.    f_Out,RSTn,P,T,LOAD,D,Q,RC
  4. );
  5.    input  f_Out,RSTn,P,T,LOAD;
  6.         input  [3:0] D;
  7.         output [3:0] Q;
  8.         output RC;
  9.        
  10.    reg [3:0] Q;
  11.         reg RC;
  12.         always@(posedge f_Out or negedge RSTn)
  13.               if(!RSTn)
  14.                            Q<=4'd0;
  15.                         else if(!LOAD)
  16.                            Q<=D;
  17.                         else if(P&T)
  18.                            begin

  19.                                             if(Q<4'd9)
  20.                                                     begin
  21.                                                     Q<=Q+1'b1;
  22.                                                          RC<=1'b0;
  23.                                                          end
  24.                                                   else
  25.                                                     begin
  26.                                                          Q<=4'd0;
  27.                                                          RC<=1'b1;
  28.                                                          end                                         
  29.                                 end
  30.                         else
  31.                            Q<=4'd0;
  32.                                
  33. endmodule
復制代碼


第四個是頂層模塊:
  1. module top_module
  2. (
  3.    CLK,RSTn,P,T,LOAD,D,RC,hex
  4. );
  5.    input  CLK,RSTn,P,T,LOAD;
  6.         input  [3:0] D;
  7.         output [6:0] hex;
  8.         output RC;
  9.         
  10.    wire f_out;
  11.         divider_module u1
  12.         (
  13.           .CLK(CLK),
  14.           .f_Out(f_Out)
  15.         );
  16.         wire [3:0] Q;
  17.         count_module u2
  18.         (
  19.           .f_Out(f_Out),
  20.           .RSTn(RSTn),
  21.           .P(P),
  22.           .T(T),
  23.           .LOAD(LOAD),
  24.           .D(D),
  25.           .RC(RC),
  26.           .Q(Q)
  27.         );
  28.         
  29.         hex_module u3
  30.         (
  31.           .f_Out(f_Out),
  32.           .Q(Q),
  33.           .hex(hex)
  34.         );
  35.         
  36.         

  37. endmodule        
復制代碼

注:使用20分頻仿真

仿真圖:



作者: 17509086609    時間: 2019-12-30 01:01
樓主分享個壓縮包啊




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美成人精品一区二区三区 | 欧美成人精品一区二区三区 | 91九色在线视频 | 色综合久久久久 | 久草福利在线视频 | 国产黄色一区 | 日韩午夜片 | 日本特级黄色片 | 欧美日韩亚洲一区 | 黄色片久久 | 久久一级视频 | 国产一区中文字幕 | 美女免费视频网站 | 久久草视频 | 欧美三级韩国三级日本三斤在线观看 | 欧美日韩在线免费观看 | 欧美精品二区三区四区免费看视频 | 91免费国产 | 福利在线播放 | 亚洲激情在线播放 | 亚洲三级网 | 亚洲精品少妇 | 在线观看日韩精品 | 日韩欧美中文在线 | 久久久亚洲天堂 | www.久草 | 亚洲精品在线视频观看 | 国产日韩视频 | 波多野结衣av在线播放 | 欧美福利在线 | 天天操夜夜爽 | 一级黄色片免费看 | 日本中文字幕在线观看 | 中文字幕在线观看一区二区三区 | 久久久久久久 | 精品一区二区三区四区五区 | 中文字幕日韩高清 | 亚洲国产二区 | 青草av在线 | 深夜福利网址 | 91精品久久久久久久久 |