比较器的VHDL代码

VHDL项目 为Verilog设计和实现的比较器提供了一个简单的VHDL代码 。 满的 VHDL. 提供了与比较器的测试台一起的代码。

设计的设计 比较器 基于真相表和K-MAP已经呈现 这里 。有两个2位输入A和B待比较。三个输出信号是a_less_b(1如果a<b,else 0),a_equal_b(1如果a = b,else 0)和a_greater_b(如果a>b,else 0)。从K-MAP表获得的最小化表达式用于输出的用于比较器的VHDL编码。

 比较器的VHDL代码

比较器的VHDL代码:

-- fpga4student.com: FPGA projects, Verilog projects,  VHDL项目  
-- VHDL project:  比较器的VHDL代码  
-- A comparator with 2 2-bit input A and B, and three outputs 
-- A less than B, A equal B, and A greater than B
-- The comparator is designed by using truth table, K-Map. 
-- The final output expressions are used for VHDL coding
library IEEE;
use IEEE.std_logic_1164.all;
entity  比较器 _VHDL is
port (
 A,B: in std_logic_vector(1 downto 0); -- two inputs for comparison
 A_less_B: out std_logic; -- '1' if A < B else '0'
 A_equal_B: out std_logic;-- '1' if A = B else '0'
 A_greater_B: out std_logic-- '1' if A > B else '0'
 );
end  比较器 _VHDL;
architecture  比较器 _structural of  比较器 _VHDL is
signal tmp1,tmp2,tmp3,tmp4,tmp5, tmp6, tmp7, tmp8: std_logic; 
-- temporary signals 
begin
 -- A_equal_B combinational logic circuit
 tmp1 <= A(1) xnor B(1);
 tmp2 <= A(0) xnor B(0);
 A_equal_B <= tmp1 and tmp2;
 -- A_less_B combinational logic circuit
 tmp3 <= (not A(0)) and (not A(1)) and B(0);
 tmp4 <= (not A(1)) and B(1);
 tmp5 <= (not A(0)) and B(1) and B(0);
 A_less_B <= tmp3 or tmp4 or tmp5;
 -- A_greater_B combinational logic circuit
 tmp6 <= (not B(0)) and (not B(1)) and A(0);
 tmp7 <= (not B(1)) and A(1);
 tmp8 <= (not B(0)) and A(1) and A(0);
 A_greater_B <= tmp6 or tmp7 or tmp8;
end  比较器 _structural;

比较器的VHDL测试台代码:

-- fpga4student.com: FPGA projects, Verilog projects,  VHDL项目  
-- VHDL project:  比较器的VHDL代码  
-- Testbench VHDL code for comparator
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
use ieee.numeric_std.all; 
ENTITY tb_comparator_VHDL IS
END tb_comparator_VHDL;
 
ARCHITECTURE behavior OF tb_comparator_VHDL IS 
 
    -- Component Declaration for the comparator in VHDL
 
    COMPONENT  比较器 _VHDL
    PORT(
         A : IN  std_logic_vector(1 downto 0);
         B : IN  std_logic_vector(1 downto 0);
         A_less_B : OUT  std_logic;
         A_equal_B : OUT  std_logic;
         A_greater_B : OUT  std_logic
        );
    END COMPONENT;
   --Inputs
   signal A : std_logic_vector(1 downto 0) := (others => '0');
   signal B : std_logic_vector(1 downto 0) := (others => '0');
  --Outputs
   signal A_less_B : std_logic;
   signal A_equal_B : std_logic;
   signal A_greater_B : std_logic;
BEGIN
 
 -- Instantiate the comparator in VHDL
   uut: comparator_VHDL PORT MAP (
          A => A,
          B => B,
          A_less_B => A_less_B,
          A_equal_B => A_equal_B,
          A_greater_B => A_greater_B
        );

   -- Stimulus process
   stim_proc: process
   begin 
  -- create test cases for A_less_B
  for i in 0 to 3 loop 
           A <= std_logic_vector(to_unsigned(i,2));  
           B <= std_logic_vector(to_unsigned(i+1,2));  
           wait for 20 ns; 
      end loop;
  -- create test cases for A_greater_B
   for i in 0 to 3 loop 
           A <= std_logic_vector(to_unsigned(i+1,2));  
           B <= std_logic_vector(to_unsigned(i,2));  
           wait for 20 ns; 
      end loop;
  -- create test cases for A_equal_B
  for i in 0 to 3 loop 
           A <= std_logic_vector(to_unsigned(i,2));  
           B <= std_logic_vector(to_unsigned(i,2));   
           wait for 20 ns; 
      end loop;
      wait;
   end process;

END;

VHDL. 中比较器的模拟波形:

 比较器的VHDL代码
上面的仿真波形显示了比较器的正确操作。提出了其他8位比较器设计的VHDL中 这里 .
推荐的   VHDL项目 :
1. 什么是FPGA? VHDL如何在FPGA上使用
2.  FIFO内存的VHDL代码
3.  FIR筛选器的VHDL代码
4. 8位微控制器的VHDL代码
5. 矩阵乘法的VHDL代码
6. 用于开关尾圈计数器的VHDL代码
7. FPGA上数字闹钟的VHDL代码
8. 8位比较器的VHDL代码
9. 如何使用VHDL将文本文件加载到FPGA中
10。   D触发器的VHDL代码
11.   完整加法器的VHDL代码
12.   VHDL. 中的PWM发生器,具有可变占空比
13。   ALU的VHDL代码
14。   VHDL. 代码用于测试台的计数器
15.   16位ALU的VHDL代码
16。   vhdl的变速器设计
17。  非线性 VHDL中查找表实现
18。   VHDL. 中的加密协处理器设计
 FPGA Verilog VHDL课程

没意见:

发表评论

趋势FPGA项目