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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2933|回復: 1
打印 上一主題 下一主題
收起左側

Verilog HDL的簡單應用之74ls138功能的實現

[復制鏈接]
跳轉到指定樓層
樓主
ID:1003637 發表于 2022-1-27 12:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
可算是放寒假了。。。淚目!
簡報

眾所周知,74ls138是一種應用廣泛的電子元器件。其本體共有3+3+8+1+1=16根引腳,其中,電源與接地口我們直接忽略掉吧(畢竟這兄弟倆也沒什么大用處。。。也許吧)。 因此,本篇文章將利用Verilog HDL對 74ls138 16個接口中的14個接口功能進行實現。

引腳
74ls138邏輯符號中的14個引腳及其功能如下:

1. 地址端:共3個,按高低順序組成二進制代碼,通過數字的先后順序對應8個數據輸出端,為主要實現功能的端口之一。
2. 輸出端:為主要實現功能的端口之一,共8個,根據地址段輸入的信息,不同的輸出端將會作出相應反應(比如電平由高轉低)==注意:74ls138的8個輸出端輸出的為最小項的反,即默認狀態下輸出均為1==。
3. 選通端:共3個,為原件功能的開關。當且僅當一個選通端為高電平,其余兩個選通端為低電平時,允許原件進行正常工作。


代碼
根據上述內容,我們可以很容易地在Vivado上面利用Verilog HDL語言實現74ls138的功能。廢話不多說,我們直接上代碼。


module x74x138(
g1,g2,g3,a,y
);                                   //定義模塊
input           g1,g2,g3;
input     [2:0] a;
output    [7:0] y;                   //聲明輸入輸出量 這一步不能放到定義模塊中去
reg       [7:0] y=0;                 //作為變量要聲明為reg

    always @ *
            begin

                if(g1 && ~g2 && ~g3)                 //選通端

                    case(a)
                            7:y= 8'b01111111;
                                   6:y= 8'b10111111;
                            5:y= 8'b11011111;
                            4:y= 8'b11101111;
                            3:y= 8'b11110111;
                            2:y= 8'b11111011;
                            1:y= 8'b11111101;
                            0:y= 8'b11111110;
                            default: y= 8'b11111111;
                    endcase
                else
                    y= 8'b11111111;
    end
endmodule


以上為74ls138的Verilog HDL代碼。我用的FPGA設計套件是Vivado,下面是對應的仿真文件。


module SIM;
    reg        g1;
    reg        g2;
    reg        g3;
    reg  [2:0] a;
    wire [7:0] y;

    x74x138 u1(g1,g2,g3,a,y);
            initial begin
                       g1=0;
                       g2=0;
                g3=0;
                a=0;
                #100;
                g1=1;
                g2=0;
                g3=0;
            end
            always #100 a=a+1;
endmodule


在仿真文件里,我們先令選通端均為低電平,在100ns后,改變電平狀態,啟動原件,并在每100ns將a的數值+1,以便驗證功能。
小結
講真的,我自己都感覺這個東西寫上去有點簡單,不會有多少人會看。但是,我還是要把它認真的寫出來,畢竟,這是我設計的第一個硬件,懂的都懂(剛學的時候這些東西都是能讓我抓狂的。。。),所以將他們寫出來。一來便于對硬件的理解,二來幫助剛剛接觸到Verilog HDL的同仁更好的對代碼和仿真文件進行一定的理解。就這樣吧。這幾天要是有時間我會把我初期寫的一些代碼發出來,正好當做我博客的頭幾篇文章(別說,還真合適)。各位,拜拜嘍!

評分

參與人數 1黑幣 +50 收起 理由
admin + 50

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:691028 發表于 2022-2-16 08:42 | 只看該作者
謝謝樓主的例子!學習一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线免费视频 | 欧美精品久久久久久久久老牛影院 | 三级成人片| 9久久婷婷国产综合精品性色 | 成人亚洲片 | 日本不卡一区二区三区在线观看 | 欧美区在线观看 | 国产精品视频网站 | 一区二区三区四区视频 | 欧美手机在线 | 中文字幕久久久 | 国产一级片免费看 | 99国产精品99久久久久久 | 91免费视频| 亚洲精品久久久久久一区二区 | 黑人巨大精品欧美一区二区免费 | 久久国产精品久久久久久 | 亚洲国产精品日韩av不卡在线 | 国产一级免费在线观看 | 偷拍亚洲色图 | 成人免费视屏 | 欧美在线激情 | 一区欧美| 亚洲精品在线免费观看视频 | 中文字幕 国产精品 | 国产精品中文字幕在线播放 | 国内精品伊人久久久久网站 | 日韩a视频 | 99久久婷婷国产综合精品电影 | 中文字幕一区在线观看视频 | 中文字幕一区二区三区精彩视频 | h视频在线观看免费 | 日韩在线成人 | japanhd美女动 | 欧美日韩国产一区二区三区不卡 | 免费特黄视频 | 色精品视频 | 日韩视频一级 | 免费毛片在线 | 亚洲精品久久久久avwww潮水 | 毛片免费在线 |