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

標(biāo)題: 基于狀態(tài)機(jī)和VerilogHDL的學(xué)號(hào)顯示控制電路設(shè)計(jì) [打印本頁]

作者: aceamber    時(shí)間: 2024-6-24 01:19
標(biāo)題: 基于狀態(tài)機(jī)和VerilogHDL的學(xué)號(hào)顯示控制電路設(shè)計(jì)
1 設(shè)計(jì)任務(wù)

基于VerilogHDL和狀態(tài)機(jī),完成學(xué)號(hào)顯示控制電路設(shè)計(jì)。

例如學(xué)號(hào):21002495

功能要求如下:

-用八個(gè)數(shù)碼管顯示;

-學(xué)號(hào)按照10hz的時(shí)鐘的節(jié)拍從右而左進(jìn)入,從學(xué)號(hào)的高位開始進(jìn)入;

-8位學(xué)號(hào)全部進(jìn)入后停頓5s,然后全部熄滅,再重新開始;

設(shè)計(jì)要求:

-設(shè)計(jì)要用狀態(tài)機(jī);                                

-信號(hào)源模塊輸出10hz的基準(zhǔn)時(shí)鐘,用于同步學(xué)號(hào)顯示;

-設(shè)計(jì)應(yīng)有的BCD碼和7段碼輸出,仿真波形要有BCD學(xué)號(hào);

分頻模塊:

module divider50M_10hz(
            input clk_50M,
            input reset_n,
            output reg clk_10hz);
            reg [25:0] cnt;
always@(posedge clk_50M or posedge reset_n)
begin if(reset_n)
          cnt<=26'b0;
       else begin
          cnt=cnt+1'b1;
          if(cnt==5000_000) //50M/10=5M,占空比為50%
             cnt<=1'b0;
           else if(cnt<2500_000)
             clk_10hz=1'b0;        
           else if(cnt>=2500_000)
             clk_10hz=1'b1;   
            end
end
endmodule


學(xué)號(hào)顯示控制模塊

module xuehao
(
    clk,
    q1, q2, q3, q4, q5, q6, q7, q8,
    rst
);

input clk;
input rst;
output reg [3:0] q1, q2, q3, q4, q5, q6, q7, q8;    //輸出給譯碼器進(jìn)行譯碼,用于學(xué)號(hào)輸出的輸出端
integer     i =  1'd 0;            //用于延時(shí),給脈沖計(jì)數(shù)的臨時(shí)變量
integer state = 4'b 0000;    //狀態(tài)變化

//學(xué)號(hào):21002495的二進(jìn)制碼
parameter     temp_1 = 4'b 0010, temp_2 = 4'b 0001,temp_3 = 4'b 0000,temp_4 = 4'b 0000,
               temp_5 = 4'b 0010, temp_6 = 4'b 0100,temp_7 = 4'b 1001,temp_8 = 4'b 0101;


//給9種狀態(tài)進(jìn)行編碼,S0--S8
parameter S0 = 4'b 0000, S1 = 4'b 0001, S2 = 4'b 0010, S3 = 4'b 0011,
             S4 = 4'b 0100, S5 = 4'b 0101, S6 = 4'b 0110, S7 = 4'b 0111,
             S8 = 4'b 1000;


always @(posedge clk or posedge rst)
begin if(rst)
            begin
            q1 = 4'b 1111; q2 = 4'b 1111; q3 = 4'b 1111; q4 = 4'b 1111;
                q5 = 4'b 1111; q6 = 4'b 1111; q7 = 4'b 1111; q8 = 4'b 1111;
           end
        else case(state)
            S0:     //初始狀態(tài),輸出全為1,使數(shù)碼管熄滅
            begin
                state <= S1;
                q1 = 4'b 1111; q2 = 4'b 1111; q3 = 4'b 1111; q4 = 4'b 1111;
                q5 = 4'b 1111; q6 = 4'b 1111; q7 = 4'b 1111; q8 = 4'b 1111;
            end
            S1: begin q1 = temp_1; state <= S2;end
         S2: begin q2 = temp_1;q1 = temp_2; state <= S3;end
            S3: begin q3 = temp_1; q2 = temp_2;q1 = temp_3; state <= S4;end
            S4: begin q4 = temp_1; q3 = temp_2; q2 = temp_3; q1 = temp_4;state <= S5;end
            S5: begin
                q5 = temp_1; q4 = temp_2; q3 = temp_3; q2 = temp_4;
                q1 = temp_5;
                state <= S6;
                end
            S6: begin
                q6 = temp_1; q5 = temp_2; q4 = temp_3; q3 = temp_4;
                q2 = temp_5;q1 = temp_6;
                state <= S7;
                end
            S7: begin
                q7 = temp_1; q6 = temp_2; q5 = temp_3; q4 = temp_4;
                q3 = temp_5; q2 = temp_6; q1 = temp_7;
                state <= S8;
                end
         S8: begin
                if(i >= 50)        //計(jì)數(shù)50個(gè)上升沿后,再轉(zhuǎn)移到S0狀態(tài),即延時(shí)5s
                begin
                    state <= S0;
                    i = 0; end
                else
                begin
                    i= i + 1;
                    q8 = temp_1; q7 = temp_2; q6 = temp_3; q5 = temp_4;
                    q4 = temp_5; q3 = temp_6; q2 = temp_7; q1 = temp_8;
                end
            end
            default:
            begin
                q1 = 4'b 1111; q2 = 4'b 1111; q3 = 4'b 1111; q4 = 4'b 1111;
                q5 = 4'b 1111; q6 = 4'b 1111; q7 = 4'b 1111; q8 = 4'b 1111;
            end
        endcase
end
endmodule


譯碼模塊:

module my4_7decoder
(
    in,
    out,
    en
);

input [3:0]in;
input en;
output reg [6:0] out;

always @(*)
begin
    if(en)
        out = 7'b 111_1111;
    else
    begin
        case(in) //g-a //省略了一部分?jǐn)?shù)字
            4'b 0000: out = 7'b 100_0000;
            4'b 0001: out = 7'b 111_1001;
            4'b 0010: out = 7'b 010_0100;
            4'b 0011: out = 7'b 011_0000;
            4'b 0100: out = 7'b 001_1001;
            4'b 0101: out = 7'b 001_0010;
            4'b 0110: out = 7'b 000_0011;
            4'b 0111: out = 7'b 111_1000;
            4'b 1000: out = 7'b 000_0000;
            4'b 1001: out = 7'b 001_0000;
            4'b 1010: out = 7'b 010_0111;
            4'b 1111: out = 7'b 111_1111;
            default:  out = 7'b 111_1111;
        endcase

    end
end
endmodule


頂層設(shè)計(jì):



綁定管腳:

