kopia lustrzana https://github.com/UU5JPP/Wolf-LITE
622 wiersze
29 KiB
VHDL
622 wiersze
29 KiB
VHDL
-- -------------------------------------------------------------------------
|
|
-- 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 rx_ciccomp_0002_rtl_core
|
|
-- VHDL created on Fri Feb 12 16:50:50 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 rx_ciccomp_0002_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(31 downto 0); -- sfix32
|
|
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(46 downto 0); -- sfix47
|
|
clk : in std_logic;
|
|
areset : in std_logic
|
|
);
|
|
end rx_ciccomp_0002_rtl_core;
|
|
|
|
architecture normal of rx_ciccomp_0002_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_15_q : STD_LOGIC_VECTOR (31 downto 0);
|
|
signal d_in0_m0_wi0_wo0_assign_id1_q_15_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 d_u0_m0_wo0_memread_q_13_q : STD_LOGIC_VECTOR (0 downto 0);
|
|
signal d_u0_m0_wo0_memread_q_14_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_17_q : STD_LOGIC_VECTOR (0 downto 0);
|
|
signal d_u0_m0_wo0_compute_q_18_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 (7 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_count0_i : UNSIGNED (6 downto 0);
|
|
attribute preserve of u0_m0_wo0_wi0_r0_ra0_count0_i : signal is true;
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lutreg_q : STD_LOGIC_VECTOR (7 downto 0);
|
|
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 (6 downto 0);
|
|
attribute preserve of u0_m0_wo0_wi0_r0_ra0_count1_i : signal is true;
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_eq : std_logic;
|
|
attribute preserve of u0_m0_wo0_wi0_r0_ra0_count1_eq : signal is true;
|
|
signal u0_m0_wo0_wi0_r0_ra0_add_0_0_a : STD_LOGIC_VECTOR (8 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_add_0_0_b : STD_LOGIC_VECTOR (8 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_add_0_0_o : STD_LOGIC_VECTOR (8 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_add_0_0_q : STD_LOGIC_VECTOR (8 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_wa0_q : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_wa0_i : UNSIGNED (6 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 (31 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_memr0_aa : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_memr0_ab : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_memr0_iq : STD_LOGIC_VECTOR (31 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_memr0_q : STD_LOGIC_VECTOR (31 downto 0);
|
|
signal u0_m0_wo0_ca0_q : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_ca0_i : UNSIGNED (6 downto 0);
|
|
attribute preserve of u0_m0_wo0_ca0_i : signal is true;
|
|
signal u0_m0_wo0_ca0_eq : std_logic;
|
|
attribute preserve of u0_m0_wo0_ca0_eq : signal is true;
|
|
signal u0_m0_wo0_aseq_q : STD_LOGIC_VECTOR (0 downto 0);
|
|
signal u0_m0_wo0_aseq_eq : std_logic;
|
|
signal u0_m0_wo0_accum_a : STD_LOGIC_VECTOR (46 downto 0);
|
|
signal u0_m0_wo0_accum_b : STD_LOGIC_VECTOR (46 downto 0);
|
|
signal u0_m0_wo0_accum_i : STD_LOGIC_VECTOR (46 downto 0);
|
|
signal u0_m0_wo0_accum_o : STD_LOGIC_VECTOR (46 downto 0);
|
|
signal u0_m0_wo0_accum_q : STD_LOGIC_VECTOR (46 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_wi0_r0_ra0_count1_lut_lutmem_reset0 : std_logic;
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_ia : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_aa : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_ab : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_ir : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_r : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_cm0_lutmem_reset0 : std_logic;
|
|
signal u0_m0_wo0_cm0_lutmem_ia : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_cm0_lutmem_aa : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_cm0_lutmem_ab : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_cm0_lutmem_ir : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_cm0_lutmem_r : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im0_a0 : STD_LOGIC_VECTOR (17 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im0_b0 : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im0_s1 : STD_LOGIC_VECTOR (25 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im0_reset : std_logic;
|
|
signal u0_m0_wo0_mtree_mult1_0_im0_q : STD_LOGIC_VECTOR (25 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im4_a0 : STD_LOGIC_VECTOR (14 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im4_b0 : STD_LOGIC_VECTOR (7 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im4_s1 : STD_LOGIC_VECTOR (22 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_im4_reset : std_logic;
|
|
signal u0_m0_wo0_mtree_mult1_0_im4_q : STD_LOGIC_VECTOR (22 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_result_add_0_0_a : STD_LOGIC_VECTOR (40 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_result_add_0_0_b : STD_LOGIC_VECTOR (40 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_result_add_0_0_o : STD_LOGIC_VECTOR (40 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_result_add_0_0_q : STD_LOGIC_VECTOR (40 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 (6 downto 0);
|
|
signal u0_m0_wo0_wi0_r0_ra0_resize_b : STD_LOGIC_VECTOR (6 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_b : STD_LOGIC_VECTOR (16 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_c : STD_LOGIC_VECTOR (14 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_align_8_q : STD_LOGIC_VECTOR (39 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_align_8_qint : STD_LOGIC_VECTOR (39 downto 0);
|
|
signal u0_m0_wo0_mtree_mult1_0_bjB3_q : STD_LOGIC_VECTOR (17 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(63, 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 - (-64);
|
|
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 );
|
|
|
|
-- d_u0_m0_wo0_memread_q_13(DELAY,61)@12 + 1
|
|
d_u0_m0_wo0_memread_q_13 : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => u0_m0_wo0_memread_q, xout => d_u0_m0_wo0_memread_q_13_q, clk => clk, aclr => areset );
|
|
|
|
-- u0_m0_wo0_compute(DELAY,16)@13
|
|
u0_m0_wo0_compute : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => d_u0_m0_wo0_memread_q_13_q, xout => u0_m0_wo0_compute_q, clk => clk, aclr => areset );
|
|
|
|
-- d_u0_m0_wo0_compute_q_17(DELAY,63)@13 + 4
|
|
d_u0_m0_wo0_compute_q_17 : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 4, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => u0_m0_wo0_compute_q, xout => d_u0_m0_wo0_compute_q_17_q, clk => clk, aclr => areset );
|
|
|
|
-- u0_m0_wo0_aseq(SEQUENCE,35)@17 + 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_17_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 + 64;
|
|
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_18(DELAY,64)@17 + 1
|
|
d_u0_m0_wo0_compute_q_18 : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => d_u0_m0_wo0_compute_q_17_q, xout => d_u0_m0_wo0_compute_q_18_q, clk => clk, aclr => areset );
|
|
|
|
-- u0_m0_wo0_ca0(COUNTER,29)@13
|
|
-- low=0, high=64, 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, 7);
|
|
u0_m0_wo0_ca0_eq <= '0';
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (u0_m0_wo0_compute_q = "1") THEN
|
|
IF (u0_m0_wo0_ca0_i = TO_UNSIGNED(63, 7)) THEN
|
|
u0_m0_wo0_ca0_eq <= '1';
|
|
ELSE
|
|
u0_m0_wo0_ca0_eq <= '0';
|
|
END IF;
|
|
IF (u0_m0_wo0_ca0_eq = '1') THEN
|
|
u0_m0_wo0_ca0_i <= u0_m0_wo0_ca0_i + 64;
|
|
ELSE
|
|
u0_m0_wo0_ca0_i <= u0_m0_wo0_ca0_i + 1;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END PROCESS;
|
|
u0_m0_wo0_ca0_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(u0_m0_wo0_ca0_i, 7)));
|
|
|
|
-- u0_m0_wo0_cm0_lutmem(DUALMEM,46)@13 + 2
|
|
u0_m0_wo0_cm0_lutmem_aa <= u0_m0_wo0_ca0_q;
|
|
u0_m0_wo0_cm0_lutmem_reset0 <= areset;
|
|
u0_m0_wo0_cm0_lutmem_dmem : altsyncram
|
|
GENERIC MAP (
|
|
ram_block_type => "M9K",
|
|
operation_mode => "ROM",
|
|
width_a => 8,
|
|
widthad_a => 7,
|
|
numwords_a => 65,
|
|
lpm_type => "altsyncram",
|
|
width_byteena_a => 1,
|
|
outdata_reg_a => "CLOCK0",
|
|
outdata_aclr_a => "CLEAR0",
|
|
clock_enable_input_a => "NORMAL",
|
|
power_up_uninitialized => "FALSE",
|
|
init_file => "rx_ciccomp_0002_rtl_core_u0_m0_wo0_cm0_lutmem.hex",
|
|
init_file_layout => "PORT_A",
|
|
intended_device_family => "Cyclone IV E"
|
|
)
|
|
PORT MAP (
|
|
clocken0 => '1',
|
|
aclr0 => u0_m0_wo0_cm0_lutmem_reset0,
|
|
clock0 => clk,
|
|
address_a => u0_m0_wo0_cm0_lutmem_aa,
|
|
q_a => u0_m0_wo0_cm0_lutmem_ir
|
|
);
|
|
u0_m0_wo0_cm0_lutmem_r <= u0_m0_wo0_cm0_lutmem_ir(7 downto 0);
|
|
|
|
-- d_u0_m0_wo0_memread_q_14(DELAY,62)@13 + 1
|
|
d_u0_m0_wo0_memread_q_14 : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => d_u0_m0_wo0_memread_q_13_q, xout => d_u0_m0_wo0_memread_q_14_q, clk => clk, aclr => areset );
|
|
|
|
-- u0_m0_wo0_wi0_r0_ra0_count1(COUNTER,24)@12
|
|
-- low=0, high=64, step=1, init=1
|
|
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(1, 7);
|
|
u0_m0_wo0_wi0_r0_ra0_count1_eq <= '0';
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (u0_m0_wo0_memread_q = "1") THEN
|
|
IF (u0_m0_wo0_wi0_r0_ra0_count1_i = TO_UNSIGNED(63, 7)) THEN
|
|
u0_m0_wo0_wi0_r0_ra0_count1_eq <= '1';
|
|
ELSE
|
|
u0_m0_wo0_wi0_r0_ra0_count1_eq <= '0';
|
|
END IF;
|
|
IF (u0_m0_wo0_wi0_r0_ra0_count1_eq = '1') THEN
|
|
u0_m0_wo0_wi0_r0_ra0_count1_i <= u0_m0_wo0_wi0_r0_ra0_count1_i + 64;
|
|
ELSE
|
|
u0_m0_wo0_wi0_r0_ra0_count1_i <= u0_m0_wo0_wi0_r0_ra0_count1_i + 1;
|
|
END IF;
|
|
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_count1_lut_lutmem(DUALMEM,45)@12 + 2
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_aa <= u0_m0_wo0_wi0_r0_ra0_count1_q;
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_reset0 <= areset;
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_dmem : altsyncram
|
|
GENERIC MAP (
|
|
ram_block_type => "M9K",
|
|
operation_mode => "ROM",
|
|
width_a => 8,
|
|
widthad_a => 7,
|
|
numwords_a => 65,
|
|
lpm_type => "altsyncram",
|
|
width_byteena_a => 1,
|
|
outdata_reg_a => "CLOCK0",
|
|
outdata_aclr_a => "CLEAR0",
|
|
clock_enable_input_a => "NORMAL",
|
|
power_up_uninitialized => "FALSE",
|
|
init_file => "rx_ciccomp_0002_rtl_core_u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem.hex",
|
|
init_file_layout => "PORT_A",
|
|
intended_device_family => "Cyclone IV E"
|
|
)
|
|
PORT MAP (
|
|
clocken0 => '1',
|
|
aclr0 => u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_reset0,
|
|
clock0 => clk,
|
|
address_a => u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_aa,
|
|
q_a => u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_ir
|
|
);
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_r <= u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_ir(7 downto 0);
|
|
|
|
-- u0_m0_wo0_wi0_r0_ra0_count1_lutreg(REG,23)@14
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lutreg_clkproc: PROCESS (clk, areset)
|
|
BEGIN
|
|
IF (areset = '1') THEN
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lutreg_q <= "01000001";
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (d_u0_m0_wo0_memread_q_14_q = "1") THEN
|
|
u0_m0_wo0_wi0_r0_ra0_count1_lutreg_q <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_count1_lut_lutmem_r);
|
|
END IF;
|
|
END IF;
|
|
END PROCESS;
|
|
|
|
-- u0_m0_wo0_wi0_r0_ra0_count0_inner(COUNTER,19)@14
|
|
-- low=-1, high=63, step=-1, init=63
|
|
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(63, 7);
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (d_u0_m0_wo0_memread_q_14_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 - 64;
|
|
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)@14
|
|
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)@14
|
|
-- low=0, high=127, 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, 7);
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (d_u0_m0_wo0_memread_q_14_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, 8)));
|
|
|
|
-- u0_m0_wo0_wi0_r0_ra0_add_0_0(ADD,25)@14 + 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_lutreg_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(8 downto 0);
|
|
|
|
-- u0_m0_wo0_wi0_r0_ra0_resize(BITSELECT,26)@15
|
|
u0_m0_wo0_wi0_r0_ra0_resize_in <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_add_0_0_q(6 downto 0));
|
|
u0_m0_wo0_wi0_r0_ra0_resize_b <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_ra0_resize_in(6 downto 0));
|
|
|
|
-- d_xIn_0_15(DELAY,59)@10 + 5
|
|
d_xIn_0_15 : dspba_delay
|
|
GENERIC MAP ( width => 32, depth => 5, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => xIn_0, xout => d_xIn_0_15_q, clk => clk, aclr => areset );
|
|
|
|
-- d_in0_m0_wi0_wo0_assign_id1_q_15(DELAY,60)@10 + 5
|
|
d_in0_m0_wi0_wo0_assign_id1_q_15 : dspba_delay
|
|
GENERIC MAP ( width => 1, depth => 5, reset_kind => "ASYNC" )
|
|
PORT MAP ( xin => xIn_v, xout => d_in0_m0_wi0_wo0_assign_id1_q_15_q, clk => clk, aclr => areset );
|
|
|
|
-- u0_m0_wo0_wi0_r0_wa0(COUNTER,27)@15
|
|
-- low=0, high=127, step=1, init=1
|
|
u0_m0_wo0_wi0_r0_wa0_clkproc: PROCESS (clk, areset)
|
|
BEGIN
|
|
IF (areset = '1') THEN
|
|
u0_m0_wo0_wi0_r0_wa0_i <= TO_UNSIGNED(1, 7);
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (d_in0_m0_wi0_wo0_assign_id1_q_15_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, 7)));
|
|
|
|
-- u0_m0_wo0_wi0_r0_memr0(DUALMEM,28)@15
|
|
u0_m0_wo0_wi0_r0_memr0_ia <= STD_LOGIC_VECTOR(d_xIn_0_15_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 => 32,
|
|
widthad_a => 7,
|
|
numwords_a => 128,
|
|
width_b => 32,
|
|
widthad_b => 7,
|
|
numwords_b => 128,
|
|
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_15_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(31 downto 0);
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select(BITSELECT,58)@15
|
|
u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_b <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_memr0_q(16 downto 0));
|
|
u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_c <= STD_LOGIC_VECTOR(u0_m0_wo0_wi0_r0_memr0_q(31 downto 17));
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_im4(MULT,51)@15 + 2
|
|
u0_m0_wo0_mtree_mult1_0_im4_a0 <= STD_LOGIC_VECTOR(u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_c);
|
|
u0_m0_wo0_mtree_mult1_0_im4_b0 <= STD_LOGIC_VECTOR(u0_m0_wo0_cm0_lutmem_r);
|
|
u0_m0_wo0_mtree_mult1_0_im4_reset <= areset;
|
|
u0_m0_wo0_mtree_mult1_0_im4_component : lpm_mult
|
|
GENERIC MAP (
|
|
lpm_widtha => 15,
|
|
lpm_widthb => 8,
|
|
lpm_widthp => 23,
|
|
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_im4_a0,
|
|
datab => u0_m0_wo0_mtree_mult1_0_im4_b0,
|
|
clken => VCC_q(0),
|
|
aclr => u0_m0_wo0_mtree_mult1_0_im4_reset,
|
|
clock => clk,
|
|
result => u0_m0_wo0_mtree_mult1_0_im4_s1
|
|
);
|
|
u0_m0_wo0_mtree_mult1_0_im4_q <= u0_m0_wo0_mtree_mult1_0_im4_s1;
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_align_8(BITSHIFT,55)@17
|
|
u0_m0_wo0_mtree_mult1_0_align_8_qint <= u0_m0_wo0_mtree_mult1_0_im4_q & "00000000000000000";
|
|
u0_m0_wo0_mtree_mult1_0_align_8_q <= u0_m0_wo0_mtree_mult1_0_align_8_qint(39 downto 0);
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_bjB3(BITJOIN,50)@15
|
|
u0_m0_wo0_mtree_mult1_0_bjB3_q <= GND_q & u0_m0_wo0_mtree_mult1_0_bs2_merged_bit_select_b;
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_im0(MULT,47)@15 + 2
|
|
u0_m0_wo0_mtree_mult1_0_im0_a0 <= STD_LOGIC_VECTOR(u0_m0_wo0_mtree_mult1_0_bjB3_q);
|
|
u0_m0_wo0_mtree_mult1_0_im0_b0 <= STD_LOGIC_VECTOR(u0_m0_wo0_cm0_lutmem_r);
|
|
u0_m0_wo0_mtree_mult1_0_im0_reset <= areset;
|
|
u0_m0_wo0_mtree_mult1_0_im0_component : lpm_mult
|
|
GENERIC MAP (
|
|
lpm_widtha => 18,
|
|
lpm_widthb => 8,
|
|
lpm_widthp => 26,
|
|
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_im0_a0,
|
|
datab => u0_m0_wo0_mtree_mult1_0_im0_b0,
|
|
clken => VCC_q(0),
|
|
aclr => u0_m0_wo0_mtree_mult1_0_im0_reset,
|
|
clock => clk,
|
|
result => u0_m0_wo0_mtree_mult1_0_im0_s1
|
|
);
|
|
u0_m0_wo0_mtree_mult1_0_im0_q <= u0_m0_wo0_mtree_mult1_0_im0_s1;
|
|
|
|
-- u0_m0_wo0_mtree_mult1_0_result_add_0_0(ADD,57)@17 + 1
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((40 downto 26 => u0_m0_wo0_mtree_mult1_0_im0_q(25)) & u0_m0_wo0_mtree_mult1_0_im0_q));
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((40 downto 40 => u0_m0_wo0_mtree_mult1_0_align_8_q(39)) & u0_m0_wo0_mtree_mult1_0_align_8_q));
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_clkproc: PROCESS (clk, areset)
|
|
BEGIN
|
|
IF (areset = '1') THEN
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_o <= (others => '0');
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_o <= STD_LOGIC_VECTOR(SIGNED(u0_m0_wo0_mtree_mult1_0_result_add_0_0_a) + SIGNED(u0_m0_wo0_mtree_mult1_0_result_add_0_0_b));
|
|
END IF;
|
|
END PROCESS;
|
|
u0_m0_wo0_mtree_mult1_0_result_add_0_0_q <= u0_m0_wo0_mtree_mult1_0_result_add_0_0_o(40 downto 0);
|
|
|
|
-- u0_m0_wo0_accum(ADD,36)@18 + 1
|
|
u0_m0_wo0_accum_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((46 downto 41 => u0_m0_wo0_mtree_mult1_0_result_add_0_0_q(40)) & u0_m0_wo0_mtree_mult1_0_result_add_0_0_q));
|
|
u0_m0_wo0_accum_b <= STD_LOGIC_VECTOR(u0_m0_wo0_accum_q);
|
|
u0_m0_wo0_accum_i <= u0_m0_wo0_accum_a;
|
|
u0_m0_wo0_accum_clkproc: PROCESS (clk, areset)
|
|
BEGIN
|
|
IF (areset = '1') THEN
|
|
u0_m0_wo0_accum_o <= (others => '0');
|
|
ELSIF (clk'EVENT AND clk = '1') THEN
|
|
IF (d_u0_m0_wo0_compute_q_18_q = "1") THEN
|
|
IF (u0_m0_wo0_aseq_q = "1") THEN
|
|
u0_m0_wo0_accum_o <= u0_m0_wo0_accum_i;
|
|
ELSE
|
|
u0_m0_wo0_accum_o <= STD_LOGIC_VECTOR(SIGNED(u0_m0_wo0_accum_a) + SIGNED(u0_m0_wo0_accum_b));
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END PROCESS;
|
|
u0_m0_wo0_accum_q <= u0_m0_wo0_accum_o(46 downto 0);
|
|
|
|
-- GND(CONSTANT,0)@0
|
|
GND_q <= "0";
|
|
|
|
-- u0_m0_wo0_oseq(SEQUENCE,37)@17 + 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 := "001000000";
|
|
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_17_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 + 64;
|
|
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,38)@18
|
|
u0_m0_wo0_oseq_gated_q <= u0_m0_wo0_oseq_q and d_u0_m0_wo0_compute_q_18_q;
|
|
|
|
-- u0_m0_wo0_oseq_gated_reg(REG,39)@18 + 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,44)@19 + 1
|
|
xOut_v <= u0_m0_wo0_oseq_gated_reg_q;
|
|
xOut_c <= STD_LOGIC_VECTOR("0000000" & GND_q);
|
|
xOut_0 <= u0_m0_wo0_accum_q;
|
|
|
|
END normal;
|