add solutions
This commit is contained in:
@ -0,0 +1,38 @@
|
||||
library ieee;
|
||||
use ieee.math_real.all;
|
||||
|
||||
ARCHITECTURE test OF DAC_tester IS
|
||||
|
||||
constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
|
||||
signal sClock: std_uLogic := '1';
|
||||
|
||||
signal sineFrequency: real := 20.0E3;
|
||||
signal tReal: real := 0.0;
|
||||
signal outAmplitude: real := 1.0;
|
||||
signal outReal: real := 0.0;
|
||||
signal outUnsigned: unsigned(parallelIn'range);
|
||||
|
||||
BEGIN
|
||||
------------------------------------------------------------------------------
|
||||
-- clock and reset
|
||||
sClock <= not sClock after clockPeriod/2;
|
||||
clock <= transport sClock after clockPeriod*9/10;
|
||||
reset <= '1', '0' after 2*clockPeriod;
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- time signals
|
||||
process(sClock)
|
||||
begin
|
||||
if rising_edge(sClock) then
|
||||
tReal <= tReal + 1.0/clockFrequency;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
outReal <= outAmplitude * ( sin(2.0*math_pi*sineFrequency*tReal) + 1.0) / 2.0;
|
||||
|
||||
outUnsigned <= to_unsigned(integer(outReal * real(2**(outUnsigned'length)-1)), outUnsigned'length);
|
||||
parallelIn <= outUnsigned;
|
||||
-- parallelIn <= shift_left(to_unsigned(1, parallelIn'length), parallelIn'length-1);
|
||||
-- parallelIn <= shift_left(to_unsigned(3, parallelIn'length), parallelIn'length-2);
|
||||
|
||||
END ARCHITECTURE test;
|
@ -0,0 +1,15 @@
|
||||
-- VHDL Entity DigitalToAnalogConverter_test.DAC_tb.symbol
|
||||
--
|
||||
-- Created:
|
||||
-- by - francois.francois (Aphelia)
|
||||
-- at - 13:05:57 02/19/19
|
||||
--
|
||||
-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
|
||||
--
|
||||
|
||||
|
||||
ENTITY DAC_tb IS
|
||||
-- Declarations
|
||||
|
||||
END DAC_tb ;
|
||||
|
@ -0,0 +1,122 @@
|
||||
--
|
||||
-- VHDL Architecture DigitalToAnalogConverter_test.DAC_tb.struct
|
||||
--
|
||||
-- Created:
|
||||
-- by - axel.amand.UNKNOWN (WE7860)
|
||||
-- at - 14:43:18 28.04.2023
|
||||
--
|
||||
-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
|
||||
--
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.all;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY DigitalToAnalogConverter;
|
||||
LIBRARY DigitalToAnalogConverter_test;
|
||||
LIBRARY WaveformGenerator;
|
||||
|
||||
ARCHITECTURE struct OF DAC_tb IS
|
||||
|
||||
-- Architecture declarations
|
||||
constant signalBitNb: positive := 16;
|
||||
constant lowpassShiftBitNb: positive := 8;
|
||||
constant clockFrequency: real := 60.0E6;
|
||||
--constant clockFrequency: real := 66.0E6;
|
||||
|
||||
-- Internal signal declarations
|
||||
SIGNAL clock : std_ulogic;
|
||||
SIGNAL lowpassIn : unsigned(signalBitNb-1 DOWNTO 0);
|
||||
SIGNAL lowpassOut : unsigned(signalBitNb-1 DOWNTO 0);
|
||||
SIGNAL parallelIn : unsigned(signalBitNb-1 DOWNTO 0);
|
||||
SIGNAL reset : std_ulogic;
|
||||
SIGNAL serialOut : std_ulogic;
|
||||
|
||||
|
||||
-- Component Declarations
|
||||
COMPONENT DAC
|
||||
GENERIC (
|
||||
signalBitNb : positive := 16
|
||||
);
|
||||
PORT (
|
||||
serialOut : OUT std_ulogic ;
|
||||
parallelIn : IN unsigned (signalBitNb-1 DOWNTO 0);
|
||||
clock : IN std_ulogic ;
|
||||
reset : IN std_ulogic
|
||||
);
|
||||
END COMPONENT;
|
||||
COMPONENT DAC_tester
|
||||
GENERIC (
|
||||
signalBitNb : positive := 16;
|
||||
clockFrequency : real := 60.0E6
|
||||
);
|
||||
PORT (
|
||||
lowpassOut : IN unsigned (signalBitNb-1 DOWNTO 0);
|
||||
serialOut : IN std_ulogic ;
|
||||
clock : OUT std_ulogic ;
|
||||
parallelIn : OUT unsigned (signalBitNb-1 DOWNTO 0);
|
||||
reset : OUT std_ulogic
|
||||
);
|
||||
END COMPONENT;
|
||||
COMPONENT lowpass
|
||||
GENERIC (
|
||||
signalBitNb : positive := 16;
|
||||
shiftBitNb : positive := 12
|
||||
);
|
||||
PORT (
|
||||
lowpassOut : OUT unsigned (signalBitNb-1 DOWNTO 0);
|
||||
clock : IN std_ulogic ;
|
||||
reset : IN std_ulogic ;
|
||||
lowpassIn : IN unsigned (signalBitNb-1 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
|
||||
-- Optional embedded configurations
|
||||
-- pragma synthesis_off
|
||||
FOR ALL : DAC USE ENTITY DigitalToAnalogConverter.DAC;
|
||||
FOR ALL : DAC_tester USE ENTITY DigitalToAnalogConverter_test.DAC_tester;
|
||||
FOR ALL : lowpass USE ENTITY WaveformGenerator.lowpass;
|
||||
-- pragma synthesis_on
|
||||
|
||||
|
||||
BEGIN
|
||||
-- Architecture concurrent statements
|
||||
-- HDL Embedded Text Block 1 eb1
|
||||
LowpassIn <= (others => serialOut);
|
||||
|
||||
|
||||
-- Instance port mappings.
|
||||
I_DUT : DAC
|
||||
GENERIC MAP (
|
||||
signalBitNb => signalBitNb
|
||||
)
|
||||
PORT MAP (
|
||||
serialOut => serialOut,
|
||||
parallelIn => parallelIn,
|
||||
clock => clock,
|
||||
reset => reset
|
||||
);
|
||||
I_tester : DAC_tester
|
||||
GENERIC MAP (
|
||||
signalBitNb => signalBitNb,
|
||||
clockFrequency => clockFrequency
|
||||
)
|
||||
PORT MAP (
|
||||
lowpassOut => lowpassOut,
|
||||
serialOut => serialOut,
|
||||
clock => clock,
|
||||
parallelIn => parallelIn,
|
||||
reset => reset
|
||||
);
|
||||
I_filt : lowpass
|
||||
GENERIC MAP (
|
||||
signalBitNb => signalBitNb,
|
||||
shiftBitNb => lowpassShiftBitNb
|
||||
)
|
||||
PORT MAP (
|
||||
lowpassOut => lowpassOut,
|
||||
clock => clock,
|
||||
reset => reset,
|
||||
lowpassIn => lowpassIn
|
||||
);
|
||||
|
||||
END struct;
|
@ -0,0 +1,29 @@
|
||||
-- VHDL Entity DigitalToAnalogConverter_test.DAC_tester.interface
|
||||
--
|
||||
-- Created:
|
||||
-- by - axel.amand.UNKNOWN (WE7860)
|
||||
-- at - 14:43:18 28.04.2023
|
||||
--
|
||||
-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
|
||||
--
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.all;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
ENTITY DAC_tester IS
|
||||
GENERIC(
|
||||
signalBitNb : positive := 16;
|
||||
clockFrequency : real := 60.0E6
|
||||
);
|
||||
PORT(
|
||||
lowpassOut : IN unsigned (signalBitNb-1 DOWNTO 0);
|
||||
serialOut : IN std_ulogic;
|
||||
clock : OUT std_ulogic;
|
||||
parallelIn : OUT unsigned (signalBitNb-1 DOWNTO 0);
|
||||
reset : OUT std_ulogic
|
||||
);
|
||||
|
||||
-- Declarations
|
||||
|
||||
END DAC_tester ;
|
||||
|
@ -0,0 +1 @@
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1 @@
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1 @@
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1 @@
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1,12 @@
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW symbol.sb
|
||||
NO_GRAPHIC 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 50,0 8 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 1,0 11 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 1,0 12 0
|
@ -0,0 +1,172 @@
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 142,0 9 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 12
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 0,0 17 2
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1,0 20 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 20
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 53,0 26 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1091,0 27 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1081,0 28 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 362,0 29 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 45,0 30 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 364,0 31 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 32
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 33
|
||||
LIBRARY DigitalToAnalogConverter
|
||||
DESIGN @d@a@c
|
||||
VIEW master@version
|
||||
GRAPHIC 1298,0 35 0
|
||||
DESIGN @d@a@c
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 14,0 36 1
|
||||
DESIGN @d@a@c
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 67,0 40 0
|
||||
DESIGN @d@a@c
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 57,0 41 0
|
||||
DESIGN @d@a@c
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 52,0 42 0
|
||||
DESIGN @d@a@c
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 76,0 43 0
|
||||
LIBRARY DigitalToAnalogConverter_test
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW test
|
||||
GRAPHIC 421,0 46 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 14,0 47 1
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1083,0 52 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 366,0 53 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 55,0 54 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 63,0 55 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 47,0 56 0
|
||||
LIBRARY WaveformGenerator
|
||||
DESIGN lowpass
|
||||
VIEW master@version
|
||||
GRAPHIC 1056,0 59 0
|
||||
DESIGN lowpass
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 14,0 60 1
|
||||
DESIGN lowpass
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 57,0 65 0
|
||||
DESIGN lowpass
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 52,0 66 0
|
||||
DESIGN lowpass
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 76,0 67 0
|
||||
DESIGN lowpass
|
||||
VIEW symbol.sb
|
||||
GRAPHIC 83,0 68 0
|
||||
LIBRARY DigitalToAnalogConverter_test
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 71
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1298,0 74 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 421,0 75 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1056,0 76 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 79
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1099,0 82 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 84
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 85
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1298,0 87 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1305,0 88 1
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 366,0 92 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 63,0 93 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 55,0 94 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 47,0 95 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 421,0 97 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 428,0 98 1
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1056,0 109 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1063,0 110 1
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1083,0 115 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1073,0 116 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1065,0 117 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
GRAPHIC 1093,0 118 0
|
||||
DESIGN @d@a@c_tb
|
||||
VIEW struct.bd
|
||||
NO_GRAPHIC 121
|
@ -0,0 +1,30 @@
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
NO_GRAPHIC 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 50,0 8 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 13,0 13 1
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 360,0 18 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 375,0 19 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 355,0 20 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 365,0 21 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 370,0 22 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 1,0 25 0
|
||||
DESIGN @d@a@c_tester
|
||||
VIEW interface
|
||||
GRAPHIC 1,0 26 0
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,3 @@
|
||||
DEFAULT_FILE atom @d@a@c_tb/struct.bd
|
||||
DEFAULT_ARCHITECTURE atom struct
|
||||
TOP_MARKER atom 1
|
@ -0,0 +1,2 @@
|
||||
DEFAULT_ARCHITECTURE atom test
|
||||
DEFAULT_FILE atom DAC_tester_test.vhd
|
Reference in New Issue
Block a user