📄 fir.vhd
字号:
variable ac_tmp_10 : signed( 24 downto 0 );
variable ac_tmp_11 : signed( 24 downto 0 );
variable ac_tmp_12 : signed( 24 downto 0 );
variable ac_tmp_13 : signed( 24 downto 0 );
variable ac_tmp_14 : signed( 24 downto 0 );
variable ac_tmp_15 : signed( 24 downto 0 );
variable ac_tmp_2 : signed( 24 downto 0 );
variable ac_tmp_3 : signed( 24 downto 0 );
variable ac_tmp_4 : signed( 24 downto 0 );
variable ac_tmp_49 : signed( 24 downto 0 );
variable ac_tmp_5 : signed( 24 downto 0 );
variable ac_tmp_50 : signed( 24 downto 0 );
variable ac_tmp_6 : signed( 24 downto 0 );
variable ac_tmp_7 : signed( 24 downto 0 );
variable ac_tmp_8 : signed( 24 downto 0 );
variable ac_tmp_9 : signed( 24 downto 0 );
variable mtimes_001_accum_16 : signed( 28 downto 0 );
variable mtimes_001_prod1_1 : signed( 23 downto 0 );
variable mtimes_001_prod1_10 : signed( 23 downto 0 );
variable mtimes_001_prod1_11 : signed( 23 downto 0 );
variable mtimes_001_prod1_12 : signed( 23 downto 0 );
variable mtimes_001_prod1_13 : signed( 23 downto 0 );
variable mtimes_001_prod1_14 : signed( 23 downto 0 );
variable mtimes_001_prod1_15 : signed( 23 downto 0 );
variable mtimes_001_prod1_16 : signed( 23 downto 0 );
variable mtimes_001_prod1_2 : signed( 23 downto 0 );
variable mtimes_001_prod1_3 : signed( 23 downto 0 );
variable mtimes_001_prod1_4 : signed( 23 downto 0 );
variable mtimes_001_prod1_5 : signed( 23 downto 0 );
variable mtimes_001_prod1_6 : signed( 23 downto 0 );
variable mtimes_001_prod1_7 : signed( 23 downto 0 );
variable mtimes_001_prod1_8 : signed( 23 downto 0 );
variable mtimes_001_prod1_9 : signed( 23 downto 0 );
begin
mtimes_001_prod1_9 := "000000000000000000000000";
mtimes_001_prod1_8 := "000000000000000000000000";
mtimes_001_prod1_7 := "000000000000000000000000";
mtimes_001_prod1_6 := "000000000000000000000000";
mtimes_001_prod1_5 := "000000000000000000000000";
mtimes_001_prod1_4 := "000000000000000000000000";
mtimes_001_prod1_3 := "000000000000000000000000";
mtimes_001_prod1_2 := "000000000000000000000000";
mtimes_001_prod1_16 := "000000000000000000000000";
mtimes_001_prod1_15 := "000000000000000000000000";
mtimes_001_prod1_14 := "000000000000000000000000";
mtimes_001_prod1_13 := "000000000000000000000000";
mtimes_001_prod1_12 := "000000000000000000000000";
mtimes_001_prod1_11 := "000000000000000000000000";
mtimes_001_prod1_10 := "000000000000000000000000";
mtimes_001_prod1_1 := "000000000000000000000000";
mtimes_001_accum_16 := "00000000000000000000000000000";
ac_tmp_9 := "0000000000000000000000000";
ac_tmp_8 := "0000000000000000000000000";
ac_tmp_7 := "0000000000000000000000000";
ac_tmp_6 := "0000000000000000000000000";
ac_tmp_5 := "0000000000000000000000000";
ac_tmp_4 := "0000000000000000000000000";
ac_tmp_3 := "0000000000000000000000000";
ac_tmp_2 := "0000000000000000000000000";
ac_tmp_15 := "0000000000000000000000000";
ac_tmp_14 := "0000000000000000000000000";
ac_tmp_13 := "0000000000000000000000000";
ac_tmp_12 := "0000000000000000000000000";
ac_tmp_11 := "0000000000000000000000000";
ac_tmp_10 := "0000000000000000000000000";
ac_tmp_1 := "0000000000000000000000000";
ac_tmp_15 := ac_shared_multiply_0_result;
ac_tmp_49 := ac_tmp_15;
mtimes_001_prod1_1 := ac_tmp_49( 23 downto 0 );
ac_shared_adder_1_lhs := (mtimes_001_prod1_1(23) & (mtimes_001_prod1_1(23) & (mtimes_001_prod1_1(23) & (mtimes_001_prod1_1(23) & (mtimes_001_prod1_1(23) & mtimes_001_prod1_1)))));
ac_tmp_50 := ac_tmp_0;
mtimes_001_prod1_16 := ac_tmp_50( 23 downto 0 );
mtimes_001_accum_16 := (mtimes_001_prod1_16(23) & (mtimes_001_prod1_16(23) & (mtimes_001_prod1_16(23) & (mtimes_001_prod1_16(23) & (mtimes_001_prod1_16(23) & mtimes_001_prod1_16)))));
case fir_process_state is
when sm0_14 =>
ac_shared_adder_1_rhs := mtimes_001_accum_16;
when sm0_13 | sm0_12 | sm0_11 | sm0_10 | sm0_9 | sm0_8 | sm0_7 | sm0_6 | sm0_5 | sm0_4 | sm0_3 | sm0_2 | sm0_1 | sm0_0 =>
ac_shared_adder_1_rhs := mtimes_001_accum_regmerge_1;
when others =>
ac_shared_adder_1_rhs := "00000000000000000000000000000";
end case; --fir_process_state
ac_shared_adder_1_result <= (ac_shared_adder_1_lhs + ac_shared_adder_1_rhs);
end process ac_shared_adder_1_process_combinational_0;
fir_process_clocked:
process ( Clock ) is
variable ac_tmp_51 : signed( 28 downto 0 );
begin
if (rising_edge(Clock)) then
if ((Reset = '1')) then
ac_OutputAvail <= ('0');
ac_is_busy <= false;
ac_latch_indatabuf_1 <= "000000000000";
ac_scalar_tap_delay_0 <= "000000000000";
ac_scalar_tap_delay_1 <= "000000000000";
ac_scalar_tap_delay_10 <= "000000000000";
ac_scalar_tap_delay_11 <= "000000000000";
ac_scalar_tap_delay_12 <= "000000000000";
ac_scalar_tap_delay_13 <= "000000000000";
ac_scalar_tap_delay_14 <= "000000000000";
ac_scalar_tap_delay_15 <= "000000000000";
ac_scalar_tap_delay_2 <= "000000000000";
ac_scalar_tap_delay_3 <= "000000000000";
ac_scalar_tap_delay_4 <= "000000000000";
ac_scalar_tap_delay_5 <= "000000000000";
ac_scalar_tap_delay_6 <= "000000000000";
ac_scalar_tap_delay_7 <= "000000000000";
ac_scalar_tap_delay_8 <= "000000000000";
ac_scalar_tap_delay_9 <= "000000000000";
ac_tmp_0 <= "0000000000000000000000000";
mtimes_001_accum_regmerge_1 <= "00000000000000000000000000000";
outdatabuf <= "00000000000000000000000000";
fir_process_state <= sm0_15;
else
case fir_process_state is
when sm0_15 =>
if (proceed_var) then
ac_latch_indatabuf_1 <= indatabuf;
ac_tmp_0 <= ac_shared_multiply_0_result;
fir_process_state <= sm0_14;
ac_OutputAvail <= '0';
ac_is_busy <= true;
else
ac_OutputAvail <= '0';
end if;
when sm0_14 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_13;
when sm0_13 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_12;
when sm0_12 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_11;
when sm0_11 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_10;
when sm0_10 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_9;
when sm0_9 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_8;
when sm0_8 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_7;
when sm0_7 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_6;
when sm0_6 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_5;
when sm0_5 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_4;
when sm0_4 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_3;
when sm0_3 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_2;
when sm0_2 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_1;
when sm0_1 =>
mtimes_001_accum_regmerge_1 <= ac_shared_adder_1_result;
fir_process_state <= sm0_0;
when sm0_0 =>
ac_tmp_51 := ac_shared_adder_1_result;
outdatabuf <= ac_tmp_51( 25 downto 0 );
ac_scalar_tap_delay_0 <= ac_scalar_tap_delay_1;
ac_scalar_tap_delay_1 <= ac_scalar_tap_delay_2;
ac_scalar_tap_delay_2 <= ac_scalar_tap_delay_3;
ac_scalar_tap_delay_3 <= ac_scalar_tap_delay_4;
ac_scalar_tap_delay_4 <= ac_scalar_tap_delay_5;
ac_scalar_tap_delay_5 <= ac_scalar_tap_delay_6;
ac_scalar_tap_delay_6 <= ac_scalar_tap_delay_7;
ac_scalar_tap_delay_7 <= ac_scalar_tap_delay_8;
ac_scalar_tap_delay_8 <= ac_scalar_tap_delay_9;
ac_scalar_tap_delay_9 <= ac_scalar_tap_delay_10;
ac_scalar_tap_delay_10 <= ac_scalar_tap_delay_11;
ac_scalar_tap_delay_11 <= ac_scalar_tap_delay_12;
ac_scalar_tap_delay_12 <= ac_scalar_tap_delay_13;
ac_scalar_tap_delay_13 <= ac_scalar_tap_delay_14;
ac_scalar_tap_delay_14 <= ac_scalar_tap_delay_15;
ac_scalar_tap_delay_15 <= ac_latch_indatabuf_1;
fir_process_state <= sm0_15;
ac_OutputAvail <= '1';
ac_is_busy <= false;
end case; --fir_process_state
end if;
end if;
end process fir_process_clocked;
end RTL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -