这 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代码:
-- 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. 中比较器的模拟波形:

上面的仿真波形显示了比较器的正确操作。提出了其他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. 中的加密协处理器设计
推荐的 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. 中的加密协处理器设计
22。 VHDL. 代码用于FPGA上的Debouncing按钮
23。 交通灯控制器的VHDL码
24。 VHDL. 代码为简单的2位比较器
25。 用于单端口RAM的VHDL代码
26。 使用FSM的停车系统VHDL码
27。 VHDL. 编码VS软件编程
23。 交通灯控制器的VHDL码
24。 VHDL. 代码为简单的2位比较器
25。 用于单端口RAM的VHDL代码
26。 使用FSM的停车系统VHDL码
27。 VHDL. 编码VS软件编程
没意见:
发表评论