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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3091|回復: 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

查看全部評分

回復

使用道具 舉報

ID:691028 發表于 2022-2-16 08:42 | 顯示全部樓層
謝謝樓主的例子!學習一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天干夜夜操 | 黄视频免费在线观看 | 高清一区二区三区 | 欧美一级片在线 | 婷婷97| 成人高清在线 | 久久久久婷婷 | 日日夜夜狠狠操 | 中文字幕在线观看一区二区三区 | 性网址| 一级免费黄色片 | 五月天婷婷激情 | 一级黄色免费视频 | 91蜜桃婷婷狠狠久久综合9色 | 无套内谢的新婚少妇国语播放 | 亚洲成人天堂 | cao视频| 黄色大片av | 久久伊人av| 国产精品666| 久久亚洲国产精品 | 春色导航| 久久精品福利 | 欧美精品在线免费观看 | 成人免费看片视频 | 99久久久久久 | 欧美精品亚洲 | 自拍偷拍一区二区三区 | 五月婷婷激情 | 91青青草 | 99精品久久久久久中文字幕 | 久草福利在线观看 | 日本黄a三级三级三级 | 黄色毛毛片 | 麻豆av网站| 午夜视频免费 | 黄色大片在线播放 | 黄色一级片免费看 | www.色日本 | 欧美一区二区在线观看 | 免费中文字幕日韩欧美 |