精华内容
参与话题
问答
  • 题目要求:设计一个10输入编码器和一个七段译码器,要求使输入值在译码器显示所需仪器:步骤代码实验图 所需仪器: 软件:modelsim、quartus。 硬件:实验箱。 步骤 在modelsim中新建工程并添加Verilog文件后编写...

    题目要求:设计一个10输入编码器和一个七段译码器,要求使输入值在译码器显示

    所需仪器:

    软件:modelsim、quartus。
    硬件:实验箱。

    步骤

    1. 在modelsim中新建工程并添加Verilog文件后编写代码;
    2. 编译并仿真得到波形图;
    3. 在quarters中新建工程并将Verilog源文件添加进去,编译并运行;
    4. 设置管脚并连接试验箱进行测试。

    代码

    ** 10输入编码器**:

    module bianmaqi(I_L,A_L);
    input [9:0] I_L;
    output [3:0] A_L;
    reg [3:0] A_L;
    integer j;
    
    always @ (I_L or A_L)
    begin 
    for(j=0;j<=9;j=j+1)
            begin
           if(I_L[j]==1)
              A_L=j;
    end
    end
    endmodule
    

    七段译码器

    module Vrseg(A_L,EN,SA,SB,SC,SD,SE,SF,SG);
    input EN;
    input[3:0]A_L;
    output SA,SB,SC,SD,SE,SF,SG;
    reg SA,SB,SC,SD,SE,SF,SG;
    reg [1:7]SS;
    always@(A_L or EN)begin
    if(EN)
    case (A_L)
    4'b0000:SS=7'b1111110;
    4'b0001:SS=7'b0110000;
    4'b0010:SS=7'b1101101;
    4'b0011:SS=7'b1111001;
    4'b0100:SS=7'b0110011;
    4'b0101:SS=7'b1011011;
    4'b0110:SS=7'b0011111;
    4'b0111:SS=7'b1110000;
    4'b1000:SS=7'b1111111;
    4'b1001:SS=7'b1110011;
    default SS=7'bx;
    endcase
    else SS=7'b0;
    {SA,SB,SC,SD,SE,SF,SG}=SS;
    end
    endmodule
    
    

    顶层模块

    module xx(I_L,EN,SA,SB,SC,SD,SE,SF,SG);
    input [9:0]I_L;
    input EN;
    output SA,SB,SC,SD,SE,SF,SG;
    wire [3:0] A_L;
    Vrseg u1(A_L,EN,SA,SB,SC,SD,SE,SF,SG);
    bianmaqi u2(I_L,A_L);
    endmodule
    

    测试代码

    `timescale 1ns/100ps
    `include <n.v>
    module XXy();
    reg [9:0] I_LT;
    reg ENT;
    wire SAA,SBA,SCA,SDA,SEA,SFA,SGA;
    xx ut(.I_L(I_LT),.EN(ENT),.SA(SAA),.SB(SBA),.SC(SCA),.SD(SDA),.SE(SEA),.SF(SFA),.SG(SGA));
    
    initial begin 
    ENT=1;
    #10
    I_LT=10'b0000000001;
    #10
    I_LT=10'b0000000010;
    #10
    I_LT=10'b0000000100;
    #10
    I_LT=10'b0000001000;
    #10
    I_LT=10'b0000010000;
    #10
    I_LT=10'b0000100000;
    #10
    I_LT=10'b0001000000;
    #10
    I_LT=10'b0010000000;
    #10
    I_LT=10'b0100000000;
    #10
    I_LT=10'b1000000000;
    
    end
    endmodule
    

    实验图

    modelsim: modlesim仿真波形图
    quaters:
    quaters管脚分配图
    实验箱仿真结果图例

    展开全文
  • VHDL七段译码器

    2013-12-11 16:38:17
    VHDL七段译码器,输入二进制代码,通过译码器,能够直接在数码管上显示
  • 用verilog语言写的七段译码器的实验,尽管代码挺简洁的,但用处很大,对学习数字逻辑电路的同学很有帮助。
  • Verilog HDL 组合逻辑电路的设计——BCD七段译码器
  • 7数码管的结构这张图上面是×××,下面是数码管。 b。首先说数码管,就是有7个LED组成,能显示0-9 10个数字。例如我要显示1,那么点亮b,c;若想显示0点亮a,b,c,d,e,f。见下示意图。 (这里注意上图中字母的...

    那么有了上面的卡诺图,我们来看看应用,同时把卡诺图的如何圈1的方法用两节的时间让大家掌握并能够灵活运用。

    1.准备知识:

    a。7段数码管的结构051433212.png这张图上面是×××,下面是数码管。

    b。首先说数码管,就是有7个LED组成,能显示0-9 10个数字。例如我要显示1,那么点亮b,c;若想显示0点亮a,b,c,d,e,f。见下示意图。

    (这里注意上图中字母的标注顺序,如果自己买到的数码管其顺序定义和这里的不一样,那么显示就会出错哦。)


    052827238.png

    c。图上面的×××就是我们要设计的东西。定义输入为D,输出为S。自然,下面的显示也是输出,所以我们标记发光二极管为Sa-Sg。输入线上画一个斜杠的代表多输入(multi-input),上面的数字代表确切的输入数,这里就是4或者表示为D3:0;同理输出可 以表示为S7:0等同于Sa,Sb,。。。Sg

    2.现在需求就是,我要用这个×××来使数码管能显示0-9个数字。这里所谓 ×××,就是要把输入以某种方式编码,然后通过 ××× 的输出得到我们编码之前的东西。那么我们现在还没有编码,怎么能解码呢。所以,现在开始编码。

    既然我要显示0-9个数,那么用2进制来表达10个数, 我用4bits足够,并且要求也是4位输入嘛~。编码方式采用 Gray Code(格雷码,还记得定义不)。

    3.有了以上准备,我们当然要画真值表咯,自己先动手试着画一下:

    052827873.png。如果不太熟悉Gray Code,看表里第一列:只要保证上下相邻的两个数每次只改变一位就是Gray Code的定义。这里我们定义(也就是编码 encode)输出显示0的输入是0000,输出1的输入时0001,。。。以此类推。最后一行的others就是出了上面的输入情况以外,数码管不亮。


    4.进入到求布尔表达式的阶段了

    现在如果用之前的定理化简是很麻烦的。所以我们就用K图咯。先画出上面真值表对应的K图,注意只给出Sa,Sb的两张图,一共有7张图(Sa-Sg),限于篇幅剩下的做练习:

    054344638.png。注意输入和上一节讲的相对比复杂了一点,毕竟是4位输入嘛。其中D1:0所对应的一列左边是第一位,右边是第0位;同理D3:2代表上面输入的序列中,左边为第3位,右边为第2位。呵呵,估计学过的人知道这里有个Endian(字节序)是大端还是小端的问题,不过我们先不在这里做讨论,因为影响不是很大。


    5.最重要的步骤,对以上两(七)张表画圈圈!!!

    规则:

    a。用最少的圈圈来覆盖所有的1,但是只有相邻的1才能被圈在一起

    b。1可以重复被圈

    c。如果1在表的水平或竖直边缘上,可以进行包裹(例如:见右下图~D2~D1所指的圈圈(包含0001和1001)并没有封闭而是回过头来要0包含000和1000)就是相当于把这个表复制一份拼接一下然后用规则a和b即可

    055957664.png

    6.给出小项的表达式,如上图底端和图中的表达式。这样我们就得到了Sa和Sb的布尔表达式。

    7.最后就是画出线路图咯。画出逻辑图就好咯。


    那么又到了大家做任务的时间:

    1.画出所有7个K图

    2.实现逻辑级别回路

    我会在下一节给出答案~。







    转载于:https://blog.51cto.com/physic/1306570

    展开全文
  • 现在放出上一部分的答案:1.先看K图设计(根据输入的顺序不同,可能和大家的设计有所不同): 注意一下这里如果输入超过九我们就规定输出0.这里由于篇幅原因,就不给出这个逻辑门级别的抽象设计设计了,下面将优化的...

    现在放出上一部分的答案:

    1.先看K图设计(根据输入的顺序不同,可能和大家的设计有所不同):




    061810512.png 061810380.png

    注意一下这里如果输入超过九我们就规定输出0.这里由于篇幅原因,就不给出这个逻辑门级别的抽象设计设计了,下面将优化的时候,放出优化后的线路图,大家可以照葫芦画瓢~。

    好了,那么马上我们进入优化吧。上面我说了,如果输入超过9,也就是人为的可以预知的让系统进入错误状态的话,我们可以引入一个新的状态,叫做 不在乎(Dont care)符号是 X。认真看过前几篇的人一定会问:发生短路(逻辑回路一般叫做竞争现象--contention的情况不也是X嘛?

    是的,所以要特别注意X出现的位置,如果在真值表中,我们就采用Dont Care!

    我们可以利用Dont Care来化简我们的K图,从而达到优化的目的。具体做法,大家想一下,很简单就是对上面的K图改变一点就可以咯。动过脑之后看下面答案吧:


    061810995.png061810718.png

    这里给出逻辑回路设计:






    061811450.png

    好了,这就是7段数码管的理论内容!有了这个你可以随心所欲的设计任意多输出和输入的×××咯~。下一节会引入另一个例子,就是优先权回路(Priority Circuit)。也是一个比较重要的理念。下一节再见~

    转载于:https://blog.51cto.com/physic/1307135

    展开全文
  • 七段译码器CD4511

    2009-09-30 08:52:30
    四线_七段锁存-驱动译码器的详细资料,PDF格式
  • 数电实验——七段译码器源代码(VHDL)
  • BCD-七段数码管显示译码器

    万次阅读 多人点赞 2015-10-18 14:28:45
    问题及解决 1.要好好看看工作原理。 2.文件名必须与VHDL文件中的设计实体名保持一致。...其次是理解代码含义,了解BCD-七段数码管显示译码器的作用,清楚共阴极,共阳极的差别。应该可以比较顺利完成任务。

    目的

    1. 进一步掌握VHDL语言的基本结构及设计的输入方法。

    2. 掌握BCD-七段显示译码器的设计思路;


    内容

     1. 使用拨码开关SW3、SW2、SW1、SW0作为四位二进制数据 D、C、 B、A的输入;

     2. 在最右边的数码管HEX0上显示输入的BCD码编码数值。


    原理

    七段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。 当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符。发光二极管的阳极连在一起的称为共阳极数码管,此时译码器的输出应该是低电平有效;阴极连在一起的称为共阴极数码管,此时译码器的输出应该是高电平有效。如图2-25所示。


    图2-25 七段数码管结构图


    74LS47是将四位二进制编码编码转化为十进制数码(BCD),并通过七段数码管显示出来的译码器/驱动器,其引脚图如图2-26所示。74LS47可以驱动共阳极的发光二极管七段LED显示字符。


    图2-26 74LS47引脚图

    74LS47 有自动前、后沿灭零控制(RBI 和 RBO)。试灯(LT)可在 BI/RBO 端处于高电平的任何时刻去进行,该电路还含有一个灭灯输入(BI),它用来控制灯的亮度或禁止输出。在输入0~15时,74LS47显示的字符如图2-27所示。功能表如表2-2所示。


    图2-27 74LS47显示字符


    表2-2 74LS47功能表

    DE2-115配有八个七段数码管。它们被分成两组,每组4个,用来作为数字显示用。DE2-115的七段数码管采用共阳极连接方式。FPGA输出低电平时,对应的字码段点亮,反之则熄灭。要注意的是:在DE2-115开发板上七段数码管的点是不可用的。


    操作

    1.创建一个Quartus II 工程,用来在DE2-115上实现预期电路。

    2.写出预期电路的VHDL代码。

    3.将VHDL文件包含进工程并编译。

    4.仿真电路来检测其功能。

    5.分配引脚。

    6.重新编译并将其下载进FPGA芯片中。

    7.通过DE2-115开发板来证实电路是否准确。


    程序

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    ENTITY BCD7 IS

    PORT ( Ain,Bin,Cin,Din: IN  STD_LOGIC; ----输入4BCD码 

    LT,RBI,BI:IN  STD_LOGIC;      

    a,b,c,d,e,f,g : OUT STD_LOGIC);      --7段码

    END BCD7;

     

    ARCHITECTURE ARCH  OF BCD7 IS

    SIGNAL Q: STD_LOGIC_VECTOR (3 DOWNTO 0);

    BEGIN

    Q<=Din&Cin&Bin&Ain;

    PROCESS(Q,LT,RBI,BI)   

    VARIABLE DOUT: STD_LOGIC_VECTOR (6 DOWNTO 0);

    BEGIN

    IF BI='0' THEN

    DOUT:="0000000";

    ELSIF RBI='1'THEN

    IF LT='1' THEN

    CASE Q IS

              WHEN "0001" => DOUT := "1111001";

              WHEN "0010" => DOUT := "0100100";

              WHEN "0011" => DOUT := "0110000";

              WHEN "0100" => DOUT := "0011001";

              WHEN "0101" => DOUT := "0010010";

              WHEN "0110" => DOUT := "0000010";

              WHEN "0111" => DOUT := "1111000";

              WHEN "1000" => DOUT := "0000000";

              WHEN "1001" => DOUT := "0011000";

              WHEN "1010" => DOUT := "0001000";

              WHEN "1011" => DOUT := "0000011";

              WHEN "1100" => DOUT := "1000110";

              WHEN "1101" => DOUT := "0100001";

              WHEN "1110" => DOUT := "0000110";

              WHEN "1111" => DOUT := "0001110";

              WHEN OTHERS => DOUT := "1000000";        

    END CASE;

    End if;

    End if;

    a<=DOUT(0);

    b<=DOUT(1);

    c<=DOUT(2);

    d<=DOUT(3);

    e<=DOUT(4);

    f<=DOUT(5);

    g<=DOUT(6);

    END PROCESS;

    END ARCH;


    结果



    问题及解决

    1.要好好看看工作原理。

    2.文件名必须与VHDL文件中的设计实体名保持一致。

    总结:我个人感觉操作的规范化比较重要,如果操作不规范不仅使操作步骤繁琐,也有可能带来错误。其次是理解代码含义,了解BCD-七段数码管显示译码器的作用,清楚共阴极,共阳极的差别。应该可以比较顺利完成任务。








    展开全文
  • BCD七段数码管译码器电路图 分段式显示器(LED数码管)由7条线段围成8型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种...
  • VHDL 七段显示译码器

    2020-07-11 18:13:21
    七段显示译码器VHDL语言的代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Entity seg7_4 is --工程名为seg7_4 PORT ( BCD_in : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --输入四位BCD码 SG_out : OUT STD_...
  • 仿真结果:
  • 半导体七段显示器的每一段光管都是一个发光二极管。其图示及译码器如下:
  • verilog——74HC4511七段显示译码器

    千次阅读 2020-06-03 12:41:47
    Verilog——74HC4511七段译码器 74HC4511的仿真 设计思路 采用行为级建模,根据74HC4511的功能表编程即可。 代码实现 设计模块 //filename:74HC4511.v module _74HC4511( input LE,BL,LT, input [3:0] D, output ...
  • 共阴极的七段显示译码器的代码

    千次阅读 2018-09-10 19:42:38
    module cy4(input LE,BL,LT,//输入端口声明 input D3,D2,D1,D0,//输入端口声明 output reg a,b,c,d,e,f,g//输出端口及变量的数据类型声明 ); always @(*) begin if(LT == 1) {a,b,c,d,e,f,g} = 7’b11...
  • “共阳极七段发光二极管的二-十进制译码器”建模与仿真,vivado2014.2工程,可直接使用,包含仿真,设计。
  • 七段LED数码管显示译码器设计

    千次阅读 2018-10-26 19:56:00
    包含按键输入并显示模块,输入为四位16进制信号,同步在led数码管显示,如果没有输入,则自动脉冲计数 module led(comscan,clr,k,kon,kc,o,comscanout); input clr,kon; input [3:0]k; input [3:0]kc;...
  • EDA 实验 七段数码显示译码器代码 verilog
  • 但为了简化过程,首先完成7BCD码译码器的设计。如图3-1作为7BCD码译码器,输出信号LED7S的7位分别接如图3-1数码管的7个,高位在左,低位在右。例如当LED7S输出为“1101101”时,数码管的7个:g、f、e、d、c...
  • CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器, 具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。
  • 7数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制的译码显示,最方便的方法就是...
  • 作为译码器的7448用来进行七段数码管的显示
  • 基本步骤1....2.创建元件:(1)在新工程中创建两个新文件,在File/save as更改文件名和文件地址,在virlog HDL文件中输入代码如下,此代码中包含一个2-4线译码器。(2).在左侧任务导航(project nav...
  • 原文:...本文件包含三个实体:分别是计数器counter4,译码器decoder,以及一个顶层实体HIERARCHIC,顶层文件里实现了计数器和译码器的结合。)源程序:LIBRARY IEEE; USE IE...
  • Verilog HDL 之 8-3 BCD七段显示译码器 一、原理  7段数码管是利用不同发光段组合的方式来显示不同的数码,为了试数码管能将数码所代表的数显示出来,必须将数码经译码器译出,然后经驱动器点亮对用的段。结构图...

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

七段译码器