• vhdl元件例化语句


    在vhdl设计中常常将常用、典型的功能实体放在同一个目录下面,在设计复杂的电路的时候使用这些已经设计好的实例,这样就使设计变得简单了。

       

    关键字:component

       

    8位加法器,使用两个四位加法器实现。

    四位加法器实现为adder4.vhd:

    ----------------------------------------------------------

    -- 4 bits adder

    -- xiaoyang@2011.4.14

    ----------------------------------------------------------

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_unsigned.all;

       

    entity adder4 is

    port(

    cin:in std_logic;

    a:in std_logic_vector(3 downto 0);

    b:in std_logic_vector(3 downto 0);

    sum:out std_logic_vector(3 downto 0);

    cout:out std_logic

    );

    end adder4;

       

    architecture behav of adder4 is

    signal sint:std_logic_vector(4 downto 0);

    signal aa,bb:std_logic_vector(4 downto 0);

    begin

    --位连接--

    aa<='0' & a(3 downto 0);

    bb<='0' & b(3 downto 0);

    sint<=aa+bb+cin;

       

    sum(3 downto 0)<=sint(3 downto 0);

    cout<=sint(4);

    end behav;

       

    模拟仿真波形如下图所示,仿真了5个加法计算:

    1+1

    0+0

    3+6

    1110(B) +1111(B)= (1)1101(B)产生进位count=1

    4+1

       

    八位加法器实现为adder8.vhd

    测试数据加法有两个:

    ----------------------------------------------------------

    -- 4 bits adder

    -- xiaoyang@2011.4.14

    ----------------------------------------------------------

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_unsigned.all;

       

    entity adder8 is

    port(

    cin:in std_logic;

    a:in std_logic_vector(7 downto 0);

    b:in std_logic_vector(7 downto 0);

    sum:out std_logic_vector(7 downto 0);

    cout:out std_logic

    );

    end adder8;

       

    architecture behav of adder8 is

    --添加组件和声明--

    component adder4

    port(

    cin:in std_logic;

    a:in std_logic_vector(3 downto 0);

    b:in std_logic_vector(3 downto 0);

    sum:out std_logic_vector(3 downto 0);

    cout:out std_logic

    );

    end component;

       

    signal carry_out:std_logic;

    begin

    u1:adder4 port map(cin=>cin,a=>a(3 downto 0),b=>b(3 downto 0),sum=>sum(3 downto 0),cout=>carry_out);

    u2:adder4 port map(cin=>carry_out,a=>a(7 downto 4),b=>b(7 downto 4),sum=>sum(7 downto 4),cout=>cout);

    end behav;

       

    其一是0xe2 + 0xc7 = oxa9进一位cout=1

    其二是0x80+0x08 +进位= 0x88有进位故为0x89

       

    测试结果:

  • 相关阅读:
    Android基础之项目结构分析
    串口调试,提示the given port name does not start with COM/com异常解决办法,,发现是打印机在搞怪
    C# 通过URL获取图片并显示在PictureBox上的方法
    学习资料集合
    C#语音朗读文本 — TTS的实现
    SQL SERVER 2008安装错误(is not a valid login or you do have permission)
    函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
    SerialPort使用
    Javascript函数的几种写法
    JS验证图片格式和大小并预览
  • 原文地址:https://www.cnblogs.com/yixiaoyang/p/2015845.html
Copyright © 2020-2023  润新知