-- ------------------------------------------------------------------------- -- High Level Design Compiler for Intel(R) FPGAs Version 18.1 (Release Build #625) -- Quartus Prime development tool and MATLAB/Simulink Interface -- -- Legal Notice: Copyright 2018 Intel Corporation. All rights reserved. -- Your use of Intel Corporation's design tools, logic functions and other -- software and tools, and its AMPP partner logic functions, and any output -- files any of the foregoing (including device programming or simulation -- files), and any associated documentation or information are expressly -- subject to the terms and conditions of the Intel FPGA Software License -- Agreement, Intel MegaCore Function License Agreement, or other applicable -- license agreement, including, without limitation, that your use is for -- the sole purpose of programming logic devices manufactured by Intel -- and sold by Intel or its authorized distributors. Please refer to the -- applicable agreement for further details. -- --------------------------------------------------------------------------- -- VHDL created from tx_ciccomp_rtl_core -- VHDL created on Wed Mar 31 21:11:14 2021 library IEEE; use IEEE.std_logic_1164.all; use IEEE.NUMERIC_STD.all; use IEEE.MATH_REAL.all; use std.TextIO.all; use work.dspba_library_package.all; LIBRARY altera_mf; USE altera_mf.altera_mf_components.all; LIBRARY lpm; USE lpm.lpm_components.all; entity tx_ciccomp_rtl_core is port ( xIn_v : in std_logic_vector(0 downto 0); -- sfix1 xIn_c : in std_logic_vector(7 downto 0); -- sfix8 xIn_0 : in std_logic_vector(15 downto 0); -- sfix16 xOut_v : out std_logic_vector(0 downto 0); -- ufix1 xOut_c : out std_logic_vector(7 downto 0); -- ufix8 xOut_0 : out std_logic_vector(29 downto 0); -- sfix30 clk : in std_logic; areset : in std_logic ); end tx_ciccomp_rtl_core; architecture normal of tx_ciccomp_rtl_core is attribute altera_attribute : string; attribute altera_attribute of normal : architecture is "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007"; signal GND_q : STD_LOGIC_VECTOR (0 downto 0); signal VCC_q : STD_LOGIC_VECTOR (0 downto 0); signal d_xIn_0_13_q : STD_LOGIC_VECTOR (15 downto 0); signal d_in0_m0_wi0_wo0_assign_id1_q_13_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_run_count : STD_LOGIC_VECTOR (1 downto 0); signal u0_m0_wo0_run_preEnaQ : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_run_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_run_out : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_run_enableQ : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_run_ctrl : STD_LOGIC_VECTOR (2 downto 0); signal u0_m0_wo0_memread_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_compute_q : STD_LOGIC_VECTOR (0 downto 0); signal d_u0_m0_wo0_compute_q_14_q : STD_LOGIC_VECTOR (0 downto 0); signal d_u0_m0_wo0_compute_q_15_q : STD_LOGIC_VECTOR (0 downto 0); signal d_u0_m0_wo0_compute_q_16_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_wi0_r0_ra0_count0_inner_q : STD_LOGIC_VECTOR (6 downto 0); signal u0_m0_wo0_wi0_r0_ra0_count0_inner_i : SIGNED (6 downto 0); attribute preserve : boolean; attribute preserve of u0_m0_wo0_wi0_r0_ra0_count0_inner_i : signal is true; signal u0_m0_wo0_wi0_r0_ra0_count0_q : STD_LOGIC_VECTOR (6 downto 0); signal u0_m0_wo0_wi0_r0_ra0_count0_i : UNSIGNED (5 downto 0); attribute preserve of u0_m0_wo0_wi0_r0_ra0_count0_i : signal is true; signal u0_m0_wo0_wi0_r0_ra0_count1_q : STD_LOGIC_VECTOR (6 downto 0); signal u0_m0_wo0_wi0_r0_ra0_count1_i : UNSIGNED (5 downto 0); attribute preserve of u0_m0_wo0_wi0_r0_ra0_count1_i : signal is true; signal u0_m0_wo0_wi0_r0_ra0_add_0_0_a : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_wi0_r0_ra0_add_0_0_b : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_wi0_r0_ra0_add_0_0_o : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_wi0_r0_ra0_add_0_0_q : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_wi0_r0_wa0_q : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_wi0_r0_wa0_i : UNSIGNED (5 downto 0); attribute preserve of u0_m0_wo0_wi0_r0_wa0_i : signal is true; signal u0_m0_wo0_wi0_r0_memr0_reset0 : std_logic; signal u0_m0_wo0_wi0_r0_memr0_ia : STD_LOGIC_VECTOR (15 downto 0); signal u0_m0_wo0_wi0_r0_memr0_aa : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_wi0_r0_memr0_ab : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_wi0_r0_memr0_iq : STD_LOGIC_VECTOR (15 downto 0); signal u0_m0_wo0_wi0_r0_memr0_q : STD_LOGIC_VECTOR (15 downto 0); signal u0_m0_wo0_ca0_q : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_ca0_i : UNSIGNED (5 downto 0); attribute preserve of u0_m0_wo0_ca0_i : signal is true; signal u0_m0_wo0_cm0_q : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_mtree_mult1_0_a0 : STD_LOGIC_VECTOR (7 downto 0); signal u0_m0_wo0_mtree_mult1_0_b0 : STD_LOGIC_VECTOR (15 downto 0); signal u0_m0_wo0_mtree_mult1_0_s1 : STD_LOGIC_VECTOR (23 downto 0); signal u0_m0_wo0_mtree_mult1_0_reset : std_logic; signal u0_m0_wo0_mtree_mult1_0_q : STD_LOGIC_VECTOR (23 downto 0); signal d_u0_m0_wo0_mtree_mult1_0_q_16_q : STD_LOGIC_VECTOR (23 downto 0); signal u0_m0_wo0_aseq_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_aseq_eq : std_logic; signal d_u0_m0_wo0_aseq_q_16_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_oseq_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_oseq_eq : std_logic; signal u0_m0_wo0_oseq_gated_reg_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_accum_p1_of_2_a : STD_LOGIC_VECTOR (20 downto 0); signal u0_m0_wo0_accum_p1_of_2_b : STD_LOGIC_VECTOR (20 downto 0); signal u0_m0_wo0_accum_p1_of_2_i : STD_LOGIC_VECTOR (20 downto 0); signal u0_m0_wo0_accum_p1_of_2_o : STD_LOGIC_VECTOR (20 downto 0); signal u0_m0_wo0_accum_p1_of_2_c : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_accum_p1_of_2_q : STD_LOGIC_VECTOR (19 downto 0); signal d_u0_m0_wo0_accum_p1_of_2_q_17_q : STD_LOGIC_VECTOR (19 downto 0); signal u0_m0_wo0_accum_p2_of_2_a : STD_LOGIC_VECTOR (11 downto 0); signal u0_m0_wo0_accum_p2_of_2_b : STD_LOGIC_VECTOR (11 downto 0); signal u0_m0_wo0_accum_p2_of_2_i : STD_LOGIC_VECTOR (11 downto 0); signal u0_m0_wo0_accum_p2_of_2_o : STD_LOGIC_VECTOR (11 downto 0); signal u0_m0_wo0_accum_p2_of_2_cin : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_accum_p2_of_2_q : STD_LOGIC_VECTOR (9 downto 0); signal u0_m0_wo0_wi0_r0_ra0_count0_run_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_oseq_gated_q : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_wi0_r0_ra0_resize_in : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_wi0_r0_ra0_resize_b : STD_LOGIC_VECTOR (5 downto 0); signal u0_m0_wo0_accum_BitSelect_for_a_tessel0_0_b : STD_LOGIC_VECTOR (19 downto 0); signal u0_m0_wo0_accum_BitSelect_for_a_tessel1_0_b : STD_LOGIC_VECTOR (3 downto 0); signal u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b : STD_LOGIC_VECTOR (0 downto 0); signal u0_m0_wo0_accum_BitJoin_for_q_q : STD_LOGIC_VECTOR (29 downto 0); signal u0_m0_wo0_accum_BitSelect_for_a_BitJoin_for_c_q : STD_LOGIC_VECTOR (9 downto 0); begin -- VCC(CONSTANT,1)@0 VCC_q <= "1"; -- u0_m0_wo0_run(ENABLEGENERATOR,13)@10 + 2 u0_m0_wo0_run_ctrl <= u0_m0_wo0_run_out & xIn_v & u0_m0_wo0_run_enableQ; u0_m0_wo0_run_clkproc: PROCESS (clk, areset) variable u0_m0_wo0_run_enable_c : SIGNED(6 downto 0); variable u0_m0_wo0_run_inc : SIGNED(1 downto 0); BEGIN IF (areset = '1') THEN u0_m0_wo0_run_q <= "0"; u0_m0_wo0_run_enable_c := TO_SIGNED(62, 7); u0_m0_wo0_run_enableQ <= "0"; u0_m0_wo0_run_count <= "00"; u0_m0_wo0_run_inc := (others => '0'); ELSIF (clk'EVENT AND clk = '1') THEN IF (u0_m0_wo0_run_out = "1") THEN IF (u0_m0_wo0_run_enable_c(6) = '1') THEN u0_m0_wo0_run_enable_c := u0_m0_wo0_run_enable_c - (-63); ELSE u0_m0_wo0_run_enable_c := u0_m0_wo0_run_enable_c + (-1); END IF; u0_m0_wo0_run_enableQ <= STD_LOGIC_VECTOR(u0_m0_wo0_run_enable_c(6 downto 6)); ELSE u0_m0_wo0_run_enableQ <= "0"; END IF; CASE (u0_m0_wo0_run_ctrl) IS WHEN "000" | "001" => u0_m0_wo0_run_inc := "00"; WHEN "010" | "011" => u0_m0_wo0_run_inc := "11"; WHEN "100" => u0_m0_wo0_run_inc := "00"; WHEN "101" => u0_m0_wo0_run_inc := "01"; WHEN "110" => u0_m0_wo0_run_inc := "11"; WHEN "111" => u0_m0_wo0_run_inc := "00"; WHEN OTHERS => END CASE; u0_m0_wo0_run_count <= STD_LOGIC_VECTOR(SIGNED(u0_m0_wo0_run_count) + SIGNED(u0_m0_wo0_run_inc)); u0_m0_wo0_run_q <= u0_m0_wo0_run_out; END IF; END PROCESS; u0_m0_wo0_run_preEnaQ <= u0_m0_wo0_run_count(1 downto 1); u0_m0_wo0_run_out <= u0_m0_wo0_run_preEnaQ and VCC_q; -- u0_m0_wo0_memread(DELAY,14)@12 u0_m0_wo0_memread : dspba_delay GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_run_q, xout => u0_m0_wo0_memread_q, clk => clk, aclr => areset ); -- u0_m0_wo0_compute(DELAY,16)@12 u0_m0_wo0_compute : dspba_delay GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_memread_q, xout => u0_m0_wo0_compute_q, clk => clk, aclr => areset ); -- d_u0_m0_wo0_compute_q_14(DELAY,81)@12 + 2 d_u0_m0_wo0_compute_q_14 : dspba_delay GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_compute_q, xout => d_u0_m0_wo0_compute_q_14_q, clk => clk, aclr => areset ); -- u0_m0_wo0_aseq(SEQUENCE,33)@14 + 1 u0_m0_wo0_aseq_clkproc: PROCESS (clk, areset) variable u0_m0_wo0_aseq_c : SIGNED(8 downto 0); BEGIN IF (areset = '1') THEN u0_m0_wo0_aseq_c := "000000000"; u0_m0_wo0_aseq_q <= "0"; u0_m0_wo0_aseq_eq <= '0'; ELSIF (clk'EVENT AND clk = '1') THEN IF (d_u0_m0_wo0_compute_q_14_q = "1") THEN IF (u0_m0_wo0_aseq_c = "000000000") THEN u0_m0_wo0_aseq_eq <= '1'; ELSE u0_m0_wo0_aseq_eq <= '0'; END IF; IF (u0_m0_wo0_aseq_eq = '1') THEN u0_m0_wo0_aseq_c := u0_m0_wo0_aseq_c + 63; ELSE u0_m0_wo0_aseq_c := u0_m0_wo0_aseq_c - 1; END IF; u0_m0_wo0_aseq_q <= STD_LOGIC_VECTOR(u0_m0_wo0_aseq_c(8 downto 8)); END IF; END IF; END PROCESS; -- d_u0_m0_wo0_compute_q_15(DELAY,82)@14 + 1 d_u0_m0_wo0_compute_q_15 : dspba_delay GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => d_u0_m0_wo0_compute_q_14_q, xout => d_u0_m0_wo0_compute_q_15_q, clk => clk, aclr => areset ); -- u0_m0_wo0_wi0_r0_ra0_count1(COUNTER,22)@12 -- low=0, high=63, step=1, init=0 u0_m0_wo0_wi0_r0_ra0_count1_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_wi0_r0_ra0_count1_i <= TO_UNSIGNED(0, 6); ELSIF (clk'EVENT AND clk = '1') THEN IF (u0_m0_wo0_memread_q = "1") THEN u0_m0_wo0_wi0_r0_ra0_count1_i <= u0_m0_wo0_wi0_r0_ra0_count1_i + 1; END IF; END IF; END PROCESS; u0_m0_wo0_wi0_r0_ra0_count1_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_wi0_r0_ra0_count1_i, 7))); -- u0_m0_wo0_wi0_r0_ra0_count0_inner(COUNTER,19)@12 -- low=-1, high=62, step=-1, init=62 u0_m0_wo0_wi0_r0_ra0_count0_inner_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_wi0_r0_ra0_count0_inner_i <= TO_SIGNED(62, 7); ELSIF (clk'EVENT AND clk = '1') THEN IF (u0_m0_wo0_memread_q = "1") THEN IF (u0_m0_wo0_wi0_r0_ra0_count0_inner_i(6 downto 6) = "1") THEN u0_m0_wo0_wi0_r0_ra0_count0_inner_i <= u0_m0_wo0_wi0_r0_ra0_count0_inner_i - 65; ELSE u0_m0_wo0_wi0_r0_ra0_count0_inner_i <= u0_m0_wo0_wi0_r0_ra0_count0_inner_i - 1; END IF; END IF; END IF; END PROCESS; u0_m0_wo0_wi0_r0_ra0_count0_inner_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_wi0_r0_ra0_count0_inner_i, 7))); -- u0_m0_wo0_wi0_r0_ra0_count0_run(LOGICAL,20)@12 u0_m0_wo0_wi0_r0_ra0_count0_run_q <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_count0_inner_q(6 downto 6)); -- u0_m0_wo0_wi0_r0_ra0_count0(COUNTER,21)@12 -- low=0, high=63, step=1, init=0 u0_m0_wo0_wi0_r0_ra0_count0_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_wi0_r0_ra0_count0_i <= TO_UNSIGNED(0, 6); ELSIF (clk'EVENT AND clk = '1') THEN IF (u0_m0_wo0_memread_q = "1" and u0_m0_wo0_wi0_r0_ra0_count0_run_q = "1") THEN u0_m0_wo0_wi0_r0_ra0_count0_i <= u0_m0_wo0_wi0_r0_ra0_count0_i + 1; END IF; END IF; END PROCESS; u0_m0_wo0_wi0_r0_ra0_count0_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_wi0_r0_ra0_count0_i, 7))); -- u0_m0_wo0_wi0_r0_ra0_add_0_0(ADD,23)@12 + 1 u0_m0_wo0_wi0_r0_ra0_add_0_0_a <= STD_LOGIC_VECTOR("0" & u0_m0_wo0_wi0_r0_ra0_count0_q); u0_m0_wo0_wi0_r0_ra0_add_0_0_b <= STD_LOGIC_VECTOR("0" & u0_m0_wo0_wi0_r0_ra0_count1_q); u0_m0_wo0_wi0_r0_ra0_add_0_0_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_wi0_r0_ra0_add_0_0_o <= (others => '0'); ELSIF (clk'EVENT AND clk = '1') THEN u0_m0_wo0_wi0_r0_ra0_add_0_0_o <= STD_LOGIC_VECTOR(UNSIGNED(u0_m0_wo0_wi0_r0_ra0_add_0_0_a) + UNSIGNED(u0_m0_wo0_wi0_r0_ra0_add_0_0_b)); END IF; END PROCESS; u0_m0_wo0_wi0_r0_ra0_add_0_0_q <= u0_m0_wo0_wi0_r0_ra0_add_0_0_o(7 downto 0); -- u0_m0_wo0_wi0_r0_ra0_resize(BITSELECT,24)@13 u0_m0_wo0_wi0_r0_ra0_resize_in <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_add_0_0_q(5 downto 0)); u0_m0_wo0_wi0_r0_ra0_resize_b <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_resize_in(5 downto 0)); -- d_xIn_0_13(DELAY,79)@10 + 3 d_xIn_0_13 : dspba_delay GENERIC MAP ( width => 16, depth => 3, reset_kind => "ASYNC" ) PORT MAP ( xin => xIn_0, xout => d_xIn_0_13_q, clk => clk, aclr => areset ); -- d_in0_m0_wi0_wo0_assign_id1_q_13(DELAY,80)@10 + 3 d_in0_m0_wi0_wo0_assign_id1_q_13 : dspba_delay GENERIC MAP ( width => 1, depth => 3, reset_kind => "ASYNC" ) PORT MAP ( xin => xIn_v, xout => d_in0_m0_wi0_wo0_assign_id1_q_13_q, clk => clk, aclr => areset ); -- u0_m0_wo0_wi0_r0_wa0(COUNTER,25)@13 -- low=0, high=63, step=1, init=63 u0_m0_wo0_wi0_r0_wa0_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_wi0_r0_wa0_i <= TO_UNSIGNED(63, 6); ELSIF (clk'EVENT AND clk = '1') THEN IF (d_in0_m0_wi0_wo0_assign_id1_q_13_q = "1") THEN u0_m0_wo0_wi0_r0_wa0_i <= u0_m0_wo0_wi0_r0_wa0_i + 1; END IF; END IF; END PROCESS; u0_m0_wo0_wi0_r0_wa0_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_wi0_r0_wa0_i, 6))); -- u0_m0_wo0_wi0_r0_memr0(DUALMEM,26)@13 u0_m0_wo0_wi0_r0_memr0_ia <= STD_LOGIC_VECTOR(d_xIn_0_13_q); u0_m0_wo0_wi0_r0_memr0_aa <= u0_m0_wo0_wi0_r0_wa0_q; u0_m0_wo0_wi0_r0_memr0_ab <= u0_m0_wo0_wi0_r0_ra0_resize_b; u0_m0_wo0_wi0_r0_memr0_dmem : altsyncram GENERIC MAP ( ram_block_type => "M9K", operation_mode => "DUAL_PORT", width_a => 16, widthad_a => 6, numwords_a => 64, width_b => 16, widthad_b => 6, numwords_b => 64, lpm_type => "altsyncram", width_byteena_a => 1, address_reg_b => "CLOCK0", indata_reg_b => "CLOCK0", wrcontrol_wraddress_reg_b => "CLOCK0", rdcontrol_reg_b => "CLOCK0", byteena_reg_b => "CLOCK0", outdata_reg_b => "CLOCK0", outdata_aclr_b => "NONE", clock_enable_input_a => "NORMAL", clock_enable_input_b => "NORMAL", clock_enable_output_b => "NORMAL", read_during_write_mode_mixed_ports => "DONT_CARE", power_up_uninitialized => "FALSE", init_file => "UNUSED", intended_device_family => "Cyclone IV E" ) PORT MAP ( clocken0 => '1', clock0 => clk, address_a => u0_m0_wo0_wi0_r0_memr0_aa, data_a => u0_m0_wo0_wi0_r0_memr0_ia, wren_a => d_in0_m0_wi0_wo0_assign_id1_q_13_q(0), address_b => u0_m0_wo0_wi0_r0_memr0_ab, q_b => u0_m0_wo0_wi0_r0_memr0_iq ); u0_m0_wo0_wi0_r0_memr0_q <= u0_m0_wo0_wi0_r0_memr0_iq(15 downto 0); -- u0_m0_wo0_ca0(COUNTER,27)@12 -- low=0, high=63, step=1, init=0 u0_m0_wo0_ca0_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_ca0_i <= TO_UNSIGNED(0, 6); ELSIF (clk'EVENT AND clk = '1') THEN IF (u0_m0_wo0_compute_q = "1") THEN u0_m0_wo0_ca0_i <= u0_m0_wo0_ca0_i + 1; END IF; END IF; END PROCESS; u0_m0_wo0_ca0_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_ca0_i, 6))); -- u0_m0_wo0_cm0(LOOKUP,31)@12 + 1 u0_m0_wo0_cm0_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_cm0_q <= "00000000"; ELSIF (clk'EVENT AND clk = '1') THEN CASE (u0_m0_wo0_ca0_q) IS WHEN "000000" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000001" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000010" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000011" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000100" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000101" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000110" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "000111" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001000" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001001" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001010" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001011" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001100" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001101" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "001110" => u0_m0_wo0_cm0_q <= "11111111"; WHEN "001111" => u0_m0_wo0_cm0_q <= "00000010"; WHEN "010000" => u0_m0_wo0_cm0_q <= "11111101"; WHEN "010001" => u0_m0_wo0_cm0_q <= "00000100"; WHEN "010010" => u0_m0_wo0_cm0_q <= "11111010"; WHEN "010011" => u0_m0_wo0_cm0_q <= "00001001"; WHEN "010100" => u0_m0_wo0_cm0_q <= "11110100"; WHEN "010101" => u0_m0_wo0_cm0_q <= "00010000"; WHEN "010110" => u0_m0_wo0_cm0_q <= "11101100"; WHEN "010111" => u0_m0_wo0_cm0_q <= "00011010"; WHEN "011000" => u0_m0_wo0_cm0_q <= "11011110"; WHEN "011001" => u0_m0_wo0_cm0_q <= "00101011"; WHEN "011010" => u0_m0_wo0_cm0_q <= "11001010"; WHEN "011011" => u0_m0_wo0_cm0_q <= "01000101"; WHEN "011100" => u0_m0_wo0_cm0_q <= "10101010"; WHEN "011101" => u0_m0_wo0_cm0_q <= "01101100"; WHEN "011110" => u0_m0_wo0_cm0_q <= "10000000"; WHEN "011111" => u0_m0_wo0_cm0_q <= "01110010"; WHEN "100000" => u0_m0_wo0_cm0_q <= "01110010"; WHEN "100001" => u0_m0_wo0_cm0_q <= "10000000"; WHEN "100010" => u0_m0_wo0_cm0_q <= "01101100"; WHEN "100011" => u0_m0_wo0_cm0_q <= "10101010"; WHEN "100100" => u0_m0_wo0_cm0_q <= "01000101"; WHEN "100101" => u0_m0_wo0_cm0_q <= "11001010"; WHEN "100110" => u0_m0_wo0_cm0_q <= "00101011"; WHEN "100111" => u0_m0_wo0_cm0_q <= "11011110"; WHEN "101000" => u0_m0_wo0_cm0_q <= "00011010"; WHEN "101001" => u0_m0_wo0_cm0_q <= "11101100"; WHEN "101010" => u0_m0_wo0_cm0_q <= "00010000"; WHEN "101011" => u0_m0_wo0_cm0_q <= "11110100"; WHEN "101100" => u0_m0_wo0_cm0_q <= "00001001"; WHEN "101101" => u0_m0_wo0_cm0_q <= "11111010"; WHEN "101110" => u0_m0_wo0_cm0_q <= "00000100"; WHEN "101111" => u0_m0_wo0_cm0_q <= "11111101"; WHEN "110000" => u0_m0_wo0_cm0_q <= "00000010"; WHEN "110001" => u0_m0_wo0_cm0_q <= "11111111"; WHEN "110010" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "110011" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "110100" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "110101" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "110110" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "110111" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111000" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111001" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111010" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111011" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111100" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111101" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111110" => u0_m0_wo0_cm0_q <= "00000000"; WHEN "111111" => u0_m0_wo0_cm0_q <= "00000000"; WHEN OTHERS => -- unreachable u0_m0_wo0_cm0_q <= (others => '-'); END CASE; END IF; END PROCESS; -- u0_m0_wo0_mtree_mult1_0(MULT,32)@13 + 2 u0_m0_wo0_mtree_mult1_0_a0 <= STD_LOGIC_VECTOR(u0_m0_wo0_cm0_q); u0_m0_wo0_mtree_mult1_0_b0 <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_memr0_q); u0_m0_wo0_mtree_mult1_0_reset <= areset; u0_m0_wo0_mtree_mult1_0_component : lpm_mult GENERIC MAP ( lpm_widtha => 8, lpm_widthb => 16, lpm_widthp => 24, lpm_widths => 1, lpm_type => "LPM_MULT", lpm_representation => "SIGNED", lpm_hint => "DEDICATED_MULTIPLIER_CIRCUITRY=YES, MAXIMIZE_SPEED=5", lpm_pipeline => 2 ) PORT MAP ( dataa => u0_m0_wo0_mtree_mult1_0_a0, datab => u0_m0_wo0_mtree_mult1_0_b0, clken => VCC_q(0), aclr => u0_m0_wo0_mtree_mult1_0_reset, clock => clk, result => u0_m0_wo0_mtree_mult1_0_s1 ); u0_m0_wo0_mtree_mult1_0_q <= u0_m0_wo0_mtree_mult1_0_s1; -- u0_m0_wo0_accum_BitSelect_for_a_tessel0_0(BITSELECT,55)@15 u0_m0_wo0_accum_BitSelect_for_a_tessel0_0_b <= STD_LOGIC_VECTOR(u0_m0_wo0_mtree_mult1_0_q(19 downto 0)); -- u0_m0_wo0_accum_p1_of_2(ADD,52)@15 + 1 u0_m0_wo0_accum_p1_of_2_a <= STD_LOGIC_VECTOR("0" & u0_m0_wo0_accum_BitSelect_for_a_tessel0_0_b); u0_m0_wo0_accum_p1_of_2_b <= STD_LOGIC_VECTOR("0" & u0_m0_wo0_accum_p1_of_2_q); u0_m0_wo0_accum_p1_of_2_i <= u0_m0_wo0_accum_p1_of_2_a; u0_m0_wo0_accum_p1_of_2_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_accum_p1_of_2_o <= (others => '0'); ELSIF (clk'EVENT AND clk = '1') THEN IF (d_u0_m0_wo0_compute_q_15_q = "1") THEN IF (u0_m0_wo0_aseq_q = "1") THEN u0_m0_wo0_accum_p1_of_2_o <= u0_m0_wo0_accum_p1_of_2_i; ELSE u0_m0_wo0_accum_p1_of_2_o <= STD_LOGIC_VECTOR(UNSIGNED(u0_m0_wo0_accum_p1_of_2_a) + UNSIGNED(u0_m0_wo0_accum_p1_of_2_b)); END IF; END IF; END IF; END PROCESS; u0_m0_wo0_accum_p1_of_2_c(0) <= u0_m0_wo0_accum_p1_of_2_o(20); u0_m0_wo0_accum_p1_of_2_q <= u0_m0_wo0_accum_p1_of_2_o(19 downto 0); -- d_u0_m0_wo0_aseq_q_16(DELAY,85)@15 + 1 d_u0_m0_wo0_aseq_q_16 : dspba_delay GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_aseq_q, xout => d_u0_m0_wo0_aseq_q_16_q, clk => clk, aclr => areset ); -- d_u0_m0_wo0_compute_q_16(DELAY,83)@15 + 1 d_u0_m0_wo0_compute_q_16 : dspba_delay GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => d_u0_m0_wo0_compute_q_15_q, xout => d_u0_m0_wo0_compute_q_16_q, clk => clk, aclr => areset ); -- d_u0_m0_wo0_mtree_mult1_0_q_16(DELAY,84)@15 + 1 d_u0_m0_wo0_mtree_mult1_0_q_16 : dspba_delay GENERIC MAP ( width => 24, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_mtree_mult1_0_q, xout => d_u0_m0_wo0_mtree_mult1_0_q_16_q, clk => clk, aclr => areset ); -- u0_m0_wo0_accum_BitSelect_for_a_tessel1_1(BITSELECT,58)@16 u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b <= STD_LOGIC_VECTOR(d_u0_m0_wo0_mtree_mult1_0_q_16_q(23 downto 23)); -- u0_m0_wo0_accum_BitSelect_for_a_tessel1_0(BITSELECT,57)@16 u0_m0_wo0_accum_BitSelect_for_a_tessel1_0_b <= STD_LOGIC_VECTOR(d_u0_m0_wo0_mtree_mult1_0_q_16_q(23 downto 20)); -- u0_m0_wo0_accum_BitSelect_for_a_BitJoin_for_c(BITJOIN,64)@16 u0_m0_wo0_accum_BitSelect_for_a_BitJoin_for_c_q <= u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_1_b & u0_m0_wo0_accum_BitSelect_for_a_tessel1_0_b; -- u0_m0_wo0_accum_p2_of_2(ADD,53)@16 + 1 u0_m0_wo0_accum_p2_of_2_cin <= u0_m0_wo0_accum_p1_of_2_c; u0_m0_wo0_accum_p2_of_2_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((10 downto 10 => u0_m0_wo0_accum_BitSelect_for_a_BitJoin_for_c_q(9)) & u0_m0_wo0_accum_BitSelect_for_a_BitJoin_for_c_q) & '1'); u0_m0_wo0_accum_p2_of_2_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((10 downto 10 => u0_m0_wo0_accum_p2_of_2_q(9)) & u0_m0_wo0_accum_p2_of_2_q) & u0_m0_wo0_accum_p2_of_2_cin(0)); u0_m0_wo0_accum_p2_of_2_i <= u0_m0_wo0_accum_p2_of_2_a; u0_m0_wo0_accum_p2_of_2_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_accum_p2_of_2_o <= (others => '0'); ELSIF (clk'EVENT AND clk = '1') THEN IF (d_u0_m0_wo0_compute_q_16_q = "1") THEN IF (d_u0_m0_wo0_aseq_q_16_q = "1") THEN u0_m0_wo0_accum_p2_of_2_o <= u0_m0_wo0_accum_p2_of_2_i; ELSE u0_m0_wo0_accum_p2_of_2_o <= STD_LOGIC_VECTOR(SIGNED(u0_m0_wo0_accum_p2_of_2_a) + SIGNED(u0_m0_wo0_accum_p2_of_2_b)); END IF; END IF; END IF; END PROCESS; u0_m0_wo0_accum_p2_of_2_q <= u0_m0_wo0_accum_p2_of_2_o(10 downto 1); -- d_u0_m0_wo0_accum_p1_of_2_q_17(DELAY,86)@16 + 1 d_u0_m0_wo0_accum_p1_of_2_q_17 : dspba_delay GENERIC MAP ( width => 20, depth => 1, reset_kind => "ASYNC" ) PORT MAP ( xin => u0_m0_wo0_accum_p1_of_2_q, xout => d_u0_m0_wo0_accum_p1_of_2_q_17_q, clk => clk, aclr => areset ); -- u0_m0_wo0_accum_BitJoin_for_q(BITJOIN,54)@17 u0_m0_wo0_accum_BitJoin_for_q_q <= u0_m0_wo0_accum_p2_of_2_q & d_u0_m0_wo0_accum_p1_of_2_q_17_q; -- GND(CONSTANT,0)@0 GND_q <= "0"; -- u0_m0_wo0_oseq(SEQUENCE,35)@15 + 1 u0_m0_wo0_oseq_clkproc: PROCESS (clk, areset) variable u0_m0_wo0_oseq_c : SIGNED(8 downto 0); BEGIN IF (areset = '1') THEN u0_m0_wo0_oseq_c := "000111111"; u0_m0_wo0_oseq_q <= "0"; u0_m0_wo0_oseq_eq <= '0'; ELSIF (clk'EVENT AND clk = '1') THEN IF (d_u0_m0_wo0_compute_q_15_q = "1") THEN IF (u0_m0_wo0_oseq_c = "000000000") THEN u0_m0_wo0_oseq_eq <= '1'; ELSE u0_m0_wo0_oseq_eq <= '0'; END IF; IF (u0_m0_wo0_oseq_eq = '1') THEN u0_m0_wo0_oseq_c := u0_m0_wo0_oseq_c + 63; ELSE u0_m0_wo0_oseq_c := u0_m0_wo0_oseq_c - 1; END IF; u0_m0_wo0_oseq_q <= STD_LOGIC_VECTOR(u0_m0_wo0_oseq_c(8 downto 8)); END IF; END IF; END PROCESS; -- u0_m0_wo0_oseq_gated(LOGICAL,36)@16 u0_m0_wo0_oseq_gated_q <= u0_m0_wo0_oseq_q and d_u0_m0_wo0_compute_q_16_q; -- u0_m0_wo0_oseq_gated_reg(REG,37)@16 + 1 u0_m0_wo0_oseq_gated_reg_clkproc: PROCESS (clk, areset) BEGIN IF (areset = '1') THEN u0_m0_wo0_oseq_gated_reg_q <= "0"; ELSIF (clk'EVENT AND clk = '1') THEN u0_m0_wo0_oseq_gated_reg_q <= STD_LOGIC_VECTOR(u0_m0_wo0_oseq_gated_q); END IF; END PROCESS; -- xOut(PORTOUT,42)@17 + 1 xOut_v <= u0_m0_wo0_oseq_gated_reg_q; xOut_c <= STD_LOGIC_VECTOR("0000000" & GND_q); xOut_0 <= u0_m0_wo0_accum_BitJoin_for_q_q; END normal;