管腳:
clk_50M                 Input    PIN_AD15    7    B7_N3    PIN_AD15    3.3-V LVTTL (default)        24mA (default)   
en                 Input    PIN_L7    2    B2_N1    PIN_L7    3.3-V LVTTL (default)        24mA (default)   
reset_n             Input    PIN_L8    2    B2_N1    PIN_L8    3.3-V LVTTL (default)        24mA (default)   
segcode0[6]        Output    PIN_AD12    8    B8_N1    PIN_AD12    3.3-V LVTTL (default)        24mA (default)   
segcode0[5]        Output    PIN_AD11    8    B8_N2    PIN_AD11    3.3-V LVTTL (default)        24mA (default)   
segcode0[4]        Output    PIN_AF10    8    B8_N2    PIN_AF10    3.3-V LVTTL (default)        24mA (default)   
segcode0[3]        Output    PIN_AD10    8    B8_N2    PIN_AD10    3.3-V LVTTL (default)        24mA (default)   
segcode0[2]        Output    PIN_AH9    8    B8_N1    PIN_AH9    3.3-V LVTTL (default)        24mA (default)   
segcode0[1]        Output    PIN_AF9    8    B8_N2    PIN_AF9    3.3-V LVTTL (default)        24mA (default)   
segcode0[0]        Output    PIN_AE8    8    B8_N3    PIN_AE8    3.3-V LVTTL (default)        24mA (default)   
segcode1[6]        Output    PIN_AD17    7    B7_N2    PIN_AD17    3.3-V LVTTL (default)        24mA (default)   
segcode1[5]        Output    PIN_AF17    7    B7_N2    PIN_AF17    3.3-V LVTTL (default)        24mA (default)   
segcode1[4]        Output    PIN_AE17    7    B7_N3    PIN_AE17    3.3-V LVTTL (default)        24mA (default)   
segcode1[3]        Output    PIN_AG16    7    B7_N3    PIN_AG16    3.3-V LVTTL (default)        24mA (default)   
segcode1[2]        Output    PIN_AF16    7    B7_N3    PIN_AF16    3.3-V LVTTL (default)        24mA (default)   
segcode1[1]        Output    PIN_AE16    7    B7_N3    PIN_AE16    3.3-V LVTTL (default)        24mA (default)   
segcode1[0]        Output    PIN_AG13    8    B8_N0    PIN_AG13    3.3-V LVTTL (default)        24mA (default)   
segcode2[6]        Output    PIN_AE19    7    B7_N1    PIN_AE19    3.3-V LVTTL (default)        24mA (default)   
segcode2[5]        Output    PIN_AB19    7    B7_N1    PIN_AB19    3.3-V LVTTL (default)        24mA (default)   
segcode2[4]        Output    PIN_AB18    7    B7_N1    PIN_AB18    3.3-V LVTTL (default)        24mA (default)   
segcode2[3]        Output    PIN_AG4    8    B8_N3    PIN_AG4    3.3-V LVTTL (default)        24mA (default)   
segcode2[2]        Output    PIN_AH5    8    B8_N3    PIN_AH5    3.3-V LVTTL (default)        24mA (default)   
segcode2[1]        Output    PIN_AF7    8    B8_N3    PIN_AF7    3.3-V LVTTL (default)        24mA (default)   
segcode2[0]        Output    PIN_AE7    8    B8_N3    PIN_AE7    3.3-V LVTTL (default)        24mA (default)   
segcode3[6]        Output    PIN_M6    2    B2_N2    PIN_M6    3.3-V LVTTL (default)        24mA (default)   
segcode3[5]        Output    PIN_M7    2    B2_N2    PIN_M7    3.3-V LVTTL (default)        24mA (default)   
segcode3[4]        Output    PIN_M8    2    B2_N1    PIN_M8    3.3-V LVTTL (default)        24mA (default)   
segcode3[3]        Output    PIN_N7    2    B2_N2    PIN_N7    3.3-V LVTTL (default)        24mA (default)   
segcode3[2]        Output    PIN_N10    2    B2_N2    PIN_N10    3.3-V LVTTL (default)        24mA (default)   
segcode3[1]        Output    PIN_P4    2    B2_N3    PIN_P4    3.3-V LVTTL (default)        24mA (default)   
segcode3[0]        Output    PIN_P6    2    B2_N3    PIN_P6    3.3-V LVTTL (default)        24mA (default)   
segcode4[6]        Output    PIN_M2    2    B2_N3    PIN_M2    3.3-V LVTTL (default)        24mA (default)   
segcode4[5]        Output    PIN_M1    2    B2_N3    PIN_M1    3.3-V LVTTL (default)        24mA (default)   
segcode4[4]        Output    PIN_N3    2    B2_N3    PIN_N3    3.3-V LVTTL (default)        24mA (default)   
segcode4[3]        Output    PIN_N2    2    B2_N3    PIN_N2    3.3-V LVTTL (default)        24mA (default)   
segcode4[2]        Output    PIN_P3    2    B2_N3    PIN_P3    3.3-V LVTTL (default)        24mA (default)   
segcode4[1]        Output    PIN_P2    2    B2_N3    PIN_P2    3.3-V LVTTL (default)        24mA (default)   
segcode4[0]        Output    PIN_P1    2    B2_N3    PIN_P1    3.3-V LVTTL (default)        24mA (default)   
segcode5[6]        Output    PIN_K5    2    B2_N1    PIN_K5    3.3-V LVTTL (default)        24mA (default)   
segcode5[5]        Output    PIN_K4    2    B2_N2    PIN_K4    3.3-V LVTTL (default)        24mA (default)   
segcode5[4]        Output    PIN_K1    2    B2_N2    PIN_K1    3.3-V LVTTL (default)        24mA (default)   
segcode5[3]        Output    PIN_L3    2    B2_N2    PIN_L3    3.3-V LVTTL (default)        24mA (default)   
segcode5[2]        Output    PIN_L2    2    B2_N3    PIN_L2    3.3-V LVTTL (default)        24mA (default)   
segcode5[1]        Output    PIN_L1    2    B2_N3    PIN_L1    3.3-V LVTTL (default)        24mA (default)   
segcode5[0]        Output    PIN_M3    2    B2_N3    PIN_M3    3.3-V LVTTL (default)        24mA (default)   
segcode6[6]        Output    PIN_E4    2    B2_N0    PIN_E4    3.3-V LVTTL (default)        24mA (default)   
segcode6[5]        Output    PIN_F4    2    B2_N0    PIN_F4    3.3-V LVTTL (default)        24mA (default)   
segcode6[4]        Output    PIN_G4    2    B2_N0    PIN_G4    3.3-V LVTTL (default)        24mA (default)   
segcode6[3]        Output    PIN_H8    2    B2_N0    PIN_H8    3.3-V LVTTL (default)        24mA (default)   
segcode6[2]        Output    PIN_H7    2    B2_N0    PIN_H7    3.3-V LVTTL (default)        24mA (default)   
segcode6[1]        Output    PIN_H4    2    B2_N1    PIN_H4    3.3-V LVTTL (default)        24mA (default)   
segcode6[0]        Output    PIN_H6    2    B2_N0    PIN_H6    3.3-V LVTTL (default)        24mA (default)   
segcode7[6]        Output    PIN_G1    2    B2_N2    PIN_G1    3.3-V LVTTL (default)        24mA (default)   
segcode7[5]        Output    PIN_H3    2    B2_N1    PIN_H3    3.3-V LVTTL (default)        24mA (default)   
segcode7[4]        Output    PIN_H2    2    B2_N2    PIN_H2    3.3-V LVTTL (default)        24mA (default)   
segcode7[3]        Output    PIN_H1    2    B2_N2    PIN_H1    3.3-V LVTTL (default)        24mA (default)   
segcode7[2]        Output    PIN_J2    2    B2_N2    PIN_J2    3.3-V LVTTL (default)        24mA (default)   
segcode7[1]        Output    PIN_J1    2    B2_N2    PIN_J1    3.3-V LVTTL (default)        24mA (default)   
segcode7[0]        Output    PIN_K3    2    B2_N2    PIN_K3    3.3-V LVTTL (default)        24mA (default)   
rst        Unknown                    3.3-V LVTTL (default)        24mA (default)   
<<new node>>                                       


