⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cordic_add_rtl.vhd

📁 这是实现cordic算法的一些源程序
💻 VHD
字号:
--
-- VHDL Architecture HDesign_lib.cordic_add.rtl
--
-- Created:
--          by - gening.UNKNOWN (APWORKS)
--          at - 16:44:24 2006-03-23
--
-- using Mentor Graphics HDL Designer(TM) 2005.2 (Build 37)
--
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;

ENTITY cordic_add IS
   PORT( 
      a   : IN     std_logic;                        -- addend a
      b   : IN     std_logic;                        -- addend b
      op  : IN     std_logic_vector ( 1 DOWNTO 0 );  -- operation, 11-Add,10-Subtract,01-Synchronous Reset,00-Idle
      sum : OUT    std_logic;                        -- sum of a,b,carry
      clk : IN     std_logic                         -- Clock, using rising_edge
   );

-- Declarations

END cordic_add ;

--

ARCHITECTURE rtl OF cordic_add IS
signal carry : std_logic;
BEGIN
  main_prc: process(clk)
  variable result : std_logic_vector(1 downto 0);
  begin
    if rising_edge(clk) then
      case op is
      when "11" =>  --Add 
        result := ('0'& a) +  ('0'&b) + ('0'&carry);               
      when "10" =>  --Sub  
        result := ('0'&a) -  ('0'&b) - ('0'&carry);	                
      when "01" =>  --reset, clear carry
        result :="00";
      when "00" =>  --idle, keep unchanged
        result := carry  & a;
      when others => null;
      end case; 
      carry<=result(1);
      sum<=result(0);      
    end if;
  end process main_prc;
END ARCHITECTURE rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -