带进位加法器之VHDL描述

来源:本站
导读:目前正在解读《带进位加法器之VHDL描述》的相关信息,《带进位加法器之VHDL描述》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《带进位加法器之VHDL描述》的详细说明。
简介:学过VHDL的人都知道,VHDL是提供了操作符“+”,而且在很多情况下,我们是可以直接用这个加操作符的。但是,VHDL提供的加法操作只能给出 “和”,却无法给出“进位”。

学过VHDL的人都知道,VHDL是提供了操作符“+”,而且在很多情况下,我们是可以直接用这个加操作符的。但是,VHDL提供的加法操作只能给出 “和”,却无法给出“进位”。例如我们在设计计数器的时候经常用到的加1操作,对于一个8位的计数器,当计数器的结果为0xff时,如果在加1就为 0x00。实际上,结果应该时0x100,而最高位的1就是进位,我们无法利用。而我们的实际设计中,不仅要用“和”,有时还要用到两个数相加的进位。所以有必要用VHDL来描述一个带进位的加法器,下面的代码可以完成这样的功能。加法器实际上完全可以由组合逻辑实现,但在频率较高的场合下工作时,容易产生毛刺。所以整个加法器设计成时序电路的形式,所有的加操作都是时钟的上升沿触发的。

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

-- Engineer: skycanny

-- Module Name: fulladder - Behavioral

-- Tool versions: ISE 7.1

-- Description: This module is designed to discribe a full adder with carry

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

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity fulladder is

port(

reset : in std_logic;

clk : in std_logic;

operand1: in std_logic_vector(7 downto 0);

operand2: in std_logic_vector(7 downto 0);

carry : out std_logic;

sum : out std_logic_vector(7 downto 0)

);

end fulladder;

architecture Behavioral of fulladder is

begin

process(reset,clk)

variable sum_t : std_logic_vector(7 downto 0);

variable carry_t: std_logic;

begin

if(reset = '0') then

carry <= '0';

sum <= (others => '0');

elsif(rising_edge(clk)) then

carry_t := '0';

for i in 0 to 7 loop

sum_t(i) := operand1(i) xor operand2(i) xor carry_t;

carry_t := (operand1(i) and operand2(i)) or (carry_t and (operand1(i) or operand2(i)));

end loop;

carry <= carry_t;

sum <= sum_t;

end if;

end process;

end Behavioral;

通过对上述代码的综合(XST),布局布线和后仿真,可以发现整个加法器是可以正常工作的。也没有毛刺的现象,避免了逻辑电路设计中最忌讳的一点。仿真时钟是100mhz。

整个设计过程是这样的:首先写出一位全加器的真值表,根据真值表画出卡诺图,化简卡诺图,写出了sum和carry的逻辑表达式。然后根据逻辑表达式写出上面的RTL级的代码。可见基础的数电知识还是很重要的。估计现在很少有人卡诺图了吧。

提醒:《带进位加法器之VHDL描述》最后刷新时间 2024-03-14 01:16:10,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《带进位加法器之VHDL描述》该内容的真实性请自行鉴别。