全是知識(shí)點(diǎn),滿滿細(xì)節(jié)控,看完點(diǎn)贊點(diǎn)關(guān)注~


2c31b89eb6504aa69c2729bef8d0793c.png (112.12 KB, 下載次數(shù): 18)

2c31b89eb6504aa69c2729bef8d0793c.png





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产乱国产乱300精品 | 五月天视频 | 欧美18免费视频 | 成人一级视频 | a级黄色片| 色婷婷婷| 日韩视频免费在线观看 | 懂色av懂色av粉嫩av | 日韩av在线网站 | 欧美午夜视频 | 国产一级黄色录像 | 干少妇视频 | av一区二区三区在线观看 | 懂色av一区二区三区 | 日韩精品一区二区三区免费视频 | 成人国产精品免费观看 | 国产深夜福利 | 成人福利在线观看 | 欧美8888| 极品新婚夜少妇真紧 | 久久草视频| 色天使在线视频 | 欧美精品亚洲 | 黄色一级录像 | 日本加勒比在线 | av资源站 | 久久精品综合 | 日韩色黄大片 | 国产精品成人在线 | 日本免费黄色网址 | 国产毛片在线 | 亚洲一区免费 | 五月开心激情网 | 中文字幕免费在线 | 色妞网 | 久久视频免费在线观看 | 伊人成人在线视频 | 国产精品天美传媒入口 | 蜜桃视频一区二区 | 毛片精品 | 中文字幕第三页 |