📄 intigrator_fe.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_SIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
LIBRARY LPM;
USE LPM.LPM_COMPONENTS.ALL;
ENTITY INTIGRATOR_FE IS
PORT(
RESET: IN STD_LOGIC;
CLK: IN STD_LOGIC;
COS: IN SIGNED(7 DOWNTO 0);
SIN: IN SIGNED(7 DOWNTO 0);
COSOUT: OUT SIGNED(15 DOWNTO 0);
SINOUT: OUT SIGNED(15 DOWNTO 0);
AVRCLK: OUT STD_LOGIC
);
END INTIGRATOR_FE;
ARCHITECTURE FE_ARCH OF INTIGRATOR_FE IS
SIGNAL COSA: SIGNED(15 DOWNTO 0);
SIGNAL SINA: SIGNED(15 DOWNTO 0);
--SIGNAL COSB: SIGNED(15 DOWNTO 0);
--SIGNAL SINB: SIGNED(15 DOWNTO 0);
SIGNAL CYCLE: INTEGER RANGE 0 TO 255;
SIGNAL CV: STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
CV <= CONV_STD_LOGIC_VECTOR(CYCLE,8);
AVRCLK <= CV(7);
PROCESS(RESET,CLK)
BEGIN
IF RESET = '0' THEN
CYCLE <= 0;
COSA <= (OTHERS => '0');
SINA <= (OTHERS => '0');
-- COSB <= (OTHERS => '0');
-- SINB <= (OTHERS => '0');
ELSE
IF CLK'EVENT AND CLK = '1' THEN
IF CYCLE = 255 THEN
CYCLE <= 0;
COSA <= (OTHERS=>'0'); --COSB + (COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS);
-- COSB <= (OTHERS => '0');
SINA <= (OTHERS=>'0'); --SINB + (SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN);
-- SINB <= (OTHERS => '0');
COSOUT <= COSA + (COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS);
SINOUT <= SINA + (SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN);
ELSE
CYCLE <= CYCLE + 1;
-- COSB <= COSA;
COSA <= COSA + (COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS(7)&COS);
-- SINB <= SINA;
SINA <= SINA + (SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN(7)&SIN);
END IF;
END IF;
END IF;
END PROCESS;
END FE_ARCH;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -