Fix Scaling Offset
This commit is contained in:
parent
abe34fd0fc
commit
b6357a993e
@ -139,8 +139,10 @@ architecture arch of feedback_loop is
|
|||||||
--*****SIGNAL DECLARATION*****
|
--*****SIGNAL DECLARATION*****
|
||||||
signal delay_out : std_logic_vector(ADC_DATA_WIDTH downto 0) := (others => '0');
|
signal delay_out : std_logic_vector(ADC_DATA_WIDTH downto 0) := (others => '0');
|
||||||
signal latch_out : std_logic_vector(ADC_DATA_WIDTH-1 downto 0) := (others => '0');
|
signal latch_out : std_logic_vector(ADC_DATA_WIDTH-1 downto 0) := (others => '0');
|
||||||
signal scaler_out, addsub_out, inputA, inputB, scaler_offset : std_logic_vector(DAC_DATA_WIDTH-1 downto 0) := (others => '0');
|
signal addsub_out, inputA, inputB : std_logic_vector(DAC_DATA_WIDTH-1 downto 0) := (others => '0');
|
||||||
|
signal scaler_out, scaler_offset : std_logic_vector(DAC_DATA_WIDTH downto 0) := (others => '0');
|
||||||
signal scaler_done, addsub_done : std_logic := '0';
|
signal scaler_done, addsub_done : std_logic := '0';
|
||||||
|
signal offset_factor : std_logic_vector(FACTOR_WIDTH-1 downto 0) := (others => '0');
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
@ -179,6 +181,21 @@ begin
|
|||||||
data_out => delay_out
|
data_out => delay_out
|
||||||
);
|
);
|
||||||
|
|
||||||
|
addsub_offset_inst : addsub
|
||||||
|
generic map(
|
||||||
|
PIPELINE_STAGES => 1,
|
||||||
|
DATA_WIDTH => FACTOR_WIDTH
|
||||||
|
)
|
||||||
|
port map(
|
||||||
|
clk => clk,
|
||||||
|
reset => reset,
|
||||||
|
mode => '0',
|
||||||
|
cap => '0',
|
||||||
|
A => (FACTOR_WIDTH-1 => '1', others => '0'),
|
||||||
|
B => factor,
|
||||||
|
RES => offset_factor
|
||||||
|
);
|
||||||
|
|
||||||
--*****STAGE III*****
|
--*****STAGE III*****
|
||||||
scaler_A_inst : scaler
|
scaler_A_inst : scaler
|
||||||
generic map(
|
generic map(
|
||||||
@ -190,8 +207,7 @@ begin
|
|||||||
clk => clk,
|
clk => clk,
|
||||||
data_in => delay_out(ADC_DATA_WIDTH-1 downto 0),
|
data_in => delay_out(ADC_DATA_WIDTH-1 downto 0),
|
||||||
factor => factor,
|
factor => factor,
|
||||||
data_out(DAC_DATA_WIDTH) => open, --Truncate result
|
data_out => scaler_out
|
||||||
data_out(DAC_DATA_WIDTH-1 downto 0) => scaler_out
|
|
||||||
);
|
);
|
||||||
|
|
||||||
scaler_offset_inst : scaler
|
scaler_offset_inst : scaler
|
||||||
@ -203,9 +219,8 @@ begin
|
|||||||
port map(
|
port map(
|
||||||
clk => clk,
|
clk => clk,
|
||||||
data_in => (ADC_DATA_WIDTH-1 => '0', others => '1'),
|
data_in => (ADC_DATA_WIDTH-1 => '0', others => '1'),
|
||||||
factor => "0" & factor(FACTOR_WIDTH-2 downto 0),
|
factor => offset_factor,
|
||||||
data_out(DAC_DATA_WIDTH) => open, --Truncate result
|
data_out => scaler_offset
|
||||||
data_out(DAC_DATA_WIDTH-1 downto 0) => scaler_offset
|
|
||||||
);
|
);
|
||||||
|
|
||||||
process(clk)
|
process(clk)
|
||||||
@ -233,16 +248,17 @@ begin
|
|||||||
addsub_instB : addsub
|
addsub_instB : addsub
|
||||||
generic map(
|
generic map(
|
||||||
PIPELINE_STAGES => 0,
|
PIPELINE_STAGES => 0,
|
||||||
DATA_WIDTH => DAC_DATA_WIDTH
|
DATA_WIDTH => DAC_DATA_WIDTH+1
|
||||||
)
|
)
|
||||||
port map(
|
port map(
|
||||||
clk => clk,
|
clk => clk,
|
||||||
reset => reset,
|
reset => reset,
|
||||||
mode => '0',
|
mode => not factor(FACTOR_WIDTH-1),
|
||||||
cap => '0',
|
cap => '0',
|
||||||
A => scaler_out,
|
A => scaler_out,
|
||||||
B => scaler_offset,
|
B => scaler_offset,
|
||||||
RES => inputB
|
RES(DAC_DATA_WIDTH) => open, --Truncate Carry Bit
|
||||||
|
RES(DAC_DATA_WIDTH-1 downto 0) => inputB
|
||||||
);
|
);
|
||||||
|
|
||||||
--*****STAGE IV*****
|
--*****STAGE IV*****
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user