zoukankan      html  css  js  c++  java
  • 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

       

    测试结果:

  • 相关阅读:
    AVL树
    快速排序
    基数排序LSD_Radix_Sort
    归并排序
    JDBC连接池与工具类
    cookie的基础以及小案例
    javase基础4
    tomcat的request和response小案例
    javase基础3
    Servlet以及一个简单的登录案例
  • 原文地址:https://www.cnblogs.com/yixiaoyang/p/2015845.html
Copyright © 2011-2022 走看看