Archived
archive dl814_dj_48m, add dl814_k7_cal_coarse
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended.
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
COSLUT_10_16bit your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.addra(addra), // input wire [12 : 0] addra
|
||||
.douta(douta), // output wire [17 : 0] douta
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [12 : 0] addrb
|
||||
.doutb(doutb) // output wire [17 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file COSLUT_10_16bit.v when simulating
|
||||
// the core, COSLUT_10_16bit. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
-- IP Revision: 3
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT COSLUT_10_16bit
|
||||
PORT (
|
||||
clka : IN STD_LOGIC;
|
||||
addra : IN STD_LOGIC_VECTOR(12 DOWNTO 0);
|
||||
douta : OUT STD_LOGIC_VECTOR(17 DOWNTO 0);
|
||||
clkb : IN STD_LOGIC;
|
||||
addrb : IN STD_LOGIC_VECTOR(12 DOWNTO 0);
|
||||
doutb : OUT STD_LOGIC_VECTOR(17 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : COSLUT_10_16bit
|
||||
PORT MAP (
|
||||
clka => clka,
|
||||
addra => addra,
|
||||
douta => douta,
|
||||
clkb => clkb,
|
||||
addrb => addrb,
|
||||
doutb => doutb
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file COSLUT_10_16bit.vhd when simulating
|
||||
-- the core, COSLUT_10_16bit. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+2445
File diff suppressed because it is too large
Load Diff
+2784
File diff suppressed because it is too large
Load Diff
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:34:22 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/COSLUT_10_16bit_synth_1/COSLUT_10_16bit_stub.v
|
||||
// Design : COSLUT_10_16bit
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "blk_mem_gen_v8_4_3,Vivado 2019.1.3" *)
|
||||
module COSLUT_10_16bit(clka, addra, douta, clkb, addrb, doutb)
|
||||
/* synthesis syn_black_box black_box_pad_pin="clka,addra[12:0],douta[17:0],clkb,addrb[12:0],doutb[17:0]" */;
|
||||
input clka;
|
||||
input [12:0]addra;
|
||||
output [17:0]douta;
|
||||
input clkb;
|
||||
input [12:0]addrb;
|
||||
output [17:0]doutb;
|
||||
endmodule
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:34:22 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/COSLUT_10_16bit_synth_1/COSLUT_10_16bit_stub.vhdl
|
||||
-- Design : COSLUT_10_16bit
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity COSLUT_10_16bit is
|
||||
Port (
|
||||
clka : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 12 downto 0 );
|
||||
douta : out STD_LOGIC_VECTOR ( 17 downto 0 );
|
||||
clkb : in STD_LOGIC;
|
||||
addrb : in STD_LOGIC_VECTOR ( 12 downto 0 );
|
||||
doutb : out STD_LOGIC_VECTOR ( 17 downto 0 )
|
||||
);
|
||||
|
||||
end COSLUT_10_16bit;
|
||||
|
||||
architecture stub of COSLUT_10_16bit is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "clka,addra[12:0],douta[17:0],clkb,addrb[12:0],doutb[17:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_3,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 3
|
||||
|
||||
`timescale 1ns/1ps
|
||||
|
||||
(* DowngradeIPIdentifiedWarnings = "yes" *)
|
||||
module COSLUT_10_16bit (
|
||||
clka,
|
||||
addra,
|
||||
douta,
|
||||
clkb,
|
||||
addrb,
|
||||
doutb
|
||||
);
|
||||
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK" *)
|
||||
input wire clka;
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR" *)
|
||||
input wire [12 : 0] addra;
|
||||
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME BRAM_PORTA, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1" *)
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT" *)
|
||||
output wire [17 : 0] douta;
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTB CLK" *)
|
||||
input wire clkb;
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTB ADDR" *)
|
||||
input wire [12 : 0] addrb;
|
||||
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME BRAM_PORTB, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1" *)
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTB DOUT" *)
|
||||
output wire [17 : 0] doutb;
|
||||
|
||||
blk_mem_gen_v8_4_3 #(
|
||||
.C_FAMILY("kintex7"),
|
||||
.C_XDEVICEFAMILY("kintex7"),
|
||||
.C_ELABORATION_DIR("./"),
|
||||
.C_INTERFACE_TYPE(0),
|
||||
.C_AXI_TYPE(1),
|
||||
.C_AXI_SLAVE_TYPE(0),
|
||||
.C_USE_BRAM_BLOCK(0),
|
||||
.C_ENABLE_32BIT_ADDRESS(0),
|
||||
.C_CTRL_ECC_ALGO("NONE"),
|
||||
.C_HAS_AXI_ID(0),
|
||||
.C_AXI_ID_WIDTH(4),
|
||||
.C_MEM_TYPE(4),
|
||||
.C_BYTE_SIZE(9),
|
||||
.C_ALGORITHM(1),
|
||||
.C_PRIM_TYPE(1),
|
||||
.C_LOAD_INIT_FILE(1),
|
||||
.C_INIT_FILE_NAME("COSLUT_10_16bit.mif"),
|
||||
.C_INIT_FILE("COSLUT_10_16bit.mem"),
|
||||
.C_USE_DEFAULT_DATA(0),
|
||||
.C_DEFAULT_DATA("0"),
|
||||
.C_HAS_RSTA(0),
|
||||
.C_RST_PRIORITY_A("CE"),
|
||||
.C_RSTRAM_A(0),
|
||||
.C_INITA_VAL("0"),
|
||||
.C_HAS_ENA(0),
|
||||
.C_HAS_REGCEA(0),
|
||||
.C_USE_BYTE_WEA(0),
|
||||
.C_WEA_WIDTH(1),
|
||||
.C_WRITE_MODE_A("WRITE_FIRST"),
|
||||
.C_WRITE_WIDTH_A(18),
|
||||
.C_READ_WIDTH_A(18),
|
||||
.C_WRITE_DEPTH_A(8192),
|
||||
.C_READ_DEPTH_A(8192),
|
||||
.C_ADDRA_WIDTH(13),
|
||||
.C_HAS_RSTB(0),
|
||||
.C_RST_PRIORITY_B("CE"),
|
||||
.C_RSTRAM_B(0),
|
||||
.C_INITB_VAL("0"),
|
||||
.C_HAS_ENB(0),
|
||||
.C_HAS_REGCEB(0),
|
||||
.C_USE_BYTE_WEB(0),
|
||||
.C_WEB_WIDTH(1),
|
||||
.C_WRITE_MODE_B("WRITE_FIRST"),
|
||||
.C_WRITE_WIDTH_B(18),
|
||||
.C_READ_WIDTH_B(18),
|
||||
.C_WRITE_DEPTH_B(8192),
|
||||
.C_READ_DEPTH_B(8192),
|
||||
.C_ADDRB_WIDTH(13),
|
||||
.C_HAS_MEM_OUTPUT_REGS_A(1),
|
||||
.C_HAS_MEM_OUTPUT_REGS_B(1),
|
||||
.C_HAS_MUX_OUTPUT_REGS_A(1),
|
||||
.C_HAS_MUX_OUTPUT_REGS_B(1),
|
||||
.C_MUX_PIPELINE_STAGES(0),
|
||||
.C_HAS_SOFTECC_INPUT_REGS_A(0),
|
||||
.C_HAS_SOFTECC_OUTPUT_REGS_B(0),
|
||||
.C_USE_SOFTECC(0),
|
||||
.C_USE_ECC(0),
|
||||
.C_EN_ECC_PIPE(0),
|
||||
.C_READ_LATENCY_A(1),
|
||||
.C_READ_LATENCY_B(1),
|
||||
.C_HAS_INJECTERR(0),
|
||||
.C_SIM_COLLISION_CHECK("ALL"),
|
||||
.C_COMMON_CLK(0),
|
||||
.C_DISABLE_WARN_BHV_COLL(0),
|
||||
.C_EN_SLEEP_PIN(0),
|
||||
.C_USE_URAM(0),
|
||||
.C_EN_RDADDRA_CHG(0),
|
||||
.C_EN_RDADDRB_CHG(0),
|
||||
.C_EN_DEEPSLEEP_PIN(0),
|
||||
.C_EN_SHUTDOWN_PIN(0),
|
||||
.C_EN_SAFETY_CKT(0),
|
||||
.C_DISABLE_WARN_BHV_RANGE(0),
|
||||
.C_COUNT_36K_BRAM("4"),
|
||||
.C_COUNT_18K_BRAM("0"),
|
||||
.C_EST_POWER_SUMMARY("Estimated Power for IP : 9.414399 mW")
|
||||
) inst (
|
||||
.clka(clka),
|
||||
.rsta(1'D0),
|
||||
.ena(1'D0),
|
||||
.regcea(1'D0),
|
||||
.wea(1'B0),
|
||||
.addra(addra),
|
||||
.dina(18'B0),
|
||||
.douta(douta),
|
||||
.clkb(clkb),
|
||||
.rstb(1'D0),
|
||||
.enb(1'D0),
|
||||
.regceb(1'D0),
|
||||
.web(1'B0),
|
||||
.addrb(addrb),
|
||||
.dinb(18'B0),
|
||||
.doutb(doutb),
|
||||
.injectsbiterr(1'D0),
|
||||
.injectdbiterr(1'D0),
|
||||
.eccpipece(1'D0),
|
||||
.sbiterr(),
|
||||
.dbiterr(),
|
||||
.rdaddrecc(),
|
||||
.sleep(1'D0),
|
||||
.deepsleep(1'D0),
|
||||
.shutdown(1'D0),
|
||||
.rsta_busy(),
|
||||
.rstb_busy(),
|
||||
.s_aclk(1'H0),
|
||||
.s_aresetn(1'D0),
|
||||
.s_axi_awid(4'B0),
|
||||
.s_axi_awaddr(32'B0),
|
||||
.s_axi_awlen(8'B0),
|
||||
.s_axi_awsize(3'B0),
|
||||
.s_axi_awburst(2'B0),
|
||||
.s_axi_awvalid(1'D0),
|
||||
.s_axi_awready(),
|
||||
.s_axi_wdata(18'B0),
|
||||
.s_axi_wstrb(1'B0),
|
||||
.s_axi_wlast(1'D0),
|
||||
.s_axi_wvalid(1'D0),
|
||||
.s_axi_wready(),
|
||||
.s_axi_bid(),
|
||||
.s_axi_bresp(),
|
||||
.s_axi_bvalid(),
|
||||
.s_axi_bready(1'D0),
|
||||
.s_axi_arid(4'B0),
|
||||
.s_axi_araddr(32'B0),
|
||||
.s_axi_arlen(8'B0),
|
||||
.s_axi_arsize(3'B0),
|
||||
.s_axi_arburst(2'B0),
|
||||
.s_axi_arvalid(1'D0),
|
||||
.s_axi_arready(),
|
||||
.s_axi_rid(),
|
||||
.s_axi_rdata(),
|
||||
.s_axi_rresp(),
|
||||
.s_axi_rlast(),
|
||||
.s_axi_rvalid(),
|
||||
.s_axi_rready(1'D0),
|
||||
.s_axi_injectsbiterr(1'D0),
|
||||
.s_axi_injectdbiterr(1'D0),
|
||||
.s_axi_sbiterr(),
|
||||
.s_axi_dbiterr(),
|
||||
.s_axi_rdaddrecc()
|
||||
);
|
||||
endmodule
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
// IP Revision: 12
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
GaussFir_12m your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_data_tvalid(s_axis_data_tvalid), // input wire s_axis_data_tvalid
|
||||
.s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready
|
||||
.s_axis_data_tdata(s_axis_data_tdata), // input wire [7 : 0] s_axis_data_tdata
|
||||
.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid
|
||||
.m_axis_data_tdata(m_axis_data_tdata) // output wire [15 : 0] m_axis_data_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file GaussFir_12m.v when simulating
|
||||
// the core, GaussFir_12m. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
-- IP Revision: 12
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT GaussFir_12m
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : GaussFir_12m
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file GaussFir_12m.vhd when simulating
|
||||
-- the core, GaussFir_12m. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+2400
File diff suppressed because it is too large
Load Diff
+3344
File diff suppressed because it is too large
Load Diff
+26
@@ -0,0 +1,26 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:48 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/GaussFir_12m_synth_1/GaussFir_12m_stub.v
|
||||
// Design : GaussFir_12m
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "fir_compiler_v7_2_12,Vivado 2019.1.3" *)
|
||||
module GaussFir_12m(aclk, s_axis_data_tvalid, s_axis_data_tready,
|
||||
s_axis_data_tdata, m_axis_data_tvalid, m_axis_data_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_data_tvalid,s_axis_data_tready,s_axis_data_tdata[7:0],m_axis_data_tvalid,m_axis_data_tdata[15:0]" */;
|
||||
input aclk;
|
||||
input s_axis_data_tvalid;
|
||||
output s_axis_data_tready;
|
||||
input [7:0]s_axis_data_tdata;
|
||||
output m_axis_data_tvalid;
|
||||
output [15:0]m_axis_data_tdata;
|
||||
endmodule
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:48 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/GaussFir_12m_synth_1/GaussFir_12m_stub.vhdl
|
||||
-- Design : GaussFir_12m
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity GaussFir_12m is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_data_tvalid : in STD_LOGIC;
|
||||
s_axis_data_tready : out STD_LOGIC;
|
||||
s_axis_data_tdata : in STD_LOGIC_VECTOR ( 7 downto 0 );
|
||||
m_axis_data_tvalid : out STD_LOGIC;
|
||||
m_axis_data_tdata : out STD_LOGIC_VECTOR ( 15 downto 0 )
|
||||
);
|
||||
|
||||
end GaussFir_12m;
|
||||
|
||||
architecture stub of GaussFir_12m is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "aclk,s_axis_data_tvalid,s_axis_data_tready,s_axis_data_tdata[7:0],m_axis_data_tvalid,m_axis_data_tdata[15:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "fir_compiler_v7_2_12,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+261
@@ -0,0 +1,261 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the FIR Compiler IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the FIR Compiler product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated FIR Compiler core
|
||||
-- instance named "GaussFir_12m".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity tb_GaussFir_12m is
|
||||
end tb_GaussFir_12m;
|
||||
|
||||
architecture tb of tb_GaussFir_12m is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General signals
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Data slave channel signals
|
||||
signal s_axis_data_tvalid : std_logic := '0'; -- payload is valid
|
||||
signal s_axis_data_tready : std_logic := '1'; -- slave is ready
|
||||
signal s_axis_data_tdata : std_logic_vector(7 downto 0) := (others => '0'); -- data payload
|
||||
|
||||
-- Data master channel signals
|
||||
signal m_axis_data_tvalid : std_logic := '0'; -- payload is valid
|
||||
signal m_axis_data_tdata : std_logic_vector(15 downto 0) := (others => '0'); -- data payload
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA and TUSER fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Data slave channel alias signals
|
||||
signal s_axis_data_tdata_data : std_logic_vector(1 downto 0) := (others => '0');
|
||||
|
||||
-- Data master channel alias signals
|
||||
signal m_axis_data_tdata_data : std_logic_vector(14 downto 0) := (others => '0');
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.GaussFir_12m
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
|
||||
-- Procedure to drive a number of input samples with specific data
|
||||
-- data is the data value to drive on the tdata signal
|
||||
-- samples is the number of zero-data input samples to drive
|
||||
procedure drive_data ( data : std_logic_vector(7 downto 0);
|
||||
samples : natural := 1 ) is
|
||||
variable ip_count : integer := 0;
|
||||
begin
|
||||
ip_count := 0;
|
||||
loop
|
||||
s_axis_data_tvalid <= '1';
|
||||
s_axis_data_tdata <= data;
|
||||
loop
|
||||
wait until rising_edge(aclk);
|
||||
exit when s_axis_data_tready = '1';
|
||||
end loop;
|
||||
ip_count := ip_count + 1;
|
||||
wait for T_HOLD;
|
||||
-- Input rate is 1 input each 4 clock cycles: drive valid inputs at this rate
|
||||
s_axis_data_tvalid <= '0';
|
||||
wait for CLOCK_PERIOD * 3;
|
||||
exit when ip_count >= samples;
|
||||
end loop;
|
||||
end procedure drive_data;
|
||||
|
||||
-- Procedure to drive a number of zero-data input samples
|
||||
-- samples is the number of zero-data input samples to drive
|
||||
procedure drive_zeros ( samples : natural := 1 ) is
|
||||
begin
|
||||
drive_data((others => '0'), samples);
|
||||
end procedure drive_zeros;
|
||||
|
||||
-- Procedure to drive an impulse and let the impulse response emerge on the data master channel
|
||||
-- samples is the number of input samples to drive; default is enough for impulse response output to emerge
|
||||
procedure drive_impulse ( samples : natural := 27 ) is
|
||||
variable impulse : std_logic_vector(7 downto 0);
|
||||
begin
|
||||
impulse := (others => '0'); -- initialize unused bits to zero
|
||||
impulse(1 downto 0) := "01";
|
||||
drive_data(impulse);
|
||||
if samples > 1 then
|
||||
drive_zeros(samples-1);
|
||||
end if;
|
||||
end procedure drive_impulse;
|
||||
|
||||
begin
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive a single impulse and let the impulse response emerge
|
||||
drive_impulse;
|
||||
|
||||
-- Drive another impulse, during which demonstrate use and effect of AXI handshaking signals
|
||||
drive_impulse(2); -- start of impulse; data is now zero
|
||||
s_axis_data_tvalid <= '0';
|
||||
wait for CLOCK_PERIOD * 20; -- provide no data for 5 input samples worth
|
||||
drive_zeros(2); -- 2 normal input samples
|
||||
s_axis_data_tvalid <= '1';
|
||||
wait for CLOCK_PERIOD * 20; -- provide data as fast as the core can accept it for 5 input samples worth
|
||||
drive_zeros(18); -- back to normal operation
|
||||
|
||||
-- End of test
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the master DATA channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_data_tvalid = '1' then
|
||||
if is_x(m_axis_data_tdata) then
|
||||
report "ERROR: m_axis_data_tdata is invalid when m_axis_data_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA / TUSER fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Data slave channel alias signals
|
||||
s_axis_data_tdata_data <= s_axis_data_tdata(1 downto 0);
|
||||
|
||||
-- Data master channel alias signals: update these only when they are valid
|
||||
m_axis_data_tdata_data <= m_axis_data_tdata(14 downto 0) when m_axis_data_tvalid = '1';
|
||||
|
||||
end tb;
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
-- IP Revision: 12
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY fir_compiler_v7_2_12;
|
||||
USE fir_compiler_v7_2_12.fir_compiler_v7_2_12;
|
||||
|
||||
ENTITY GaussFir_12m IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END GaussFir_12m;
|
||||
|
||||
ARCHITECTURE GaussFir_12m_arch OF GaussFir_12m IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF GaussFir_12m_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT fir_compiler_v7_2_12 IS
|
||||
GENERIC (
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_ELABORATION_DIR : STRING;
|
||||
C_COMPONENT_NAME : STRING;
|
||||
C_COEF_FILE : STRING;
|
||||
C_COEF_FILE_LINES : INTEGER;
|
||||
C_FILTER_TYPE : INTEGER;
|
||||
C_INTERP_RATE : INTEGER;
|
||||
C_DECIM_RATE : INTEGER;
|
||||
C_ZERO_PACKING_FACTOR : INTEGER;
|
||||
C_SYMMETRY : INTEGER;
|
||||
C_NUM_FILTS : INTEGER;
|
||||
C_NUM_TAPS : INTEGER;
|
||||
C_NUM_CHANNELS : INTEGER;
|
||||
C_CHANNEL_PATTERN : STRING;
|
||||
C_ROUND_MODE : INTEGER;
|
||||
C_COEF_RELOAD : INTEGER;
|
||||
C_NUM_RELOAD_SLOTS : INTEGER;
|
||||
C_COL_MODE : INTEGER;
|
||||
C_COL_PIPE_LEN : INTEGER;
|
||||
C_COL_CONFIG : STRING;
|
||||
C_OPTIMIZATION : INTEGER;
|
||||
C_DATA_PATH_WIDTHS : STRING;
|
||||
C_DATA_IP_PATH_WIDTHS : STRING;
|
||||
C_DATA_PX_PATH_WIDTHS : STRING;
|
||||
C_DATA_WIDTH : INTEGER;
|
||||
C_COEF_PATH_WIDTHS : STRING;
|
||||
C_COEF_WIDTH : INTEGER;
|
||||
C_DATA_PATH_SRC : STRING;
|
||||
C_COEF_PATH_SRC : STRING;
|
||||
C_PX_PATH_SRC : STRING;
|
||||
C_DATA_PATH_SIGN : STRING;
|
||||
C_COEF_PATH_SIGN : STRING;
|
||||
C_ACCUM_PATH_WIDTHS : STRING;
|
||||
C_OUTPUT_WIDTH : INTEGER;
|
||||
C_OUTPUT_PATH_WIDTHS : STRING;
|
||||
C_ACCUM_OP_PATH_WIDTHS : STRING;
|
||||
C_EXT_MULT_CNFG : STRING;
|
||||
C_DATA_PATH_PSAMP_SRC : STRING;
|
||||
C_OP_PATH_PSAMP_SRC : STRING;
|
||||
C_NUM_MADDS : INTEGER;
|
||||
C_OPT_MADDS : STRING;
|
||||
C_OVERSAMPLING_RATE : INTEGER;
|
||||
C_INPUT_RATE : INTEGER;
|
||||
C_OUTPUT_RATE : INTEGER;
|
||||
C_DATA_MEMTYPE : INTEGER;
|
||||
C_COEF_MEMTYPE : INTEGER;
|
||||
C_IPBUFF_MEMTYPE : INTEGER;
|
||||
C_OPBUFF_MEMTYPE : INTEGER;
|
||||
C_DATAPATH_MEMTYPE : INTEGER;
|
||||
C_MEM_ARRANGEMENT : INTEGER;
|
||||
C_DATA_MEM_PACKING : INTEGER;
|
||||
C_COEF_MEM_PACKING : INTEGER;
|
||||
C_FILTS_PACKED : INTEGER;
|
||||
C_LATENCY : INTEGER;
|
||||
C_HAS_ARESETn : INTEGER;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_DATA_HAS_TLAST : INTEGER;
|
||||
C_S_DATA_HAS_FIFO : INTEGER;
|
||||
C_S_DATA_HAS_TUSER : INTEGER;
|
||||
C_S_DATA_TDATA_WIDTH : INTEGER;
|
||||
C_S_DATA_TUSER_WIDTH : INTEGER;
|
||||
C_M_DATA_HAS_TREADY : INTEGER;
|
||||
C_M_DATA_HAS_TUSER : INTEGER;
|
||||
C_M_DATA_TDATA_WIDTH : INTEGER;
|
||||
C_M_DATA_TUSER_WIDTH : INTEGER;
|
||||
C_HAS_CONFIG_CHANNEL : INTEGER;
|
||||
C_CONFIG_SYNC_MODE : INTEGER;
|
||||
C_CONFIG_PACKET_SIZE : INTEGER;
|
||||
C_CONFIG_TDATA_WIDTH : INTEGER;
|
||||
C_RELOAD_TDATA_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aresetn : IN STD_LOGIC;
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tlast : IN STD_LOGIC;
|
||||
s_axis_data_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
s_axis_config_tvalid : IN STD_LOGIC;
|
||||
s_axis_config_tready : OUT STD_LOGIC;
|
||||
s_axis_config_tlast : IN STD_LOGIC;
|
||||
s_axis_config_tdata : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_reload_tvalid : IN STD_LOGIC;
|
||||
s_axis_reload_tready : OUT STD_LOGIC;
|
||||
s_axis_reload_tlast : IN STD_LOGIC;
|
||||
s_axis_reload_tdata : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tready : IN STD_LOGIC;
|
||||
m_axis_data_tlast : OUT STD_LOGIC;
|
||||
m_axis_data_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
event_s_data_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_data_tlast_unexpected : OUT STD_LOGIC;
|
||||
event_s_data_chanid_incorrect : OUT STD_LOGIC;
|
||||
event_s_config_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_config_tlast_unexpected : OUT STD_LOGIC;
|
||||
event_s_reload_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_reload_tlast_unexpected : OUT STD_LOGIC
|
||||
);
|
||||
END COMPONENT fir_compiler_v7_2_12;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_data_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DATA TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_data_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DATA, TDATA_NUM_BYTES 2, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_data_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DATA TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TDATA";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tready: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TREADY";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_data_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_DATA, TDATA_NUM_BYTES 1, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 1, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 100000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : fir_compiler_v7_2_12
|
||||
GENERIC MAP (
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_ELABORATION_DIR => "./",
|
||||
C_COMPONENT_NAME => "GaussFir_12m",
|
||||
C_COEF_FILE => "GaussFir_12m.mif",
|
||||
C_COEF_FILE_LINES => 20,
|
||||
C_FILTER_TYPE => 2,
|
||||
C_INTERP_RATE => 4,
|
||||
C_DECIM_RATE => 1,
|
||||
C_ZERO_PACKING_FACTOR => 1,
|
||||
C_SYMMETRY => 0,
|
||||
C_NUM_FILTS => 1,
|
||||
C_NUM_TAPS => 17,
|
||||
C_NUM_CHANNELS => 1,
|
||||
C_CHANNEL_PATTERN => "fixed",
|
||||
C_ROUND_MODE => 0,
|
||||
C_COEF_RELOAD => 0,
|
||||
C_NUM_RELOAD_SLOTS => 1,
|
||||
C_COL_MODE => 1,
|
||||
C_COL_PIPE_LEN => 4,
|
||||
C_COL_CONFIG => "5",
|
||||
C_OPTIMIZATION => 0,
|
||||
C_DATA_PATH_WIDTHS => "2",
|
||||
C_DATA_IP_PATH_WIDTHS => "2",
|
||||
C_DATA_PX_PATH_WIDTHS => "2",
|
||||
C_DATA_WIDTH => 2,
|
||||
C_COEF_PATH_WIDTHS => "14",
|
||||
C_COEF_WIDTH => 14,
|
||||
C_DATA_PATH_SRC => "0",
|
||||
C_COEF_PATH_SRC => "0",
|
||||
C_PX_PATH_SRC => "0",
|
||||
C_DATA_PATH_SIGN => "0",
|
||||
C_COEF_PATH_SIGN => "1",
|
||||
C_ACCUM_PATH_WIDTHS => "15",
|
||||
C_OUTPUT_WIDTH => 15,
|
||||
C_OUTPUT_PATH_WIDTHS => "15",
|
||||
C_ACCUM_OP_PATH_WIDTHS => "15",
|
||||
C_EXT_MULT_CNFG => "none",
|
||||
C_DATA_PATH_PSAMP_SRC => "0",
|
||||
C_OP_PATH_PSAMP_SRC => "0",
|
||||
C_NUM_MADDS => 5,
|
||||
C_OPT_MADDS => "none",
|
||||
C_OVERSAMPLING_RATE => 1,
|
||||
C_INPUT_RATE => 4,
|
||||
C_OUTPUT_RATE => 1,
|
||||
C_DATA_MEMTYPE => 0,
|
||||
C_COEF_MEMTYPE => 2,
|
||||
C_IPBUFF_MEMTYPE => 0,
|
||||
C_OPBUFF_MEMTYPE => 0,
|
||||
C_DATAPATH_MEMTYPE => 0,
|
||||
C_MEM_ARRANGEMENT => 2,
|
||||
C_DATA_MEM_PACKING => 0,
|
||||
C_COEF_MEM_PACKING => 0,
|
||||
C_FILTS_PACKED => 0,
|
||||
C_LATENCY => 11,
|
||||
C_HAS_ARESETn => 0,
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_DATA_HAS_TLAST => 0,
|
||||
C_S_DATA_HAS_FIFO => 0,
|
||||
C_S_DATA_HAS_TUSER => 0,
|
||||
C_S_DATA_TDATA_WIDTH => 8,
|
||||
C_S_DATA_TUSER_WIDTH => 1,
|
||||
C_M_DATA_HAS_TREADY => 0,
|
||||
C_M_DATA_HAS_TUSER => 0,
|
||||
C_M_DATA_TDATA_WIDTH => 16,
|
||||
C_M_DATA_TUSER_WIDTH => 1,
|
||||
C_HAS_CONFIG_CHANNEL => 0,
|
||||
C_CONFIG_SYNC_MODE => 0,
|
||||
C_CONFIG_PACKET_SIZE => 0,
|
||||
C_CONFIG_TDATA_WIDTH => 1,
|
||||
C_RELOAD_TDATA_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aresetn => '1',
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tlast => '0',
|
||||
s_axis_data_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
s_axis_config_tvalid => '0',
|
||||
s_axis_config_tlast => '0',
|
||||
s_axis_config_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_reload_tvalid => '0',
|
||||
s_axis_reload_tlast => '0',
|
||||
s_axis_reload_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tready => '1',
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
END GaussFir_12m_arch;
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
// IP Revision: 12
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
GaussFir_1mp5 your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_data_tvalid(s_axis_data_tvalid), // input wire s_axis_data_tvalid
|
||||
.s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready
|
||||
.s_axis_data_tdata(s_axis_data_tdata), // input wire [7 : 0] s_axis_data_tdata
|
||||
.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid
|
||||
.m_axis_data_tdata(m_axis_data_tdata) // output wire [15 : 0] m_axis_data_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file GaussFir_1mp5.v when simulating
|
||||
// the core, GaussFir_1mp5. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
-- IP Revision: 12
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT GaussFir_1mp5
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : GaussFir_1mp5
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file GaussFir_1mp5.vhd when simulating
|
||||
-- the core, GaussFir_1mp5. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+2607
File diff suppressed because it is too large
Load Diff
+3562
File diff suppressed because it is too large
Load Diff
+26
@@ -0,0 +1,26 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:47 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/GaussFir_1mp5_synth_1/GaussFir_1mp5_stub.v
|
||||
// Design : GaussFir_1mp5
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "fir_compiler_v7_2_12,Vivado 2019.1.3" *)
|
||||
module GaussFir_1mp5(aclk, s_axis_data_tvalid, s_axis_data_tready,
|
||||
s_axis_data_tdata, m_axis_data_tvalid, m_axis_data_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_data_tvalid,s_axis_data_tready,s_axis_data_tdata[7:0],m_axis_data_tvalid,m_axis_data_tdata[15:0]" */;
|
||||
input aclk;
|
||||
input s_axis_data_tvalid;
|
||||
output s_axis_data_tready;
|
||||
input [7:0]s_axis_data_tdata;
|
||||
output m_axis_data_tvalid;
|
||||
output [15:0]m_axis_data_tdata;
|
||||
endmodule
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:47 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/GaussFir_1mp5_synth_1/GaussFir_1mp5_stub.vhdl
|
||||
-- Design : GaussFir_1mp5
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity GaussFir_1mp5 is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_data_tvalid : in STD_LOGIC;
|
||||
s_axis_data_tready : out STD_LOGIC;
|
||||
s_axis_data_tdata : in STD_LOGIC_VECTOR ( 7 downto 0 );
|
||||
m_axis_data_tvalid : out STD_LOGIC;
|
||||
m_axis_data_tdata : out STD_LOGIC_VECTOR ( 15 downto 0 )
|
||||
);
|
||||
|
||||
end GaussFir_1mp5;
|
||||
|
||||
architecture stub of GaussFir_1mp5 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "aclk,s_axis_data_tvalid,s_axis_data_tready,s_axis_data_tdata[7:0],m_axis_data_tvalid,m_axis_data_tdata[15:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "fir_compiler_v7_2_12,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+261
@@ -0,0 +1,261 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the FIR Compiler IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the FIR Compiler product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated FIR Compiler core
|
||||
-- instance named "GaussFir_1mp5".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity tb_GaussFir_1mp5 is
|
||||
end tb_GaussFir_1mp5;
|
||||
|
||||
architecture tb of tb_GaussFir_1mp5 is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General signals
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Data slave channel signals
|
||||
signal s_axis_data_tvalid : std_logic := '0'; -- payload is valid
|
||||
signal s_axis_data_tready : std_logic := '1'; -- slave is ready
|
||||
signal s_axis_data_tdata : std_logic_vector(7 downto 0) := (others => '0'); -- data payload
|
||||
|
||||
-- Data master channel signals
|
||||
signal m_axis_data_tvalid : std_logic := '0'; -- payload is valid
|
||||
signal m_axis_data_tdata : std_logic_vector(15 downto 0) := (others => '0'); -- data payload
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA and TUSER fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Data slave channel alias signals
|
||||
signal s_axis_data_tdata_data : std_logic_vector(1 downto 0) := (others => '0');
|
||||
|
||||
-- Data master channel alias signals
|
||||
signal m_axis_data_tdata_data : std_logic_vector(12 downto 0) := (others => '0');
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.GaussFir_1mp5
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
|
||||
-- Procedure to drive a number of input samples with specific data
|
||||
-- data is the data value to drive on the tdata signal
|
||||
-- samples is the number of zero-data input samples to drive
|
||||
procedure drive_data ( data : std_logic_vector(7 downto 0);
|
||||
samples : natural := 1 ) is
|
||||
variable ip_count : integer := 0;
|
||||
begin
|
||||
ip_count := 0;
|
||||
loop
|
||||
s_axis_data_tvalid <= '1';
|
||||
s_axis_data_tdata <= data;
|
||||
loop
|
||||
wait until rising_edge(aclk);
|
||||
exit when s_axis_data_tready = '1';
|
||||
end loop;
|
||||
ip_count := ip_count + 1;
|
||||
wait for T_HOLD;
|
||||
-- Input rate is 1 input each 32 clock cycles: drive valid inputs at this rate
|
||||
s_axis_data_tvalid <= '0';
|
||||
wait for CLOCK_PERIOD * 31;
|
||||
exit when ip_count >= samples;
|
||||
end loop;
|
||||
end procedure drive_data;
|
||||
|
||||
-- Procedure to drive a number of zero-data input samples
|
||||
-- samples is the number of zero-data input samples to drive
|
||||
procedure drive_zeros ( samples : natural := 1 ) is
|
||||
begin
|
||||
drive_data((others => '0'), samples);
|
||||
end procedure drive_zeros;
|
||||
|
||||
-- Procedure to drive an impulse and let the impulse response emerge on the data master channel
|
||||
-- samples is the number of input samples to drive; default is enough for impulse response output to emerge
|
||||
procedure drive_impulse ( samples : natural := 165 ) is
|
||||
variable impulse : std_logic_vector(7 downto 0);
|
||||
begin
|
||||
impulse := (others => '0'); -- initialize unused bits to zero
|
||||
impulse(1 downto 0) := "01";
|
||||
drive_data(impulse);
|
||||
if samples > 1 then
|
||||
drive_zeros(samples-1);
|
||||
end if;
|
||||
end procedure drive_impulse;
|
||||
|
||||
begin
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive a single impulse and let the impulse response emerge
|
||||
drive_impulse;
|
||||
|
||||
-- Drive another impulse, during which demonstrate use and effect of AXI handshaking signals
|
||||
drive_impulse(2); -- start of impulse; data is now zero
|
||||
s_axis_data_tvalid <= '0';
|
||||
wait for CLOCK_PERIOD * 160; -- provide no data for 5 input samples worth
|
||||
drive_zeros(2); -- 2 normal input samples
|
||||
s_axis_data_tvalid <= '1';
|
||||
wait for CLOCK_PERIOD * 160; -- provide data as fast as the core can accept it for 5 input samples worth
|
||||
drive_zeros(156); -- back to normal operation
|
||||
|
||||
-- End of test
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the master DATA channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_data_tvalid = '1' then
|
||||
if is_x(m_axis_data_tdata) then
|
||||
report "ERROR: m_axis_data_tdata is invalid when m_axis_data_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA / TUSER fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Data slave channel alias signals
|
||||
s_axis_data_tdata_data <= s_axis_data_tdata(1 downto 0);
|
||||
|
||||
-- Data master channel alias signals: update these only when they are valid
|
||||
m_axis_data_tdata_data <= m_axis_data_tdata(12 downto 0) when m_axis_data_tvalid = '1';
|
||||
|
||||
end tb;
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:fir_compiler:7.2
|
||||
-- IP Revision: 12
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY fir_compiler_v7_2_12;
|
||||
USE fir_compiler_v7_2_12.fir_compiler_v7_2_12;
|
||||
|
||||
ENTITY GaussFir_1mp5 IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END GaussFir_1mp5;
|
||||
|
||||
ARCHITECTURE GaussFir_1mp5_arch OF GaussFir_1mp5 IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF GaussFir_1mp5_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT fir_compiler_v7_2_12 IS
|
||||
GENERIC (
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_ELABORATION_DIR : STRING;
|
||||
C_COMPONENT_NAME : STRING;
|
||||
C_COEF_FILE : STRING;
|
||||
C_COEF_FILE_LINES : INTEGER;
|
||||
C_FILTER_TYPE : INTEGER;
|
||||
C_INTERP_RATE : INTEGER;
|
||||
C_DECIM_RATE : INTEGER;
|
||||
C_ZERO_PACKING_FACTOR : INTEGER;
|
||||
C_SYMMETRY : INTEGER;
|
||||
C_NUM_FILTS : INTEGER;
|
||||
C_NUM_TAPS : INTEGER;
|
||||
C_NUM_CHANNELS : INTEGER;
|
||||
C_CHANNEL_PATTERN : STRING;
|
||||
C_ROUND_MODE : INTEGER;
|
||||
C_COEF_RELOAD : INTEGER;
|
||||
C_NUM_RELOAD_SLOTS : INTEGER;
|
||||
C_COL_MODE : INTEGER;
|
||||
C_COL_PIPE_LEN : INTEGER;
|
||||
C_COL_CONFIG : STRING;
|
||||
C_OPTIMIZATION : INTEGER;
|
||||
C_DATA_PATH_WIDTHS : STRING;
|
||||
C_DATA_IP_PATH_WIDTHS : STRING;
|
||||
C_DATA_PX_PATH_WIDTHS : STRING;
|
||||
C_DATA_WIDTH : INTEGER;
|
||||
C_COEF_PATH_WIDTHS : STRING;
|
||||
C_COEF_WIDTH : INTEGER;
|
||||
C_DATA_PATH_SRC : STRING;
|
||||
C_COEF_PATH_SRC : STRING;
|
||||
C_PX_PATH_SRC : STRING;
|
||||
C_DATA_PATH_SIGN : STRING;
|
||||
C_COEF_PATH_SIGN : STRING;
|
||||
C_ACCUM_PATH_WIDTHS : STRING;
|
||||
C_OUTPUT_WIDTH : INTEGER;
|
||||
C_OUTPUT_PATH_WIDTHS : STRING;
|
||||
C_ACCUM_OP_PATH_WIDTHS : STRING;
|
||||
C_EXT_MULT_CNFG : STRING;
|
||||
C_DATA_PATH_PSAMP_SRC : STRING;
|
||||
C_OP_PATH_PSAMP_SRC : STRING;
|
||||
C_NUM_MADDS : INTEGER;
|
||||
C_OPT_MADDS : STRING;
|
||||
C_OVERSAMPLING_RATE : INTEGER;
|
||||
C_INPUT_RATE : INTEGER;
|
||||
C_OUTPUT_RATE : INTEGER;
|
||||
C_DATA_MEMTYPE : INTEGER;
|
||||
C_COEF_MEMTYPE : INTEGER;
|
||||
C_IPBUFF_MEMTYPE : INTEGER;
|
||||
C_OPBUFF_MEMTYPE : INTEGER;
|
||||
C_DATAPATH_MEMTYPE : INTEGER;
|
||||
C_MEM_ARRANGEMENT : INTEGER;
|
||||
C_DATA_MEM_PACKING : INTEGER;
|
||||
C_COEF_MEM_PACKING : INTEGER;
|
||||
C_FILTS_PACKED : INTEGER;
|
||||
C_LATENCY : INTEGER;
|
||||
C_HAS_ARESETn : INTEGER;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_DATA_HAS_TLAST : INTEGER;
|
||||
C_S_DATA_HAS_FIFO : INTEGER;
|
||||
C_S_DATA_HAS_TUSER : INTEGER;
|
||||
C_S_DATA_TDATA_WIDTH : INTEGER;
|
||||
C_S_DATA_TUSER_WIDTH : INTEGER;
|
||||
C_M_DATA_HAS_TREADY : INTEGER;
|
||||
C_M_DATA_HAS_TUSER : INTEGER;
|
||||
C_M_DATA_TDATA_WIDTH : INTEGER;
|
||||
C_M_DATA_TUSER_WIDTH : INTEGER;
|
||||
C_HAS_CONFIG_CHANNEL : INTEGER;
|
||||
C_CONFIG_SYNC_MODE : INTEGER;
|
||||
C_CONFIG_PACKET_SIZE : INTEGER;
|
||||
C_CONFIG_TDATA_WIDTH : INTEGER;
|
||||
C_RELOAD_TDATA_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aresetn : IN STD_LOGIC;
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
s_axis_data_tvalid : IN STD_LOGIC;
|
||||
s_axis_data_tready : OUT STD_LOGIC;
|
||||
s_axis_data_tlast : IN STD_LOGIC;
|
||||
s_axis_data_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_data_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
s_axis_config_tvalid : IN STD_LOGIC;
|
||||
s_axis_config_tready : OUT STD_LOGIC;
|
||||
s_axis_config_tlast : IN STD_LOGIC;
|
||||
s_axis_config_tdata : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_reload_tvalid : IN STD_LOGIC;
|
||||
s_axis_reload_tready : OUT STD_LOGIC;
|
||||
s_axis_reload_tlast : IN STD_LOGIC;
|
||||
s_axis_reload_tdata : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_data_tvalid : OUT STD_LOGIC;
|
||||
m_axis_data_tready : IN STD_LOGIC;
|
||||
m_axis_data_tlast : OUT STD_LOGIC;
|
||||
m_axis_data_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
event_s_data_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_data_tlast_unexpected : OUT STD_LOGIC;
|
||||
event_s_data_chanid_incorrect : OUT STD_LOGIC;
|
||||
event_s_config_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_config_tlast_unexpected : OUT STD_LOGIC;
|
||||
event_s_reload_tlast_missing : OUT STD_LOGIC;
|
||||
event_s_reload_tlast_unexpected : OUT STD_LOGIC
|
||||
);
|
||||
END COMPONENT fir_compiler_v7_2_12;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_data_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DATA TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_data_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DATA, TDATA_NUM_BYTES 2, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_data_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DATA TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TDATA";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tready: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TREADY";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_data_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_DATA, TDATA_NUM_BYTES 1, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 1, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_data_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_DATA TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 100000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : fir_compiler_v7_2_12
|
||||
GENERIC MAP (
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_ELABORATION_DIR => "./",
|
||||
C_COMPONENT_NAME => "GaussFir_1mp5",
|
||||
C_COEF_FILE => "GaussFir_1mp5.mif",
|
||||
C_COEF_FILE_LINES => 160,
|
||||
C_FILTER_TYPE => 2,
|
||||
C_INTERP_RATE => 32,
|
||||
C_DECIM_RATE => 1,
|
||||
C_ZERO_PACKING_FACTOR => 1,
|
||||
C_SYMMETRY => 0,
|
||||
C_NUM_FILTS => 1,
|
||||
C_NUM_TAPS => 129,
|
||||
C_NUM_CHANNELS => 1,
|
||||
C_CHANNEL_PATTERN => "fixed",
|
||||
C_ROUND_MODE => 0,
|
||||
C_COEF_RELOAD => 0,
|
||||
C_NUM_RELOAD_SLOTS => 1,
|
||||
C_COL_MODE => 1,
|
||||
C_COL_PIPE_LEN => 4,
|
||||
C_COL_CONFIG => "5",
|
||||
C_OPTIMIZATION => 0,
|
||||
C_DATA_PATH_WIDTHS => "2",
|
||||
C_DATA_IP_PATH_WIDTHS => "2",
|
||||
C_DATA_PX_PATH_WIDTHS => "2",
|
||||
C_DATA_WIDTH => 2,
|
||||
C_COEF_PATH_WIDTHS => "14",
|
||||
C_COEF_WIDTH => 14,
|
||||
C_DATA_PATH_SRC => "0",
|
||||
C_COEF_PATH_SRC => "0",
|
||||
C_PX_PATH_SRC => "0",
|
||||
C_DATA_PATH_SIGN => "0",
|
||||
C_COEF_PATH_SIGN => "1",
|
||||
C_ACCUM_PATH_WIDTHS => "13",
|
||||
C_OUTPUT_WIDTH => 13,
|
||||
C_OUTPUT_PATH_WIDTHS => "13",
|
||||
C_ACCUM_OP_PATH_WIDTHS => "13",
|
||||
C_EXT_MULT_CNFG => "none",
|
||||
C_DATA_PATH_PSAMP_SRC => "0",
|
||||
C_OP_PATH_PSAMP_SRC => "0",
|
||||
C_NUM_MADDS => 5,
|
||||
C_OPT_MADDS => "none",
|
||||
C_OVERSAMPLING_RATE => 1,
|
||||
C_INPUT_RATE => 32,
|
||||
C_OUTPUT_RATE => 1,
|
||||
C_DATA_MEMTYPE => 0,
|
||||
C_COEF_MEMTYPE => 2,
|
||||
C_IPBUFF_MEMTYPE => 0,
|
||||
C_OPBUFF_MEMTYPE => 0,
|
||||
C_DATAPATH_MEMTYPE => 0,
|
||||
C_MEM_ARRANGEMENT => 2,
|
||||
C_DATA_MEM_PACKING => 0,
|
||||
C_COEF_MEM_PACKING => 0,
|
||||
C_FILTS_PACKED => 0,
|
||||
C_LATENCY => 11,
|
||||
C_HAS_ARESETn => 0,
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_DATA_HAS_TLAST => 0,
|
||||
C_S_DATA_HAS_FIFO => 0,
|
||||
C_S_DATA_HAS_TUSER => 0,
|
||||
C_S_DATA_TDATA_WIDTH => 8,
|
||||
C_S_DATA_TUSER_WIDTH => 1,
|
||||
C_M_DATA_HAS_TREADY => 0,
|
||||
C_M_DATA_HAS_TUSER => 0,
|
||||
C_M_DATA_TDATA_WIDTH => 16,
|
||||
C_M_DATA_TUSER_WIDTH => 1,
|
||||
C_HAS_CONFIG_CHANNEL => 0,
|
||||
C_CONFIG_SYNC_MODE => 0,
|
||||
C_CONFIG_PACKET_SIZE => 0,
|
||||
C_CONFIG_TDATA_WIDTH => 1,
|
||||
C_RELOAD_TDATA_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aresetn => '1',
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
s_axis_data_tvalid => s_axis_data_tvalid,
|
||||
s_axis_data_tready => s_axis_data_tready,
|
||||
s_axis_data_tlast => '0',
|
||||
s_axis_data_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_data_tdata => s_axis_data_tdata,
|
||||
s_axis_config_tvalid => '0',
|
||||
s_axis_config_tlast => '0',
|
||||
s_axis_config_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_reload_tvalid => '0',
|
||||
s_axis_reload_tlast => '0',
|
||||
s_axis_reload_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
m_axis_data_tvalid => m_axis_data_tvalid,
|
||||
m_axis_data_tready => '1',
|
||||
m_axis_data_tdata => m_axis_data_tdata
|
||||
);
|
||||
END GaussFir_1mp5_arch;
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
|
||||
// file: ad9361_clk_gen.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____48.000______0.000______50.0______139.139_____89.958
|
||||
// clk_out2____96.000______0.000______50.0______120.859_____89.958
|
||||
// clk_out3___144.000______0.000______50.0______112.241_____89.958
|
||||
// clk_out4___192.000______0.000______50.0______106.524_____89.958
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
(* CORE_GENERATION_INFO = "ad9361_clk_gen,clk_wiz_v6_0_3_0_0,{component_name=ad9361_clk_gen,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.417,clkin2_period=10.000,use_power_down=false,use_reset=false,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *)
|
||||
|
||||
module ad9361_clk_gen
|
||||
(
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
output clk_out2,
|
||||
output clk_out3,
|
||||
output clk_out4,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
// Clock in ports
|
||||
input clk_in1
|
||||
);
|
||||
|
||||
ad9361_clk_gen_clk_wiz inst
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1),
|
||||
.clk_out2(clk_out2),
|
||||
.clk_out3(clk_out3),
|
||||
.clk_out4(clk_out4),
|
||||
// Status and control signals
|
||||
.locked(locked),
|
||||
// Clock in ports
|
||||
.clk_in1(clk_in1)
|
||||
);
|
||||
|
||||
endmodule
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____48.000______0.000______50.0______139.139_____89.958
|
||||
// clk_out2____96.000______0.000______50.0______120.859_____89.958
|
||||
// clk_out3___144.000______0.000______50.0______112.241_____89.958
|
||||
// clk_out4___192.000______0.000______50.0______106.524_____89.958
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
|
||||
ad9361_clk_gen instance_name
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1), // output clk_out1
|
||||
.clk_out2(clk_out2), // output clk_out2
|
||||
.clk_out3(clk_out3), // output clk_out3
|
||||
.clk_out4(clk_out4), // output clk_out4
|
||||
// Status and control signals
|
||||
.locked(locked), // output locked
|
||||
// Clock in ports
|
||||
.clk_in1(clk_in1)); // input clk_in1
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
+228
@@ -0,0 +1,228 @@
|
||||
|
||||
// file: ad9361_clk_gen.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____48.000______0.000______50.0______139.139_____89.958
|
||||
// clk_out2____96.000______0.000______50.0______120.859_____89.958
|
||||
// clk_out3___144.000______0.000______50.0______112.241_____89.958
|
||||
// clk_out4___192.000______0.000______50.0______106.524_____89.958
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
module ad9361_clk_gen_clk_wiz
|
||||
|
||||
(// Clock in ports
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
output clk_out2,
|
||||
output clk_out3,
|
||||
output clk_out4,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
input clk_in1
|
||||
);
|
||||
// Input buffering
|
||||
//------------------------------------
|
||||
wire clk_in1_ad9361_clk_gen;
|
||||
wire clk_in2_ad9361_clk_gen;
|
||||
IBUF clkin1_ibufg
|
||||
(.O (clk_in1_ad9361_clk_gen),
|
||||
.I (clk_in1));
|
||||
|
||||
|
||||
|
||||
|
||||
// Clocking PRIMITIVE
|
||||
//------------------------------------
|
||||
|
||||
// Instantiation of the MMCM PRIMITIVE
|
||||
// * Unused inputs are tied off
|
||||
// * Unused outputs are labeled unused
|
||||
|
||||
wire clk_out1_ad9361_clk_gen;
|
||||
wire clk_out2_ad9361_clk_gen;
|
||||
wire clk_out3_ad9361_clk_gen;
|
||||
wire clk_out4_ad9361_clk_gen;
|
||||
wire clk_out5_ad9361_clk_gen;
|
||||
wire clk_out6_ad9361_clk_gen;
|
||||
wire clk_out7_ad9361_clk_gen;
|
||||
|
||||
wire [15:0] do_unused;
|
||||
wire drdy_unused;
|
||||
wire psdone_unused;
|
||||
wire locked_int;
|
||||
wire clkfbout_ad9361_clk_gen;
|
||||
wire clkfbout_buf_ad9361_clk_gen;
|
||||
wire clkfboutb_unused;
|
||||
wire clkout0b_unused;
|
||||
wire clkout1b_unused;
|
||||
wire clkout2b_unused;
|
||||
wire clkout3b_unused;
|
||||
wire clkout4_unused;
|
||||
wire clkout5_unused;
|
||||
wire clkout6_unused;
|
||||
wire clkfbstopped_unused;
|
||||
wire clkinstopped_unused;
|
||||
|
||||
MMCME2_ADV
|
||||
#(.BANDWIDTH ("OPTIMIZED"),
|
||||
.CLKOUT4_CASCADE ("FALSE"),
|
||||
.COMPENSATION ("ZHOLD"),
|
||||
.STARTUP_WAIT ("FALSE"),
|
||||
.DIVCLK_DIVIDE (1),
|
||||
.CLKFBOUT_MULT_F (12.000),
|
||||
.CLKFBOUT_PHASE (0.000),
|
||||
.CLKFBOUT_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT0_DIVIDE_F (24.000),
|
||||
.CLKOUT0_PHASE (0.000),
|
||||
.CLKOUT0_DUTY_CYCLE (0.500),
|
||||
.CLKOUT0_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT1_DIVIDE (12),
|
||||
.CLKOUT1_PHASE (0.000),
|
||||
.CLKOUT1_DUTY_CYCLE (0.500),
|
||||
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT2_DIVIDE (8),
|
||||
.CLKOUT2_PHASE (0.000),
|
||||
.CLKOUT2_DUTY_CYCLE (0.500),
|
||||
.CLKOUT2_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT3_DIVIDE (6),
|
||||
.CLKOUT3_PHASE (0.000),
|
||||
.CLKOUT3_DUTY_CYCLE (0.500),
|
||||
.CLKOUT3_USE_FINE_PS ("FALSE"),
|
||||
.CLKIN1_PERIOD (10.417))
|
||||
mmcm_adv_inst
|
||||
// Output clocks
|
||||
(
|
||||
.CLKFBOUT (clkfbout_ad9361_clk_gen),
|
||||
.CLKFBOUTB (clkfboutb_unused),
|
||||
.CLKOUT0 (clk_out1_ad9361_clk_gen),
|
||||
.CLKOUT0B (clkout0b_unused),
|
||||
.CLKOUT1 (clk_out2_ad9361_clk_gen),
|
||||
.CLKOUT1B (clkout1b_unused),
|
||||
.CLKOUT2 (clk_out3_ad9361_clk_gen),
|
||||
.CLKOUT2B (clkout2b_unused),
|
||||
.CLKOUT3 (clk_out4_ad9361_clk_gen),
|
||||
.CLKOUT3B (clkout3b_unused),
|
||||
.CLKOUT4 (clkout4_unused),
|
||||
.CLKOUT5 (clkout5_unused),
|
||||
.CLKOUT6 (clkout6_unused),
|
||||
// Input clock control
|
||||
.CLKFBIN (clkfbout_buf_ad9361_clk_gen),
|
||||
.CLKIN1 (clk_in1_ad9361_clk_gen),
|
||||
.CLKIN2 (1'b0),
|
||||
// Tied to always select the primary input clock
|
||||
.CLKINSEL (1'b1),
|
||||
// Ports for dynamic reconfiguration
|
||||
.DADDR (7'h0),
|
||||
.DCLK (1'b0),
|
||||
.DEN (1'b0),
|
||||
.DI (16'h0),
|
||||
.DO (do_unused),
|
||||
.DRDY (drdy_unused),
|
||||
.DWE (1'b0),
|
||||
// Ports for dynamic phase shift
|
||||
.PSCLK (1'b0),
|
||||
.PSEN (1'b0),
|
||||
.PSINCDEC (1'b0),
|
||||
.PSDONE (psdone_unused),
|
||||
// Other control and status signals
|
||||
.LOCKED (locked_int),
|
||||
.CLKINSTOPPED (clkinstopped_unused),
|
||||
.CLKFBSTOPPED (clkfbstopped_unused),
|
||||
.PWRDWN (1'b0),
|
||||
.RST (1'b0));
|
||||
|
||||
assign locked = locked_int;
|
||||
// Clock Monitor clock assigning
|
||||
//--------------------------------------
|
||||
// Output buffering
|
||||
//-----------------------------------
|
||||
|
||||
BUFG clkf_buf
|
||||
(.O (clkfbout_buf_ad9361_clk_gen),
|
||||
.I (clkfbout_ad9361_clk_gen));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BUFG clkout1_buf
|
||||
(.O (clk_out1),
|
||||
.I (clk_out1_ad9361_clk_gen));
|
||||
|
||||
|
||||
BUFG clkout2_buf
|
||||
(.O (clk_out2),
|
||||
.I (clk_out2_ad9361_clk_gen));
|
||||
|
||||
BUFG clkout3_buf
|
||||
(.O (clk_out3),
|
||||
.I (clk_out3_ad9361_clk_gen));
|
||||
|
||||
BUFG clkout4_buf
|
||||
(.O (clk_out4),
|
||||
.I (clk_out4_ad9361_clk_gen));
|
||||
|
||||
|
||||
|
||||
endmodule
|
||||
+271
@@ -0,0 +1,271 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode funcsim
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ad9361_clk_gen_synth_1/ad9361_clk_gen_sim_netlist.v
|
||||
// Design : ad9361_clk_gen
|
||||
// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified
|
||||
// or synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
(* NotValidForBitStream *)
|
||||
module ad9361_clk_gen
|
||||
(clk_out1,
|
||||
clk_out2,
|
||||
clk_out3,
|
||||
clk_out4,
|
||||
locked,
|
||||
clk_in1);
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
|
||||
(* IBUF_LOW_PWR *) wire clk_in1;
|
||||
wire clk_out1;
|
||||
wire clk_out2;
|
||||
wire clk_out3;
|
||||
wire clk_out4;
|
||||
wire locked;
|
||||
|
||||
ad9361_clk_gen_ad9361_clk_gen_clk_wiz inst
|
||||
(.clk_in1(clk_in1),
|
||||
.clk_out1(clk_out1),
|
||||
.clk_out2(clk_out2),
|
||||
.clk_out3(clk_out3),
|
||||
.clk_out4(clk_out4),
|
||||
.locked(locked));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "ad9361_clk_gen_clk_wiz" *)
|
||||
module ad9361_clk_gen_ad9361_clk_gen_clk_wiz
|
||||
(clk_out1,
|
||||
clk_out2,
|
||||
clk_out3,
|
||||
clk_out4,
|
||||
locked,
|
||||
clk_in1);
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
|
||||
wire clk_in1;
|
||||
wire clk_in1_ad9361_clk_gen;
|
||||
wire clk_out1;
|
||||
wire clk_out1_ad9361_clk_gen;
|
||||
wire clk_out2;
|
||||
wire clk_out2_ad9361_clk_gen;
|
||||
wire clk_out3;
|
||||
wire clk_out3_ad9361_clk_gen;
|
||||
wire clk_out4;
|
||||
wire clk_out4_ad9361_clk_gen;
|
||||
wire clkfbout_ad9361_clk_gen;
|
||||
wire clkfbout_buf_ad9361_clk_gen;
|
||||
wire locked;
|
||||
wire NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_DRDY_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_PSDONE_UNCONNECTED;
|
||||
wire [15:0]NLW_mmcm_adv_inst_DO_UNCONNECTED;
|
||||
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkf_buf
|
||||
(.I(clkfbout_ad9361_clk_gen),
|
||||
.O(clkfbout_buf_ad9361_clk_gen));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
(* CAPACITANCE = "DONT_CARE" *)
|
||||
(* IBUF_DELAY_VALUE = "0" *)
|
||||
(* IFD_DELAY_VALUE = "AUTO" *)
|
||||
IBUF #(
|
||||
.IOSTANDARD("DEFAULT"))
|
||||
clkin1_ibufg
|
||||
(.I(clk_in1),
|
||||
.O(clk_in1_ad9361_clk_gen));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout1_buf
|
||||
(.I(clk_out1_ad9361_clk_gen),
|
||||
.O(clk_out1));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout2_buf
|
||||
(.I(clk_out2_ad9361_clk_gen),
|
||||
.O(clk_out2));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout3_buf
|
||||
(.I(clk_out3_ad9361_clk_gen),
|
||||
.O(clk_out3));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout4_buf
|
||||
(.I(clk_out4_ad9361_clk_gen),
|
||||
.O(clk_out4));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
MMCME2_ADV #(
|
||||
.BANDWIDTH("OPTIMIZED"),
|
||||
.CLKFBOUT_MULT_F(12.000000),
|
||||
.CLKFBOUT_PHASE(0.000000),
|
||||
.CLKFBOUT_USE_FINE_PS("FALSE"),
|
||||
.CLKIN1_PERIOD(10.417000),
|
||||
.CLKIN2_PERIOD(0.000000),
|
||||
.CLKOUT0_DIVIDE_F(24.000000),
|
||||
.CLKOUT0_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT0_PHASE(0.000000),
|
||||
.CLKOUT0_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT1_DIVIDE(12),
|
||||
.CLKOUT1_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT1_PHASE(0.000000),
|
||||
.CLKOUT1_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT2_DIVIDE(8),
|
||||
.CLKOUT2_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT2_PHASE(0.000000),
|
||||
.CLKOUT2_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT3_DIVIDE(6),
|
||||
.CLKOUT3_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT3_PHASE(0.000000),
|
||||
.CLKOUT3_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT4_CASCADE("FALSE"),
|
||||
.CLKOUT4_DIVIDE(1),
|
||||
.CLKOUT4_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT4_PHASE(0.000000),
|
||||
.CLKOUT4_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT5_DIVIDE(1),
|
||||
.CLKOUT5_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT5_PHASE(0.000000),
|
||||
.CLKOUT5_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT6_DIVIDE(1),
|
||||
.CLKOUT6_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT6_PHASE(0.000000),
|
||||
.CLKOUT6_USE_FINE_PS("FALSE"),
|
||||
.COMPENSATION("ZHOLD"),
|
||||
.DIVCLK_DIVIDE(1),
|
||||
.IS_CLKINSEL_INVERTED(1'b0),
|
||||
.IS_PSEN_INVERTED(1'b0),
|
||||
.IS_PSINCDEC_INVERTED(1'b0),
|
||||
.IS_PWRDWN_INVERTED(1'b0),
|
||||
.IS_RST_INVERTED(1'b0),
|
||||
.REF_JITTER1(0.010000),
|
||||
.REF_JITTER2(0.010000),
|
||||
.SS_EN("FALSE"),
|
||||
.SS_MODE("CENTER_HIGH"),
|
||||
.SS_MOD_PERIOD(10000),
|
||||
.STARTUP_WAIT("FALSE"))
|
||||
mmcm_adv_inst
|
||||
(.CLKFBIN(clkfbout_buf_ad9361_clk_gen),
|
||||
.CLKFBOUT(clkfbout_ad9361_clk_gen),
|
||||
.CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED),
|
||||
.CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED),
|
||||
.CLKIN1(clk_in1_ad9361_clk_gen),
|
||||
.CLKIN2(1'b0),
|
||||
.CLKINSEL(1'b1),
|
||||
.CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED),
|
||||
.CLKOUT0(clk_out1_ad9361_clk_gen),
|
||||
.CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED),
|
||||
.CLKOUT1(clk_out2_ad9361_clk_gen),
|
||||
.CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED),
|
||||
.CLKOUT2(clk_out3_ad9361_clk_gen),
|
||||
.CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED),
|
||||
.CLKOUT3(clk_out4_ad9361_clk_gen),
|
||||
.CLKOUT3B(NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED),
|
||||
.CLKOUT4(NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED),
|
||||
.CLKOUT5(NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED),
|
||||
.CLKOUT6(NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED),
|
||||
.DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DCLK(1'b0),
|
||||
.DEN(1'b0),
|
||||
.DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DO(NLW_mmcm_adv_inst_DO_UNCONNECTED[15:0]),
|
||||
.DRDY(NLW_mmcm_adv_inst_DRDY_UNCONNECTED),
|
||||
.DWE(1'b0),
|
||||
.LOCKED(locked),
|
||||
.PSCLK(1'b0),
|
||||
.PSDONE(NLW_mmcm_adv_inst_PSDONE_UNCONNECTED),
|
||||
.PSEN(1'b0),
|
||||
.PSINCDEC(1'b0),
|
||||
.PWRDWN(1'b0),
|
||||
.RST(1'b0));
|
||||
endmodule
|
||||
`ifndef GLBL
|
||||
`define GLBL
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module glbl ();
|
||||
|
||||
parameter ROC_WIDTH = 100000;
|
||||
parameter TOC_WIDTH = 0;
|
||||
|
||||
//-------- STARTUP Globals --------------
|
||||
wire GSR;
|
||||
wire GTS;
|
||||
wire GWE;
|
||||
wire PRLD;
|
||||
tri1 p_up_tmp;
|
||||
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
|
||||
|
||||
wire PROGB_GLBL;
|
||||
wire CCLKO_GLBL;
|
||||
wire FCSBO_GLBL;
|
||||
wire [3:0] DO_GLBL;
|
||||
wire [3:0] DI_GLBL;
|
||||
|
||||
reg GSR_int;
|
||||
reg GTS_int;
|
||||
reg PRLD_int;
|
||||
|
||||
//-------- JTAG Globals --------------
|
||||
wire JTAG_TDO_GLBL;
|
||||
wire JTAG_TCK_GLBL;
|
||||
wire JTAG_TDI_GLBL;
|
||||
wire JTAG_TMS_GLBL;
|
||||
wire JTAG_TRST_GLBL;
|
||||
|
||||
reg JTAG_CAPTURE_GLBL;
|
||||
reg JTAG_RESET_GLBL;
|
||||
reg JTAG_SHIFT_GLBL;
|
||||
reg JTAG_UPDATE_GLBL;
|
||||
reg JTAG_RUNTEST_GLBL;
|
||||
|
||||
reg JTAG_SEL1_GLBL = 0;
|
||||
reg JTAG_SEL2_GLBL = 0 ;
|
||||
reg JTAG_SEL3_GLBL = 0;
|
||||
reg JTAG_SEL4_GLBL = 0;
|
||||
|
||||
reg JTAG_USER_TDO1_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO2_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO3_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO4_GLBL = 1'bz;
|
||||
|
||||
assign (strong1, weak0) GSR = GSR_int;
|
||||
assign (strong1, weak0) GTS = GTS_int;
|
||||
assign (weak1, weak0) PRLD = PRLD_int;
|
||||
|
||||
initial begin
|
||||
GSR_int = 1'b1;
|
||||
PRLD_int = 1'b1;
|
||||
#(ROC_WIDTH)
|
||||
GSR_int = 1'b0;
|
||||
PRLD_int = 1'b0;
|
||||
end
|
||||
|
||||
initial begin
|
||||
GTS_int = 1'b1;
|
||||
#(TOC_WIDTH)
|
||||
GTS_int = 1'b0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
+214
@@ -0,0 +1,214 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode funcsim
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ad9361_clk_gen_synth_1/ad9361_clk_gen_sim_netlist.vhdl
|
||||
-- Design : ad9361_clk_gen
|
||||
-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or
|
||||
-- synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ad9361_clk_gen_ad9361_clk_gen_clk_wiz is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of ad9361_clk_gen_ad9361_clk_gen_clk_wiz : entity is "ad9361_clk_gen_clk_wiz";
|
||||
end ad9361_clk_gen_ad9361_clk_gen_clk_wiz;
|
||||
|
||||
architecture STRUCTURE of ad9361_clk_gen_ad9361_clk_gen_clk_wiz is
|
||||
signal clk_in1_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clk_out1_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clk_out2_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clk_out3_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clk_out4_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clkfbout_ad9361_clk_gen : STD_LOGIC;
|
||||
signal clkfbout_buf_ad9361_clk_gen : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DRDY_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 );
|
||||
attribute BOX_TYPE : string;
|
||||
attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkin1_ibufg : label is "PRIMITIVE";
|
||||
attribute CAPACITANCE : string;
|
||||
attribute CAPACITANCE of clkin1_ibufg : label is "DONT_CARE";
|
||||
attribute IBUF_DELAY_VALUE : string;
|
||||
attribute IBUF_DELAY_VALUE of clkin1_ibufg : label is "0";
|
||||
attribute IFD_DELAY_VALUE : string;
|
||||
attribute IFD_DELAY_VALUE of clkin1_ibufg : label is "AUTO";
|
||||
attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout2_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout3_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout4_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of mmcm_adv_inst : label is "PRIMITIVE";
|
||||
begin
|
||||
clkf_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clkfbout_ad9361_clk_gen,
|
||||
O => clkfbout_buf_ad9361_clk_gen
|
||||
);
|
||||
clkin1_ibufg: unisim.vcomponents.IBUF
|
||||
generic map(
|
||||
IOSTANDARD => "DEFAULT"
|
||||
)
|
||||
port map (
|
||||
I => clk_in1,
|
||||
O => clk_in1_ad9361_clk_gen
|
||||
);
|
||||
clkout1_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out1_ad9361_clk_gen,
|
||||
O => clk_out1
|
||||
);
|
||||
clkout2_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out2_ad9361_clk_gen,
|
||||
O => clk_out2
|
||||
);
|
||||
clkout3_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out3_ad9361_clk_gen,
|
||||
O => clk_out3
|
||||
);
|
||||
clkout4_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out4_ad9361_clk_gen,
|
||||
O => clk_out4
|
||||
);
|
||||
mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV
|
||||
generic map(
|
||||
BANDWIDTH => "OPTIMIZED",
|
||||
CLKFBOUT_MULT_F => 12.000000,
|
||||
CLKFBOUT_PHASE => 0.000000,
|
||||
CLKFBOUT_USE_FINE_PS => false,
|
||||
CLKIN1_PERIOD => 10.417000,
|
||||
CLKIN2_PERIOD => 0.000000,
|
||||
CLKOUT0_DIVIDE_F => 24.000000,
|
||||
CLKOUT0_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT0_PHASE => 0.000000,
|
||||
CLKOUT0_USE_FINE_PS => false,
|
||||
CLKOUT1_DIVIDE => 12,
|
||||
CLKOUT1_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT1_PHASE => 0.000000,
|
||||
CLKOUT1_USE_FINE_PS => false,
|
||||
CLKOUT2_DIVIDE => 8,
|
||||
CLKOUT2_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT2_PHASE => 0.000000,
|
||||
CLKOUT2_USE_FINE_PS => false,
|
||||
CLKOUT3_DIVIDE => 6,
|
||||
CLKOUT3_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT3_PHASE => 0.000000,
|
||||
CLKOUT3_USE_FINE_PS => false,
|
||||
CLKOUT4_CASCADE => false,
|
||||
CLKOUT4_DIVIDE => 1,
|
||||
CLKOUT4_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT4_PHASE => 0.000000,
|
||||
CLKOUT4_USE_FINE_PS => false,
|
||||
CLKOUT5_DIVIDE => 1,
|
||||
CLKOUT5_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT5_PHASE => 0.000000,
|
||||
CLKOUT5_USE_FINE_PS => false,
|
||||
CLKOUT6_DIVIDE => 1,
|
||||
CLKOUT6_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT6_PHASE => 0.000000,
|
||||
CLKOUT6_USE_FINE_PS => false,
|
||||
COMPENSATION => "ZHOLD",
|
||||
DIVCLK_DIVIDE => 1,
|
||||
IS_CLKINSEL_INVERTED => '0',
|
||||
IS_PSEN_INVERTED => '0',
|
||||
IS_PSINCDEC_INVERTED => '0',
|
||||
IS_PWRDWN_INVERTED => '0',
|
||||
IS_RST_INVERTED => '0',
|
||||
REF_JITTER1 => 0.010000,
|
||||
REF_JITTER2 => 0.010000,
|
||||
SS_EN => "FALSE",
|
||||
SS_MODE => "CENTER_HIGH",
|
||||
SS_MOD_PERIOD => 10000,
|
||||
STARTUP_WAIT => false
|
||||
)
|
||||
port map (
|
||||
CLKFBIN => clkfbout_buf_ad9361_clk_gen,
|
||||
CLKFBOUT => clkfbout_ad9361_clk_gen,
|
||||
CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED,
|
||||
CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED,
|
||||
CLKIN1 => clk_in1_ad9361_clk_gen,
|
||||
CLKIN2 => '0',
|
||||
CLKINSEL => '1',
|
||||
CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED,
|
||||
CLKOUT0 => clk_out1_ad9361_clk_gen,
|
||||
CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED,
|
||||
CLKOUT1 => clk_out2_ad9361_clk_gen,
|
||||
CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED,
|
||||
CLKOUT2 => clk_out3_ad9361_clk_gen,
|
||||
CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED,
|
||||
CLKOUT3 => clk_out4_ad9361_clk_gen,
|
||||
CLKOUT3B => NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED,
|
||||
CLKOUT4 => NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED,
|
||||
CLKOUT5 => NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED,
|
||||
CLKOUT6 => NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED,
|
||||
DADDR(6 downto 0) => B"0000000",
|
||||
DCLK => '0',
|
||||
DEN => '0',
|
||||
DI(15 downto 0) => B"0000000000000000",
|
||||
DO(15 downto 0) => NLW_mmcm_adv_inst_DO_UNCONNECTED(15 downto 0),
|
||||
DRDY => NLW_mmcm_adv_inst_DRDY_UNCONNECTED,
|
||||
DWE => '0',
|
||||
LOCKED => locked,
|
||||
PSCLK => '0',
|
||||
PSDONE => NLW_mmcm_adv_inst_PSDONE_UNCONNECTED,
|
||||
PSEN => '0',
|
||||
PSINCDEC => '0',
|
||||
PWRDWN => '0',
|
||||
RST => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ad9361_clk_gen is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
attribute NotValidForBitStream : boolean;
|
||||
attribute NotValidForBitStream of ad9361_clk_gen : entity is true;
|
||||
end ad9361_clk_gen;
|
||||
|
||||
architecture STRUCTURE of ad9361_clk_gen is
|
||||
begin
|
||||
inst: entity work.ad9361_clk_gen_ad9361_clk_gen_clk_wiz
|
||||
port map (
|
||||
clk_in1 => clk_in1,
|
||||
clk_out1 => clk_out1,
|
||||
clk_out2 => clk_out2,
|
||||
clk_out3 => clk_out3,
|
||||
clk_out4 => clk_out4,
|
||||
locked => locked
|
||||
);
|
||||
end STRUCTURE;
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ad9361_clk_gen_synth_1/ad9361_clk_gen_stub.v
|
||||
// Design : ad9361_clk_gen
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
module ad9361_clk_gen(clk_out1, clk_out2, clk_out3, clk_out4, locked,
|
||||
clk_in1)
|
||||
/* synthesis syn_black_box black_box_pad_pin="clk_out1,clk_out2,clk_out3,clk_out4,locked,clk_in1" */;
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
endmodule
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ad9361_clk_gen_synth_1/ad9361_clk_gen_stub.vhdl
|
||||
-- Design : ad9361_clk_gen
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity ad9361_clk_gen is
|
||||
Port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
|
||||
end ad9361_clk_gen;
|
||||
|
||||
architecture stub of ad9361_clk_gen is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "clk_out1,clk_out2,clk_out3,clk_out4,locked,clk_in1";
|
||||
begin
|
||||
end;
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:c_addsub:12.0
|
||||
// IP Revision: 13
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
add_s24_s32_s32 your_instance_name (
|
||||
.A(A), // input wire [23 : 0] A
|
||||
.B(B), // input wire [31 : 0] B
|
||||
.CLK(CLK), // input wire CLK
|
||||
.CE(CE), // input wire CE
|
||||
.SCLR(SCLR), // input wire SCLR
|
||||
.S(S) // output wire [31 : 0] S
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file add_s24_s32_s32.v when simulating
|
||||
// the core, add_s24_s32_s32. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:c_addsub:12.0
|
||||
-- IP Revision: 13
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT add_s24_s32_s32
|
||||
PORT (
|
||||
A : IN STD_LOGIC_VECTOR(23 DOWNTO 0);
|
||||
B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
CLK : IN STD_LOGIC;
|
||||
CE : IN STD_LOGIC;
|
||||
SCLR : IN STD_LOGIC;
|
||||
S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : add_s24_s32_s32
|
||||
PORT MAP (
|
||||
A => A,
|
||||
B => B,
|
||||
CLK => CLK,
|
||||
CE => CE,
|
||||
SCLR => SCLR,
|
||||
S => S
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file add_s24_s32_s32.vhd when simulating
|
||||
-- the core, add_s24_s32_s32. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+737
@@ -0,0 +1,737 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:37 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode funcsim
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/add_s24_s32_s32_synth_1/add_s24_s32_s32_sim_netlist.v
|
||||
// Design : add_s24_s32_s32
|
||||
// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified
|
||||
// or synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
(* CHECK_LICENSE_TYPE = "add_s24_s32_s32,c_addsub_v12_0_13,{}" *) (* downgradeipidentifiedwarnings = "yes" *) (* x_core_info = "c_addsub_v12_0_13,Vivado 2019.1.3" *)
|
||||
(* NotValidForBitStream *)
|
||||
module add_s24_s32_s32
|
||||
(A,
|
||||
B,
|
||||
CLK,
|
||||
CE,
|
||||
SCLR,
|
||||
S);
|
||||
(* x_interface_info = "xilinx.com:signal:data:1.0 a_intf DATA" *) (* x_interface_parameter = "XIL_INTERFACENAME a_intf, LAYERED_METADATA undef" *) input [23:0]A;
|
||||
(* x_interface_info = "xilinx.com:signal:data:1.0 b_intf DATA" *) (* x_interface_parameter = "XIL_INTERFACENAME b_intf, LAYERED_METADATA undef" *) input [31:0]B;
|
||||
(* x_interface_info = "xilinx.com:signal:clock:1.0 clk_intf CLK" *) (* x_interface_parameter = "XIL_INTERFACENAME clk_intf, ASSOCIATED_BUSIF s_intf:c_out_intf:sinit_intf:sset_intf:bypass_intf:c_in_intf:add_intf:b_intf:a_intf, ASSOCIATED_RESET SCLR, ASSOCIATED_CLKEN CE, FREQ_HZ 100000000, PHASE 0.000, INSERT_VIP 0" *) input CLK;
|
||||
(* x_interface_info = "xilinx.com:signal:clockenable:1.0 ce_intf CE" *) (* x_interface_parameter = "XIL_INTERFACENAME ce_intf, POLARITY ACTIVE_LOW" *) input CE;
|
||||
(* x_interface_info = "xilinx.com:signal:reset:1.0 sclr_intf RST" *) (* x_interface_parameter = "XIL_INTERFACENAME sclr_intf, POLARITY ACTIVE_HIGH, INSERT_VIP 0" *) input SCLR;
|
||||
(* x_interface_info = "xilinx.com:signal:data:1.0 s_intf DATA" *) (* x_interface_parameter = "XIL_INTERFACENAME s_intf, LAYERED_METADATA undef" *) output [31:0]S;
|
||||
|
||||
wire [23:0]A;
|
||||
wire [31:0]B;
|
||||
wire CE;
|
||||
wire CLK;
|
||||
wire [31:0]S;
|
||||
wire SCLR;
|
||||
wire NLW_U0_C_OUT_UNCONNECTED;
|
||||
|
||||
(* C_AINIT_VAL = "0" *)
|
||||
(* C_BORROW_LOW = "1" *)
|
||||
(* C_CE_OVERRIDES_BYPASS = "1" *)
|
||||
(* C_CE_OVERRIDES_SCLR = "0" *)
|
||||
(* C_HAS_CE = "1" *)
|
||||
(* C_HAS_SCLR = "1" *)
|
||||
(* C_HAS_SINIT = "0" *)
|
||||
(* C_HAS_SSET = "0" *)
|
||||
(* C_IMPLEMENTATION = "0" *)
|
||||
(* C_SCLR_OVERRIDES_SSET = "1" *)
|
||||
(* C_SINIT_VAL = "0" *)
|
||||
(* C_VERBOSITY = "0" *)
|
||||
(* C_XDEVICEFAMILY = "kintex7" *)
|
||||
(* c_a_type = "0" *)
|
||||
(* c_a_width = "24" *)
|
||||
(* c_add_mode = "0" *)
|
||||
(* c_b_constant = "0" *)
|
||||
(* c_b_type = "0" *)
|
||||
(* c_b_value = "00000000000000000000000000000000" *)
|
||||
(* c_b_width = "32" *)
|
||||
(* c_bypass_low = "0" *)
|
||||
(* c_has_bypass = "0" *)
|
||||
(* c_has_c_in = "0" *)
|
||||
(* c_has_c_out = "0" *)
|
||||
(* c_latency = "1" *)
|
||||
(* c_out_width = "32" *)
|
||||
(* downgradeipidentifiedwarnings = "yes" *)
|
||||
add_s24_s32_s32_c_addsub_v12_0_13 U0
|
||||
(.A(A),
|
||||
.ADD(1'b1),
|
||||
.B(B),
|
||||
.BYPASS(1'b0),
|
||||
.CE(CE),
|
||||
.CLK(CLK),
|
||||
.C_IN(1'b0),
|
||||
.C_OUT(NLW_U0_C_OUT_UNCONNECTED),
|
||||
.S(S),
|
||||
.SCLR(SCLR),
|
||||
.SINIT(1'b0),
|
||||
.SSET(1'b0));
|
||||
endmodule
|
||||
|
||||
(* C_ADD_MODE = "0" *) (* C_AINIT_VAL = "0" *) (* C_A_TYPE = "0" *)
|
||||
(* C_A_WIDTH = "24" *) (* C_BORROW_LOW = "1" *) (* C_BYPASS_LOW = "0" *)
|
||||
(* C_B_CONSTANT = "0" *) (* C_B_TYPE = "0" *) (* C_B_VALUE = "00000000000000000000000000000000" *)
|
||||
(* C_B_WIDTH = "32" *) (* C_CE_OVERRIDES_BYPASS = "1" *) (* C_CE_OVERRIDES_SCLR = "0" *)
|
||||
(* C_HAS_BYPASS = "0" *) (* C_HAS_CE = "1" *) (* C_HAS_C_IN = "0" *)
|
||||
(* C_HAS_C_OUT = "0" *) (* C_HAS_SCLR = "1" *) (* C_HAS_SINIT = "0" *)
|
||||
(* C_HAS_SSET = "0" *) (* C_IMPLEMENTATION = "0" *) (* C_LATENCY = "1" *)
|
||||
(* C_OUT_WIDTH = "32" *) (* C_SCLR_OVERRIDES_SSET = "1" *) (* C_SINIT_VAL = "0" *)
|
||||
(* C_VERBOSITY = "0" *) (* C_XDEVICEFAMILY = "kintex7" *) (* ORIG_REF_NAME = "c_addsub_v12_0_13" *)
|
||||
(* downgradeipidentifiedwarnings = "yes" *)
|
||||
module add_s24_s32_s32_c_addsub_v12_0_13
|
||||
(A,
|
||||
B,
|
||||
CLK,
|
||||
ADD,
|
||||
C_IN,
|
||||
CE,
|
||||
BYPASS,
|
||||
SCLR,
|
||||
SSET,
|
||||
SINIT,
|
||||
C_OUT,
|
||||
S);
|
||||
input [23:0]A;
|
||||
input [31:0]B;
|
||||
input CLK;
|
||||
input ADD;
|
||||
input C_IN;
|
||||
input CE;
|
||||
input BYPASS;
|
||||
input SCLR;
|
||||
input SSET;
|
||||
input SINIT;
|
||||
output C_OUT;
|
||||
output [31:0]S;
|
||||
|
||||
wire \<const0> ;
|
||||
wire [23:0]A;
|
||||
wire [31:0]B;
|
||||
wire CE;
|
||||
wire CLK;
|
||||
wire [31:0]S;
|
||||
wire SCLR;
|
||||
wire NLW_xst_addsub_C_OUT_UNCONNECTED;
|
||||
|
||||
assign C_OUT = \<const0> ;
|
||||
GND GND
|
||||
(.G(\<const0> ));
|
||||
(* C_AINIT_VAL = "0" *)
|
||||
(* C_BORROW_LOW = "1" *)
|
||||
(* C_CE_OVERRIDES_BYPASS = "1" *)
|
||||
(* C_CE_OVERRIDES_SCLR = "0" *)
|
||||
(* C_HAS_CE = "1" *)
|
||||
(* C_HAS_SCLR = "1" *)
|
||||
(* C_HAS_SINIT = "0" *)
|
||||
(* C_HAS_SSET = "0" *)
|
||||
(* C_IMPLEMENTATION = "0" *)
|
||||
(* C_SCLR_OVERRIDES_SSET = "1" *)
|
||||
(* C_SINIT_VAL = "0" *)
|
||||
(* C_VERBOSITY = "0" *)
|
||||
(* C_XDEVICEFAMILY = "kintex7" *)
|
||||
(* c_a_type = "0" *)
|
||||
(* c_a_width = "24" *)
|
||||
(* c_add_mode = "0" *)
|
||||
(* c_b_constant = "0" *)
|
||||
(* c_b_type = "0" *)
|
||||
(* c_b_value = "00000000000000000000000000000000" *)
|
||||
(* c_b_width = "32" *)
|
||||
(* c_bypass_low = "0" *)
|
||||
(* c_has_bypass = "0" *)
|
||||
(* c_has_c_in = "0" *)
|
||||
(* c_has_c_out = "0" *)
|
||||
(* c_latency = "1" *)
|
||||
(* c_out_width = "32" *)
|
||||
(* downgradeipidentifiedwarnings = "yes" *)
|
||||
add_s24_s32_s32_c_addsub_v12_0_13_viv xst_addsub
|
||||
(.A(A),
|
||||
.ADD(1'b0),
|
||||
.B(B),
|
||||
.BYPASS(1'b0),
|
||||
.CE(CE),
|
||||
.CLK(CLK),
|
||||
.C_IN(1'b0),
|
||||
.C_OUT(NLW_xst_addsub_C_OUT_UNCONNECTED),
|
||||
.S(S),
|
||||
.SCLR(SCLR),
|
||||
.SINIT(1'b0),
|
||||
.SSET(1'b0));
|
||||
endmodule
|
||||
`pragma protect begin_protected
|
||||
`pragma protect version = 1
|
||||
`pragma protect encrypt_agent = "XILINX"
|
||||
`pragma protect encrypt_agent_info = "Xilinx Encryption Tool 2019.1"
|
||||
`pragma protect key_keyowner="Cadence Design Systems.", key_keyname="cds_rsa_key", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=64)
|
||||
`pragma protect key_block
|
||||
EIXxeINTAO242euia8HdyXF7h6x0XAl8Xpk7diBjuD2e+Y0gB/lAcVBQITjsIwp+t4oM79vqoGzH
|
||||
+4vEzi5WLA==
|
||||
|
||||
`pragma protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=128)
|
||||
`pragma protect key_block
|
||||
jaOvT2EV7VCvDB1JYt0rR5Zrk5hPgyaVkRnX0I/v7IJxLgDTVbuBV5u/1OpOfWNJyaUFf6hkqGag
|
||||
nHh32KPESYSixNGFIu/cwi8WznCjrYP2F2CTV0ho9Q305JZ2CYFosWIZfe0p+Lc2BPHFBpRJBfEl
|
||||
TA6I/ZwCg6ZdHqBwJX0=
|
||||
|
||||
`pragma protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
Vlrb/9UE65aOuMXkdu0+G5VZjNMmxg34yAXb3zM44FS9dZHuBcNcqiOqCYsXTyiiTc0heuoV2Tce
|
||||
efI8BQO9l7F3As+jp6Vv9VtuDmvSNblHxgDw+NTDjGLhE+u2MZZ6xfXTnOt99Kt+Pw7F4lPPGduA
|
||||
urDCk4kOt83YAc5uRL/FBt4fZYDTXdfJNlPl0Srv3LTGdZszWkNNMer4BcBtYplGy3cxaw6v1wtv
|
||||
LgMgGyAalg7Od2DUypqqFGQRfWLVEldRJyASyzGnf1aAfzqHjqLBUojM2a+AfmFuyxAy1FSsEzKM
|
||||
ikpGTUfiESifpz85jbR5iZ1BssBSKZF39meuIw==
|
||||
|
||||
`pragma protect key_keyowner="ATRENTA", key_keyname="ATR-SG-2015-RSA-3", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
uYAMxg2Cs3KhSCgysItwFzH3qx2qaPfA5LE/sWHsmIOlTmYaExuulptcJad5CI4stZxWhk6FAvQb
|
||||
ZnHIxupQ0Ag3Vw2B/xsw5H1yoh2MUujTwbJsk8rBqYMuJsUeHeMUgEJL6mrfL/idjcrIgrRse19X
|
||||
iV3hYdw7gtk6+fFdihG6QubBhXyTKXDfEU23nGOjeZs8gYqnsEglyjVOESakKj39G/BIR8u1nPY6
|
||||
/910C1NRicMuggEH2vzyo3YkxWPPtir2qaK6L6Z2xLn/tUuxIQK8zaLU1JLv5BqTBNQAyeMgLjTl
|
||||
ScR0d/CJ4QgN/9ODgtKNaUQNYxDcwcCPqC9ggQ==
|
||||
|
||||
`pragma protect key_keyowner="Xilinx", key_keyname="xilinxt_2019_02", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
YEPeVioKkA2EkBEZwWwPn6g+nksMcKAvKbMP8LEuwmLFLue5Ode6osEwclI8Idr2rzDierHxWQGv
|
||||
uuNBk65x3hIt7b8giktFTUc/ltFJWCMM8jLdvtAv8GRT4ANEnQalBaoD+FdfKgDM0s9/4BmNKq86
|
||||
euvAsqKDz1M1M6k5QMtpPRwBHua21mlHXhqzkU0Lhmao1re8eGVGWCeEHD1XKeifrENaioTL9Pzn
|
||||
+Iy9vcrYT26UHtd/WHkqoV2qe0uIkDP/IwBQVCGBQI432BrPpGMcp3tL9OA9hyba7NXYIdJVwDXI
|
||||
NcSTA1TOujYD9bEyHhnmpkcViWgpC+6UHFJ6/Q==
|
||||
|
||||
`pragma protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=128)
|
||||
`pragma protect key_block
|
||||
cYsWihgUIpcU22w+HafMs8oiFyuLi8IsP6A8Q8Owr7KKlBEJLtx8pXDx7KB1GZ3TEvIBcKGukUjp
|
||||
u5nEg4azox+rnxIxZ6W8jWEk3gDQ3i+NHM9rZ0o57IXm4XEvAReSqFcMngCt1IsY3viFHgXnjI4L
|
||||
AT/YkscHhZRTi2nOuZA=
|
||||
|
||||
`pragma protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
KDuFAWZrwSGajY66mVpV3alSAH0w6lYQzM4+iM0lFIGeJdp8RHYmKUi1xMPaVr9Qh/V5FNZ63yt3
|
||||
jIjtxThSfBZWVm++Kfy2ku6/5WoQLFfHPZgz76D/9H/B/nWCru1ZP0NPKgdjE34sdMOOH4SmJ6SR
|
||||
8mjkRF8it6CsJF77iNMqWT2ydgJ9MF715+eBrFVbtFRSNvHmVmjXjlZ5s71cqay3f0fPbhTjB3pF
|
||||
wuuA6GlHZE4xrI00sLWIOwf897jT3fQphdU0Qh+E5EKOTH0yURDsipBUYRuz75jMo0yHrSWsR9XE
|
||||
gN81g4HBd2CIMuUXlqmL4G8cTsaXFyFCWz4ltA==
|
||||
|
||||
`pragma protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
Q370dC8EM5NIsBKZFuI1MGKFBQylS/xHMr0qnOU0gfx3IBFVsjIshevttOFVTWX/oMUoaPsUI9LC
|
||||
ZIVQKkUPZ3xg23SBWrPXw8lOU7cpBArpTzi2GaNn4Zjy7vPFMUYH2/4zjF5nP11SFNczcYHMUCYK
|
||||
RCQl6p6ljdrnKdY+LezHQ2OJfxpVY0HT+l76WLfUK7bPATIrbsg54MPWSD+35WkoJQy4SN2LgWRM
|
||||
TUg3Uc/T/fPzf1l9XFnqgtaqjMLa6RuIRyRjRDyHKLW6/kzV7ukWkakInBU9iVCf7hpozJ6BcC1N
|
||||
wl7knbuBAuS8epfwLXRIWFYTJolyzMK7smRjeA==
|
||||
|
||||
`pragma protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa"
|
||||
`pragma protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`pragma protect key_block
|
||||
M4FKlBLHda73Q4xIkTDf2Z6z/Po1N9frAsxTS8zBSV5BVn8V95w2o1jmPKaFO/nZBrA8vv71AiDi
|
||||
KA7DPIWBTjaRB6Mdq2WlQEMbEhmOKyrotYzyEcAttqstuRCrj9tF68ieDRV+GpcYsf6c56/Rgq+m
|
||||
XmQMaMp/cjNmM/iKYepy/sy6a44izQLauuF6wI4njyS2cMt52ovl8S5dIfjO9r4RzoSZgedW1b4F
|
||||
WvK3OCCF27E9XQp1p8a5Be85791sS0Mr+dNiNykW43UmD+2Eh4dlCQ1/ZZEGZbEglXU2KWsDuiGl
|
||||
J0FYIk+PXkkxoscMXzMeT9ARxp5f+kZPt/9wSA==
|
||||
|
||||
`pragma protect data_method = "AES128-CBC"
|
||||
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 23664)
|
||||
`pragma protect data_block
|
||||
QzpeYAbUMZAQH0fnhPKDW6mqIqRSfII1rNJ7lPCjngrmLHdWONhMBHVwBExKH/FxByddjX9lSN3B
|
||||
xTgFAjKLEMZDb2L5//sPgfnL+CYMi/SqS4um6BSo2ySJ6uXDRqdz7KQ7SHX9YsaVlsW41OR62ZLL
|
||||
hK9jnufUeeNw0Cifp/Clk5nQe0ShUGVn5vjSbAhhJAGmT9Pz599Q7loY0/qsu8tW+lla+VvTkIaA
|
||||
NjNyR39Cw0n1aZ9iTeS+P8FfwmkdSWC8CwdP+1Qalw7osFeOhv8kVX51mVwyFfSxpmNMwk/6Hkt9
|
||||
F9hun+tqdfrSwvwudKUxAO50nlaVNMBfGWWTID3SyWa5LhBDWlC0oNuraEthVRM9n5j9qhKfcE5l
|
||||
NoGQ67J/ifp4EOGLla/QgKy6uvzTliEujMcwhPuLKb5xreR9zuQqom2xZSaSUkP+RMewwcs7dpJX
|
||||
nCtFi7dx0wrA3KAY822+VaDYsYeklHlX0CxySCsSAQaGoTb7wnkflRAPn46MyJRaxK3L6BCQc8SE
|
||||
v+QF/mL2mRUMX1tGlYLtyXsEb09roYII18Gm6CjTFE/bFQRsletAHlR9VcwQ6QlDa32HOyKau/yH
|
||||
Khufu2vpy0ceMQm1D7jpPBoUZQZSKlLUj+ZL/0fa7lOaLkOEe+oVO5fbYXTGxXiFIfPZrVB5rr0v
|
||||
ER92RwqXsGOPj2mOdA3fgzMj+wK/LTXXj4MQavc9mDYP9J7sXgFTqPj9d3EbG8OarjK7CRQCkQAr
|
||||
26asnyXiWSxITPgMqViFwcDJNrei15rFRuZtvB9Ts19W5Kyyo1g7bTfJuZcAxnJLcWMfeutEGOG9
|
||||
DnHf6WEifrmtobK+hzi33oj8zUCgrujWb2bTvqGB96qDX0jTPpqOhYWhzQj1h/Q6mOTHGBuhFn1f
|
||||
L9J5NZSw3VHmQB2drxgW2+2WuDnqqJfGiz+weyQn0eu+3tT195W1lhw313ZnGb6SG4gyzga9VcUi
|
||||
8x/67za74OmrXDS/sE5hBl5zcMRD7Bg3tQVHiAAhzkwzgZtyY3aZS/oBZ1vnV2NvZ2Y8lyte6Mrm
|
||||
QP6OJyUG9QdsCwCVYpsONoeVPtsW8F0qKtHbgnsH5mG662WZ0WjCryXSafA960raNpthfWRCXZdb
|
||||
nkC0Y7LeYg5EXgqoEd2zxRnBXOP46Gy5SFHFQ98GilIs77MHSfSHdMGPInNLm2T2uMxJALKAASIe
|
||||
GcVSIesHsTfPGUSGTty4Ri9uWk3l2TI2W4/bY8sOFgMcnyIp43Um6UJL6cqIIMfhF2xKMiTxbMyE
|
||||
z5/4ED/FeHK+4bftf4/LfBG5MFaml8ReV9QLAPAwiElxN+W4qbNTsXSAYnVJmeRgK9m9/eq8O3ao
|
||||
XG1TVVOeXYuWadyVasc8beyhxDw/yEjQv9k/S2NqLX46EHALWdlSdu3jt56iyO/FRb7h1MLQxz9X
|
||||
oSHz5ksF55JRwrNGQAivNq78LBBQymM6n/9wDHN/MNsUjmGYvVt2ht0j6lU6hLyP0VR5SNmXIQ3i
|
||||
aDt/GQceaalGkOPfgdvQp6csBZSVjdFjzohwd7ygmw2iwnRKIYi4wIlpWd/9JqInny8+tfNxNkQI
|
||||
VeCuwBr3uf2GN5QSo7BpTym8vvonOEk5uHURFKGMKJGPqoJirnFY1It1E4PsH5ZVt7WZ8AyCif55
|
||||
NMB1Q6JLZMY9Er6l91pz76zhuzH+VWuSwE9QVDR2pfdvlKbp57GcEuVqYdSolFswxWCo5Q86lN+M
|
||||
CYfaN2oBOzyZmRRu1+FkjJAox84POnsGo+JP44fi0Dd4SURMJEtX2YIxCc8ool0rxUBs4RfBcjCO
|
||||
ZinL/PI99kjWq1psH4ODOYitdj7WfxkMSvrmrPHzRocIQSi8QBRS8rXDiB+bC62mZpLJjb5n5dsW
|
||||
aeQVjDG1Nkz/hQ2ah8xNyyq6E512YXjj3aEdHGFyvfBhq11WlVclcFzueGlngdhpUN9Wiy2dAd7U
|
||||
8DT3hs9ntR10P6ZK0vM0LEJkqlCX0BtGfh9YzmRDPWzFJ8s5GFEtIWz4bXUjScjIsy52VOWGWGhd
|
||||
y8ULfi051/RUbUDbzOisrXVVr99GtQY4fLbnAWvo8vcVAKok4dYo+nvUZNhTZ/sALT6bGed2wCFv
|
||||
rjWHpN31iVYnIYPUeg+aEnl5ZfI7geInXKUvdwJUPRxyqAXhgn6cZ2kdT7Ilt3dPcowpBtebkIkI
|
||||
bRmpyIi3p/KgVL0pqUl5dLGk/0OW3mYke4ii2lEaaWzPbgrTEMklswuBNjkeJy+F/DlH1u12HR6/
|
||||
FgGVoXoX5mtHbluDKerzXJ5yKxczGIjVwAiVfY82le1yqVheEIblEIojbrSftnspb0ctc1mbw+hb
|
||||
hdU2q0ycXxiXL45bBlbrGkdLH8XCK22Pu68Ra9zrG+UMFlXzWJ+H999/QpVNGfKKrupyO399fDyr
|
||||
nXpHZEHsnmzAvIshzk42sy8uEN0vbXW5MJq6gs9+BdIXOJXhTLbhfE/NiuIDQDJOBP+ziWdk7XCq
|
||||
fbl/dnUWZZK67h4/1/g/y1+eTpFCUgNe8+b7JC1OSMVCRZFOvwyzXux9XQOMzSJrN8w2mVKCwbYo
|
||||
+wD7uPVPF+HMZop8fZktlk/MSDa8eOjhZxN+nryrtvtd9uA5bpst3RKb0ePAuo9mbG5Jl0MMTfux
|
||||
jJZ3CauCnG2zcKCHpqut1+ns9+oRPF0hFx2pPR1/JLkGJ0pVygGV18eyV5R9SAeAy+lGgVTmlQ8a
|
||||
7zlD7yN5VZsYl6obkuP+9NqHXWE0jaVDAu0ngUI5pkRdLh5K5k0tkYq1HBwKANN+S4L1rzSItbyL
|
||||
RhpNL8GGXm6lu69HA/+6pw9vwFMtRwyBwVum4CLE263YlW/peqzfmUZHfA/tmzwyFqQu1LrUgH2e
|
||||
p0rn5z+sFn/lF6utYmMJePL3xIPvZR20Xg1I9cpT+8bcZe6fYqP9ooBnSWUxEUHn28aFI4W4IbAP
|
||||
e9JQypbfUebmaV55Coy4A2DWmZ6ko4UhqLVQFpHQ2qxvDp3wGaRr6/Yo2CsaqmODOyMFbInh8uzs
|
||||
S7ON8BUcagI+GUsEeJwKD2NjZWtcn4BYs21JK3CPYB4qGS65G5mGnUmLkOJr3AnAYuwwxXhMLsQC
|
||||
c9grmLu03LwWLCEYX+OxPdgIE9JwFrCB9dRa9E9h/TcHkVsWsoT/VzhQQozzJqxbgwMOUecwfSuw
|
||||
Z+pXIT47Dlk19NKzhjvY0DwncrXr8MwY2AHo5mC6zdKO69XL70w7H5LN2+14EkMrERw5g0gWRDCk
|
||||
MBRsdXRnwTLZQgoSGJGTlvhw3hgzcxo3OJ8ZrAm8/vO0clwNNTx0O6TO8hosqYP0ENTQpQKBitM7
|
||||
pdM9CnT58BYeISbiPeU4+3TcTP5OKRjqc5Gf2aSNUmIBokyEXGAnOWks8KhkM5oCOwOrxTYNRYvk
|
||||
HLC/9PZHxBSLVY+V4AidJ/E1chqZbOiPw3f/IwwyDJB331jRMmeI+PgvQO+/maISJuN2bG6vbTA/
|
||||
7Jj9Ldk4UGqHFRFKaN+aW5gpiWc3eEufOynZLa8qQREYnW0T+uPuFKWwqGqNx2ChFO+PG/U8sswK
|
||||
MJx8UyWKaHy3y/UEE55t5AmgXiKgAfFFkNOpFsA9zUbV2jR6K8iKe3/TqqY6GnXjKGZiXWFtsZCK
|
||||
JOhULNqZIMhrxvQ6tVtEiMm9hxcXkrzPYwrrOiJ3x731CDV5IqaVoZdkBq1KxTAt1qpkdoVzWE+n
|
||||
8EfK5woNmPgbxSnHgd4olvPA23v2Me8EXkWke3sgX+vWErMldruWRFHoKL3eAMsHc1SSQ7IZUk4f
|
||||
RqkPiswBsDtlrOKrO3IR4mdEpE6STJnubYUUtEjg9deOqzX/YA4ZtVPBd78PNxgZKc0P9sfUjEZK
|
||||
COFN+IVFWI6Hsv2syx+SMTWrQhwbnRz3a6dp7otDenjMmD1GyRJpwYlxzOCdw7M3UNvsZ/usaMDs
|
||||
SS8cdO39eE5+X3dM8ZMtX0WtH6sDi5DsBNs0W915ds4+3K4cn/s3InkmGlx4SOg54Og8wpOH1XVd
|
||||
UWZaOtsuubATsl7/65VRCQGHbKRPeUiaaAbPaJwEOOPDbgoyAqL9Ds2vqq59hwnhUxQUKWuOI5ny
|
||||
oelXkk1G3cSq0t2StvKO3kmIZ4+wNUpK1EmwNXMIl6LBXrslKB24zxJJ3hsBHkMpVb+5kfaIIhTn
|
||||
f0uDr9CSU2jU6aMV9p2GEpofgGSSPhkObxcvUmhqNqIM9WqDFPr/z7pV4QiVwUcLKXCedpfbq2Uz
|
||||
4fs0g5gEPIfIREn/yczMzcs0qCPQBZXn3XJ+yafklVNbj93GzIoNqoKhB9mRg+bMq4m/ReBbrpcI
|
||||
R7PKQmZiOuhPmT4XMAxtOt9ZB0BOP6lP6c2e5hzjSUtRnRqb9oTCPX9Wd5sVBlvPvXCE7l+14+6O
|
||||
mnCNf3BRFmolatxAlOq4dIHJl1bvvhSUIXPekNqDCWjcm06tvlOR3Uil4krM7xYAAJg/WVBWtbPF
|
||||
ZzJqRMK9YPBBXSevp/t0kVFYXwSKBdgi7G6DyCTe8EXm+BWiLegIqnnoHkM432HPk8JbJL0aqG1k
|
||||
jgUoiSLtCaPF4zHDp7kOCapjPIBvmPBLrcnMK9ukf3pY/gbJyqrioHLAcPar/u9CRQI+8wfaWFRK
|
||||
WxEOQIqvQtoLKAwO0lWoRvlNiIYIuFkMtEJ9IiTv7IJzXvVqJAKvanwX1AHSIeRws1XWW/N5niRe
|
||||
QmF/KmzBYjw2dZLzCyTaBUD+J6RC56DSaRD/av21udklQt1j/ft3zKe83yvNBhKqAA2FGhJ7B3Sc
|
||||
Pk8ISxEh9zdvvnwNVQqoKOurX1nzd/D8nySTPrS2FJVfthGlQdK8Zl6pxWcdGah8JryV1LAgNIxc
|
||||
TrK08dzcAlhDHgeU7HfiMa/t0h8zS+d8YJ+00foaZJzmuL5mTlqSEBo2Zr6ooYNNflx1ACDgFvtW
|
||||
drfSAe/Y9K4aPittk9DyWlNc9ZVWR+9uudBTWe46Bzd777yaF4FvmzCH2GVbLVNFnhs/0OUsQLx5
|
||||
QD6BzGd4P6xqwvAARzzDjdNof4i7+6DYecnSKkjKS8UuXlhV7NG+Ojlfrop0seTJ64zcEjogCCtP
|
||||
VF08nyWfE/fvOTxpeTqc9JsCHzFKkIqIWHMGZByUPQUJoj7NyZAQbsGc64QUMqUH1ANA5m6EKzLP
|
||||
PGsku1jetvGeJNR64tCiXXhKusWwaLPNuxiTaO3eav3DdksdYWi4wukV6kjxE3C8kuthUk8WVPNB
|
||||
jiiTlp/yp2RO/cxmQcTjoKxy8fHMUQVT0cdohl87qCOdplKn70z56bj9/m7EJHS41HEEr7oc07/o
|
||||
O238N31ZUMjTo0OMP2pYxSQ/Y7TuBnwf8QaR8LehoG1VS1gD5E6JBBRnOsDdRTC+YCEzY8Uy+UnV
|
||||
EeR25VoY/dGPuyaxcJMfKOL6SmX0+HI8rknpxzyArPG8+P4rIO/UdjiM5igS9hLqyNkb2AmWthII
|
||||
rrdp5OUXivoCOv6OWHP7dvPNA0EnYxpjM4zys+ujIzk4pKAQqGumZTB42XtswnpC9O4HGvxA1I6X
|
||||
5ADH2SIP02i0K/JGEw5WiU0TCjN+JwSTkr+dxbtwujvzulQaLqDbepHPLyu0CXOA2NiMverv3C7W
|
||||
2EUBA7pq+RyYh9s8Wc6AdRU70IzT/NPcfCbL2WUU70BjPauodCRADL0qvwxJI+M2SBe4DHTL07t2
|
||||
6Bs1dN/0z/KQZQpRdMpQ5/ltg9lT3hb0c/zcPqZ/X4wf5WWvaCx3c8mhFSJeK1B/L9xdVYEWO1ei
|
||||
uVTg0E8czkRQ0LcK2Xxfsdlg0/7RBuKBYZi4G9ZSttaeiFIuNX2QC7Y28KpYGPgnJzErQZ7+SnIM
|
||||
2vbpY0AyQ3mYcO8Za1ObgmMFqrPep99RirTxLf04JW4rcpoFVyMNNVh5Il0gtw0blwGUrliHrbyq
|
||||
gMx5keiKZh7wO9IPKvhk3fsMnrGswfsXlwQb5/k84ds4aWinRvfommjC7YkVnLBgw+BvopKFJHqX
|
||||
Bn/Tam3JNWtS3LXT7mcto0Y1JYrkVTOk9+8YsywPLYoO2rXeNMLGMzrg5JrXEXEhR6+SSQEYA5C3
|
||||
qoFhgWimiLMjN+IjyNKcGwZDm9tIeUvq68uzVvYk88bIxYl+B/1dC1wvfAO3Y5VVP7QwaPlZ72LB
|
||||
XmKpQZp4QCUNrdb1UhPG8Mz1vBxNSk89U3kMd7Ordsx0Kl8wHOQj5PhGJE2Qf/NZZ82Ph7y0uKxs
|
||||
0r4lqmtBE8YGX3HvJ+Sy1PMizz0JTq2US50SiJM71NvEFRqHhH6epnf5+5jXvwj/6q0tYRDA8x+F
|
||||
wC/PtdJrqeJ1ayJ8dv2lejoHAQT2XQ4lZqtSugfY5nGpbbY6HBS0cTSSVKgD+LgQTiomdBwRNf90
|
||||
RbyFbc+RseE9M4QSeZLLAkGP/rZPgcCFJDU/pHYvO1LsFqPneOjA78UdwMVRjfAED9UXAtHjPfYo
|
||||
TfFPj8IqfbA9aiM66a7/Hw0Pe+k4B8k97Wzwj0xl5OOoFeQG8R2dN0opolWYaPct2EvC9bWZ7SVr
|
||||
33dNVG0EGfXKva5V3bNfL4vRUkdSXWLkzYVMc6bcxrQ+YbiwVJlMlMpNFGl3mWBNS6hs7QOOB/yo
|
||||
UlVZ+Hd1M3muRTRkZORcuWnuqH1IT9OYR5rLhC+nxnmVExSttTfvuuDc6iFByguNpaLFTE0Sxz77
|
||||
cyUPfsj8V4r38LPhPKksxNm5H55TTe3LDoakPIcSq+jUJqK5XXhYIkUMYO4vrh4PrHVzU5dFN8LD
|
||||
Cf6diRv36MBK6NaKqJwfqiKkhWJhY+i0FXIOgFbQoZ2zqNYdF6yNpvfUEaZ83lhCDSVvclJJNFba
|
||||
gk8Ilo2KRrzoous+xr4Tw6aNTyWmHB55X6IVOD01yeyr0bS7QpbiNz83rXdpZ8+0jp4r44tk0DbZ
|
||||
Vz1wDxsUBfgvhJFxT5yGku+WewWAzMSCh7wT1x+HOxIt3veebL2JjUj8L6j/2OGH6GLfRL4ZRlf+
|
||||
5V31t7xknrUo47PltiW12+PrUq9oX0vCV5ukxii0PI6+EIhd96kMHN2JIUieXbugRT5WSXHnVxGg
|
||||
W3vYRqa8odmkUnezY1qpc6ur4DGk45Lv5PgKD/F4pLYukQHu44yIIwDfBPfuSIY8sRbkqGaqQX4A
|
||||
nz5K+INFBx6uU+pUKNMopkWPc18GnzOiApbnMB0rfX3pqqb7AxbARDJ3V1p9wwxPF58CDxiNoR2h
|
||||
n5CVKb/zL1pG3/XhTO/lPXQDS8eft4/6qpLTuFGVHNOS48tUa5CqCPAkg0rt7q5zhFxaf2dWDJaq
|
||||
Rauige3k9vvwRl51sf/knxmxY1ckqONJ9AR8JB8RidlUWqHYqSOPcU0T17nCTLjpsqHng82jnoeW
|
||||
UvG7oBHiO9LnRhzzhx1WBitIAgCYpXwiEHtCSxhl8Ri7yV0swxJKmMaEHg9WZT0DvH0Tsg3M5Bs0
|
||||
2KM9JRmkvxCCCxLcI2R9AWPrGfLOAmZmIk775Y/sSt8sq/o5rdpoD4UFsJkW6DZRn9GusfP10BbB
|
||||
P+osK6IJg00D1uAZ/4qX0c7F7N+KW5y28BVyAdF6gRh/WKFLAolMYtYZlZfW96ImqGuUdud0DJqO
|
||||
nBXa2RGg5ga3B92gVjJXYUWZ5XLNF8oOzkd4eCxkOTJkY4/8VBnOAHW/dH9GbN+Jzc8aVnAVMP9g
|
||||
Jmy4UAQqDnJWLoeY+b8B78xvW0zTpoAAnOyHalBmjeGasIz6+4flyD3SLJ+a9+/yYzLiIbmOmmVa
|
||||
7+Cw3N0xe5zVeunq0mVIQzPPVpRkxDrw3nmkGJhh0EK8PIsVrIQmaIi8E/wm30C22Ep2GmEL6iiz
|
||||
uV+XAeA48Pd3lNj7hvrzB+I5wFC0yaYFXFmkmYJL/54Rx5D5P/fNfCEwFH5hLWgL8BJ5IdsUeOW5
|
||||
T5n66eN4mrt/ZkoNPZ8oOr/WB25pOelVjHNlyBv8UwJ0l/SltfO45EbK1CfeHiHx0KfvUM8DFOWj
|
||||
CY/UzdDQqTU96V1WyK7Aaq8E6VrSLdLNqAj4b/Vi21fZgfGkoa3RUeWZSR7cZCPWIjGYldI+W5me
|
||||
O4ru0nQuJ1eLKDrqvmJRwrYtuhMPJhnMGcGMpbN57HGvNt4S9etW1wuDjm/MDTsKqtnB5q7yoYlf
|
||||
KeXNlqAtLE+6VzjJb4lpTC9d0my46JayOjCKO7tBoEHXtuUwvhzwq2T+hbmZy/IZW86jKphdpSql
|
||||
H2Td8MPVPV4RlNgZnLlNfA7ckV8c9wUkUEzTLobkqxUobHvh0ixs+PL2o2VUrmMHfzf+CtPca6R8
|
||||
dlgdFb5KSrPLY3FkDXYLSTPgnbrVW8BmH4ybcMsefpn0gQN+WMu6CS/iw34AsQlpA0P9TtZUe2eC
|
||||
TifhxrFERIZENEO0Azt3aAFRRopidvl1ktUCe8veziA25OgnhNl/uHeBHxu4VUpoew6tMYi/UocE
|
||||
mN+icEHfVG8m4Mi+ps15UKOsm8HH8ue9r4/3FgOensLDyFmUyHfdqanWVFaICfPDOVWa5LoaTeV8
|
||||
hJjAa+qs151qCTi5yO4bBTL1FTqYvqw6H9anM2WoPURTWlWuWl+hu1kTMBg5QTYSNHmE3Co4h2Da
|
||||
AW/ZugA18FyDgjzuNiwFcSz8Q1MwJ+0CxH9guAwBF6JLCm+zxwgKj9mGPr5T4kvQtO77/4CGXat5
|
||||
ycAeLtfOwzLZARR6poFBfGV9Au6qVxvrDWDBplKXW1t4nYwGlmhpVA2Syl+tvdWWe3X5kVaPnkl2
|
||||
lr429/6KXo+WivoyvdNgqnBTN58U0HrY54cPyMUUTSAZFEWNyHbv+jfesCvH3HqTzIrkf2efbGCn
|
||||
7MDu+yMD5lYbQV0WUlV2Pfc9HiZndcPnoqVDwWfzheqS+Igmdn4CrtX9XMnixKxv983cLYjQ74+G
|
||||
B4qlz+WQaWmUxUcuFNfqykCWNCBLR7i2lr+4NX8hXrtZI1BYa70Hcawuke5YFH5qhy9rgAG4e2cn
|
||||
1+uLUff3qkVMi7rfWDCEJmZCH8McqoFF5UoEq7+d4cdiENbkiRJ55lw2pvQZ0K+inEaWdwzchqVy
|
||||
3Nb47guxubMWSwaw8LwKZ9UZthcMqZlyw4ralOIyUX+hrH/fMZa6wuIbAzttSgRGXQzdqlDjjtdp
|
||||
1lDXt/r4Dq0WnRoGDlwYhjrSMsLbvjpDuZSAHqJ6KOv335bBQH0qfB0MKXMEbbOJCDxv3Drqhj0B
|
||||
Udsl+pUkbsDefqlj0FLPLAIe6fjXumnLj8SYUC+HxSUMFtTnnX+CE6uSLd6R6qVQwakLGjGVKKym
|
||||
pgI4qSeZjz7/f9m8PrEVQRtkw3uzDO9MnKahW1vA0cATFaogD6WCzojGm0frvCZ/yen1QjhtZTrn
|
||||
FEDGfNRXpjs97LMovvMRvmPGZUXNK3P6I/5eaHwqgjnpvVgmIevc46nemSs4XJLiMo+oH1d/5c19
|
||||
P0l5N45j+OTuD/slfPvOPPNd3PWRjnxj1o8CH0q+SEJndFS72VX2Fa69Tl9YOG2ZL2BvIWJbZV9e
|
||||
nsFCoeYADZbkGddfac3vBPzb89GyhpOdzCQZiyClHhTyNvN/zTrY29nlgmeWn/VhRujw+PSB2vTn
|
||||
tyC2HdGErXQoWOnib+DL1YJBSNgFBm0YrtZ3sZ57DnheWwZofNbEL5SybFUn8psiKBe9hhxQUVqm
|
||||
yIuVj9J8mhK/+bPfX816QRUusxNqDHpx0f4xc3oaEg+UQNgQml4r2rXp64RcpgC6W+pekMaSs919
|
||||
lnPO/X5r7VyLxd8LaZ3KPCW9IapEIUiol1+aZi7DhLdv2ckFPv/HWcDXoP7edbfgb2EX2YJpX30c
|
||||
hktd5/uqwlMPMyfaGEclkqyrJ67fe16TU2A2m4yWDXvL4/jKv0zeu0xQBRVm2dJ1ZAF/CyO1EqgN
|
||||
OVujKmo0d6sFmCyYZ1t0x5r1JFW2Ogn37GjCV7wVU85kVlsBoS3CPOikEjBHoT16IKnaEhNoLqdH
|
||||
WOl1GTbjlacmi4JPIaVDngNsbD3+UOolBh0rkV9AeBy+8ccY1wWDVN+p4u/4LFAue798IqJcZiBz
|
||||
+Nsp4Ts6W9U5q259OHdyVuyCbHRTuWgDcmVLtKPWQqtZ3tTN0sOubvJ+weHLr1AQ/LXgrKIuFDY6
|
||||
Dpm3pk6i06e6gn0FFuj6uAcpvy2Za4NYBUoCOjhaVW9JmVAkVcmyGCGM2qvO+R5ikBPlgamPOksd
|
||||
iYBRJoU4gLRnmL3/28csJnvlw2DlXE8dYq1E8o7T2YPLrj8jyFW4dWexgWiEyn3SdB0ta2mJlVJr
|
||||
6Z8fImhyx0w32Ht9RUNbbxOk/NT0ZJOTT7EcdeuV4T+uK4RqBcQYIDBahXjhX1QGUb8woEqF1D8u
|
||||
gslB6mFMYqmmhkYyDXjrsgyskPVrnIHq/qN3+y/l8DYrBdGp9PEeTe7ytVuTYHAzXvZHaj2SPvCc
|
||||
AFdIboci5v2qbOLiHzBHukyXSTdth07OKBfnNdzNIXmln+5cnwjgDZIgvRcGIW+jOignUwNoFLqi
|
||||
c8K8/oJoJ192OaS9HBPBQPQ0+5jeEpb4WSu0M+STKFqN5xbgGTn215V76NVlsMu5MW1CvSiiPzCj
|
||||
byacK+G24/QCN3xILZpi8IW4Y3bDHTCQMuKuZnrSGQFqqNytXplPmbIiGw8Fr9Y+Xb9OwBEcWKDA
|
||||
GjPZAD3PUTrXjRmJjW4feCXrarmFmEXg5gZZrQ+zQAqmA4dEEXkXkIgOcftvtKZ1KN03jR5J9fIP
|
||||
wKO5Crn3xEGTwYN0DxOXQsKLYmaoHug87Nze7pAG4xn9FL1TkehqxI2sDfpCPAaNS1I7APseQIkE
|
||||
RSxeQ83J0IJAHlLhQgyOD5AOhWdQtbIwrREhEsVRDokMb8MMVUj/yptU2tlsOb4qnm/0rjGVNGUP
|
||||
V5jc2UCZVBhZG8jB8baEjavgYAouPWji2f6avs+XceDDvwF54Jo6gL+BcMxgQRKvQscaE8p7WTqd
|
||||
yUkwqD6s9fiuO5JrINm8MVwuCJsuWEru85povP2XJHUOJigiHC0vCuLoJJ5r92S66mn6LkvDC0R3
|
||||
db5AiMNiOYNowjKw7b6wH61y+VisLTVMKnmEdYYENTLVTfnhTpF4ng1iLF3lj4+Ac+pHFpN/KL3v
|
||||
YyL/1DPk/MPK8TryyrX4B7d/WwLj2lddpu8XzSStIOTdcZl69KwaSwSiLXfiYoQWQJeHgnRdTZdT
|
||||
/8AzZrKZbpxtKEhTbGAAD6HEUUbX+A/QUcuCqo2yHS+eTRLD+IifECa5HhFNhoK6Y1rh5qTErw3n
|
||||
Z/P6SaejUs7sMnarzxETSg9D+kCWfw1z/3+7o9yJjmdKo5ifh5vfS+ZzgxHga/txANRZ+nqxqUj9
|
||||
CdCK+hgmWFQApMmkk1q64x9+CFcpEdeyRy41ZYlfxmSc2H3qvTWAHoktK/tvlqJoYcyXeRBb6UWj
|
||||
Y2I6jseJLN6DRkidckCU8+eWvLuRL+gwmDFWSAi9FJyZjiS7fSmaPiIPz5E/y8RHs00le5STd9pu
|
||||
Po7xmSg5swda9M4CAy12WBEv+pM1t3ADyBmYsmhkMPypoHbJUqD6Zb+ImCanF2oCEBGDF8RP710F
|
||||
yIBsBrUB1S4U0yubyAXn9P7+/6vjKlR86pmTHtgRgvKKGwJ0kLTMcSZ7jHQBdGmgABEnTGqHrwt6
|
||||
jXfl2NfS+CXqG8gKeddYEG5gr3CxkXwF6nEN43vnvvCwsW1T8n7WqHR0HGzFtXiox6dQQMGQ80PA
|
||||
+kfw6Yb+t8NGRYtZHFLgx63AcE/HKSOyZXprzRjDtaVVDvRkU7P1N19NNbASV8eGRNKJfW7SpJQg
|
||||
wGtG19Lyq8QQMY64Lpf+JI6PuIXO47MSk1zTT2koOmONAiLPbJeop4ZYmJO2E32R/NYF4R97TICk
|
||||
rBkJxDbxYyf5NSptYf/efeCY/gKUM+IeqViEA6K7b4F7SrftI6H5+hHEFqcmUFeAzr0j5+Y/RCrx
|
||||
XkGVAuT29F7/ChfWymrsp94sk0Ch056cfzfW30G8+kFm1eiGaoQZ+la5MoWnvng3ex2NRG4XPNDF
|
||||
yM1BjoGRY/0xYAtNkyPrT18OwosgXmeHGWnlZHnU2MoSJKj5sqyzZAjreMhMTZQvQoh9dpY5zn+t
|
||||
/GkvVJGUVQUV8x9X0Xvaelir2xW7JBe6HftXzu9mCpwgrKNDxXBBV7skeVTN0idcntHWvgQjQF4O
|
||||
M/6rtqGgxH6V2/vujRH8t/Bryyp3/q6DLvWVXc28b3FkG2I4JsSXOyM4U+rgN8LXjl6bwVVGZ6Rt
|
||||
TkvLP5rZcBFaGW8vNbEgvfzKn1v0rZSV3zNpKzQtvlGHbcy1p8Gnpi02f09zT2k812HgyMn3q1u0
|
||||
t8wHk+h89CsiRIfbHU38E7oNoYB5K6kwnTicrk1Om7keNrXyr+c9sX65pTe53+BOVXwDX5R5ht96
|
||||
oCDKH2RYovcM+Xwf18N0ttRDBOXr8K3Nqwe8ri/5boIUi/AFtMd213DAHXh6F9q6JOi10Mg6In7E
|
||||
ZOERhLdgPgGJuBfJLWvdRLvijIXcUT55jhQK+FgrjW2q1NYgdXa44wcwZ3j9cKfo3ZsSQendPei0
|
||||
AYoBENxnd583bMPlZndLy1FO6ldDc2uhR3IKS5jHoISxtBIEj9tqurCtDcqhxT02WONU+Sg1XMC9
|
||||
YXa/HckUF4oD3OZzI5KC30ntw7xWMLeqeBsNZYy4CteEHPIGJbOdWw9W2cnN0gjqpBusiIGzeUrx
|
||||
FoNeTcW5i/yV2jGRdoNmpna7X2bXCgjJdkDXbec9yz2045wL2REny4N0FNJPy0ENWdXsT/irotPQ
|
||||
evO3OihlEvP/jSrUW8jwk265lY7oWRFAX03avcw9Y/CL9fFw0mw4d15tGAFZ3H61MUXzUSBnkoZy
|
||||
UCbRRseAGeHdM4QBFT/A5QxMUSLhWKLXD3yjTXKX66lCEsbsdUyjzzz0x8SgGOiUTr8Ji1a3wxPW
|
||||
1Ede5w2mkj87bgPgubMDnfVWEbNuasfmDFUDk2eW20tm3snBiJticpvas5Lbxye2FVeQXJaBsVen
|
||||
bmd++ybA0QAZSUOF+26LKcYxnKnd5Zq+/aryjhJSdYvaE+mPhoWI+QTZDHyACJjQVQ5+pLKECPIo
|
||||
vqn/9TfStaOBtQSwG5aQUdR4dBYbfk7AIrSOCTbGIYH3A/CbeueCwInVqBU/tZWSi40MRKgDKV/k
|
||||
Okn1LZfnjAiAZXisNVb+PUDT7Yo0G8EGLnafcwMc6h2gOcMjeGIlZt9orJvcUl01go72xEs0wweH
|
||||
lHm3rSwl1oO4tN7o1+0DiYBWGd27/DD3xB+AKeue2fXPMgp6pgfAWFVsd3SCJwqtgasiKLToqAiF
|
||||
ALJQnO3yPu1boymCDH7BZqKBu0JHxFvHeMt1F8MkgpVlsciICTeicYLKXEQ1J/xduTfWvVLdraE5
|
||||
EZoUEm3Ppp+lNeVT6lsZFRt6sAzI+AWG6I7k5+Q7+EeynSadCr0f3LY+axqOb3QbRJzWEs8cNnV2
|
||||
Z3VcvwEU9I4yqNwmvMGJ/saMSfpNkatWxqEpeOYlxisQJRx1AurOU68ivImaKgUVNoprMr78HDqL
|
||||
K31JcRFLEJu8VYnaOSBOe9hQuWOUkbUH5Ffq6FJwdh2MnLPuUIA1xMv+C0lxaxALWuEFINLICyZN
|
||||
Y8sMJLm5jUfOuxFMoBAOyapMGYRHw2HYC38MYFcX8PCQsT9nZYd58AZHMr9i16KPYQ53kAvc+Neo
|
||||
fLknRRNOOZP3uiKywxIa/BKMVnawcvUc5km8piyzxzxkAnzhktlZt5mrWwsZUCt5qMGmXbv0+XaW
|
||||
+NmFiUXBWI1ScCaz0JvAShfo7t8Y5Ob1WPsvD86roq8ZHrQKO2Xm9Zulli+TbKIRgiLBWKgsq9aI
|
||||
rbxrWl4cdcBQY6WsYFTHQPf8gqGycTd+xyH82qDF//nj4oXRFedA0z9Eyv2R2jnmgqOfEFgSKkwP
|
||||
eenKmdtVdFEPCQs1uoEsj1EM2w6762GuKLxfR6KnV1dHKddVJB/7sqs23ohlcDOeLK4cttDDMHew
|
||||
7v5hDjHFE6/3PwmWN4yl1qms74U0UFe74WCAU/vfgYshiiZA10DDYAiEKuFWTauhZXmfY0/OVBFr
|
||||
Btnk3gbrk4wHBwIuLDT9ss+nha5LLOGiCASTL8LRpn1LVRqJ+lbDJnDlez5tmQGbeUdBmKF9lUAM
|
||||
BIuRjwx83KPZ3XGu5x0oOzTdFyPmLWSCi1WLflUZf42fFeomV4E2d6jkn3ZLAjqf0sShEbk9XCQD
|
||||
OeNG8K7vs+MXQ/hnqLo5Hsyi85mJMgUGeF3LEuY71wErswSygHa6Xhe0GWruFmGKP0cYNGDb+Nfk
|
||||
3csSBEFmNH2aaGhTlNcvQDSw8TL24pk8yjByb6mZOKHGOyaA5Anrc5RJCfd+bFljv2SbT3435bSD
|
||||
Nmkm9/OmFoADj0eH0ob5wwe0hE2kkuMkMCGah23FPCTN0iwDn71PJFz3f3H9I0Hsj7DtGF0lyNI4
|
||||
zfhMkexsyZmxfeXgYzVkmV6VFX9kGAp30Zfebehe+tZNAKmNh6/xX1vw5uHUEZTh7WbYapVUSBUh
|
||||
d58lpnGPCecQF1RkgiduGel7Z4zjVqoBbUcydWsMKf2U/eyb8JMfw8HX5IpgTqlNRZojwf+1xEG0
|
||||
8vQQvB4YJ7PQ0GFqAw4owFflb1tEW0O7mqY5WksR/NnnGM60i7+uMCneQcH0tbe+IwT2uRqQ4+xO
|
||||
i/iwH8z4+WBzggVmOK5/C/lSGjdHG68SqRWfBEMaHEQV6ndxNVJl2R993y47KpJb1AiTdwwdrTps
|
||||
hthLbWWgvumPtf7sESi61e0GBCHLzN0Yr5hzAu0GdQn7uh3J+W7csk3Ixkceb+qwFUP6lPwfft+U
|
||||
HeGPOphByNUWWj+vIlpeLibVPBcX4O4lHX2G4+6g6xUdIVuO7GzIu0j11G2JM/cCMdj/8bxdsPfP
|
||||
3ayU9qsBWoQsmK/mcb5ahMTNlNKGKLMazoEbGm3ZMZSVMBkvnQJw4UlKH0R/u/LuBzThfOJAP/1y
|
||||
e4ALXBQmpFh7glQ5M3y8A2AvwzNOhq5lkM7TsKbt1tJxq3f49SPORGeB1wcuXZ0I3BxFT1cdMtNX
|
||||
iak+iHcyG1JmjMm/as4a670nb5MUBhqG38ZD9ld3dYo0KcWsUVY08pq8czT1Nw9Vvtd+jRPf4q35
|
||||
A4rGQHSY8pGrsOmFoA2RZXKcDRiBngECygxlBnsdA6j6MWAaFqER40hDDqTwkvYx3dqLQ7q9KFcs
|
||||
HtR1Hjp+6feP13j/cs2dFqQKDtyx49HzmbhjgO3FXgiTCyjEjfsz4UmR0dab5jRZvY40Rqm72yqA
|
||||
syOtqrbwbSIqlo4fl1Je0QYKdULABuUoOGilD3XWxMs5d78WnqoX3F0M9hsI54TupzikYwL8SBeD
|
||||
RYUTLrtph4gams9OVrWN9ykZJHgIh6EwHQynbtkpNvmZwadaTOuGgeceO4LXMdwnxIPhxNGbKFJU
|
||||
iRLIG1SHNxCzJ7QaU8A06+yLMw1Lg82Ww5vRBV2aRjgm2G2S6fx3McLqmlo9snF+tCp0vD6JGfTB
|
||||
EJbskdcRX30xX2pO4hg7cTEGPH/Y74Mo64T9codciIZRO81VjB6RRprUwPmnaamhmtdipTx2c5BA
|
||||
Djszaf2rJ6vAdRnDFDFwuIF+BFjIu3G8KGikivkW9RrmCpE6s6K9kjLAFXL3MNLuNAedObZrWRCN
|
||||
8vZKji71EqrVbkIyNG5qYMxIjXprHxrsB2ij47vgd3RveKl/YUxG7MBCrJ/r8P8zZRR3p5PRmspT
|
||||
r+Kr0Y9H9wco6SVETGXE51swH6K8Img8i9L8BADAPvBXMD6tlQN1AnR4CmFPQae8uGOSCvlOt+R4
|
||||
1G0eztmaTNY4keFjxaC7QTYTRRvpyoU0bjlHdtc3Mg+9TdJqdJuM5EVHqPh8xWEVu/rY0lR99mcL
|
||||
bT6ii2IphKpdQUGkAAAjIsrdgv2UzE2G0DQAbhstXTeXvF65KQklBlOwLmbd2F2hpMpWndH3Vpe+
|
||||
7poK0C9kbzpcrrxOH8wgWcBrVUaINAOcDr6dEfdIpijHr6aYhwNtZ0YW3AP/SL/MBe0Nf+NWQ1Z5
|
||||
mHyb4XoK7tm13ALsprmPDsOLur+YBluMrpVU8FcH3z3bvSCqA4zXwoX2U/iZsYhzTGsIgHA+hF09
|
||||
Zwsskopr67E2qukPgh/N5lJ5lx0oi9Uq36BTIda1jDM8f+GoIgK6Cyvqc+a1hgX0DZkNGPwHJPH/
|
||||
u49/jGVjtxJ51c7XuBHI0FRR4PD0qvVP/kUCamXDBLOwxj4PPtBGk9TxwTETl56NWsKczO1/4xra
|
||||
Au4kAy0wK9nlJAYPI1SiMJwd/3sMU7GThzieGAWnydg8P+t6Uf0VCkU2W/fHix3Od8p1nVsGVzcL
|
||||
1O7mfdXydHuqmhH94QuSFohgB6pV5qS/X+ycc4HMtoP/oquHkzchDdhG4beJKn8TvU1lX3ca1xJY
|
||||
udP3czsyT6VNsld1b8Z2ZlAELRcb7eFd7e3hItkqmsD/i2u9AlO0XbEvaxDnSUXrOk5FGbIV0KiX
|
||||
5sBMx0I3M01kBHLoOzEtfnQHatqZxr80qITLDRdtywsmbXV3Vg5LOscb5Z5zhrBGNKXfXuyrH28w
|
||||
8fXeQQIeoe7gxzsS7RBzPPcNIeMiT2J8AVvwfyH1Zi8+cIYV535HzNteGteIFn0VkmqzLjkRMCtb
|
||||
8Za/IPLf1W5xdIrVlAWViBgBCuZkY+LvsWKm5mbfRCV+Amx9T8krZMJitEiD5dKwSwEwTxA/eaxV
|
||||
Rmr/pIFZngyq//1J/JLgetVTdc7qXKsJbaGMDdbJVGx26oyunZRJf4N4Pkr2EKGVylSecWkb/OtY
|
||||
n7rQNIboJNUNtNaHlfdN1iM5gzt8Wp4qbKoTlo7QQyK06dNNnTfckvDaDPG0JqYLXhAviZEPmfYC
|
||||
rc4GstyhYtQDsN582OBpGRW8DKSD3XDAk02JUuIg3LCKCW5NIjg2H66T7YW6iaV3Rc0z6JmlCmiG
|
||||
C1OAbXcJRjRaRPfoELemwf2Ag2NKVG3GrIL5rB4KZAA/yfRNHeKD5DQk31gECb9F0csy+sC6Ru0N
|
||||
FNR6J5pjAnvZXvAHDDadTs3ZFO4qZ+FrQtbdy0HXJnj8s4B0de79+ziRQ9OQc9M5l4pcICt9YNNG
|
||||
FeQ2WbZFOFHeSZIA+esTX/lotq80ZXyBOzixs/hm9loBR5k9ulRXaAf67UqnHREywj7HIM8YfTD5
|
||||
S/v552otwqbJYvE9XsGgs2VVojfa4wGVn1v5fFDek5hZ0OnRVa8gQauHoyK1IRN7sYm74xvb1X/C
|
||||
e7P23tGIcFjBKncdpQBUufufiUQQv9ZRwPJaMbvxmxF37KnNGhD8ugRC6IvEwYFw7GnLIbGnBKJK
|
||||
qb3jd48Fwq3YVmT7dAbxoKM5e6jZ+Do8Ert4oVcyx+ZIBPHxct1G3aSzlw+UG7c6nFrUDEEVyO+p
|
||||
1uvSlMdiN+dWJqXiQWczMZhGtzxwIv03fXwCG9399MV9z30bTdfKevZPjOy0tbJw9PXpqU5Zic8z
|
||||
NXPXDnQJRZkhCF60OaNzE7x6tlQd3Bh1G0mhkAbXmrt8jdhZbjknfPI+pAb+BGChRwVOQyy7Amqh
|
||||
b57n8Mob7M/phcJBAZuGgicFbnZCzxfqwuJaarBYVFs7xOZCKokqDEwdia/1kaB0Ba9I1zkwE++h
|
||||
yX6JX8TH/UBbBUCdGDUz5eXFxCvx6sMpqW9R+XIWYQh17uaMa9KyQoS+MkLWAxCVOG7kkmpRDWxC
|
||||
msvJnqNmJXaoXO5lziz9OZH2DrD53j/08zgoaArdwpn2q2eXJMdpyMN+agsDkO7Qx3rqbXyRuDmS
|
||||
q3N4oZi1fCf3UaX9/tBppOgiedSWFWLD0I4lvYdd803LUdytkexDlDaupNwAYW14WRaOXhsaHzq3
|
||||
zW6oKQpbL9Mhiwk6iTei6ZtexpirgDh5nYyqLglXTbc2NsaSEDVUDvcOWwg2UM3bxwBCV5RLuwQT
|
||||
HECMLim+wrETqYo7W/JmBL0hLWFZqA2NcB6vJve5CTCEVX5B19qxX1QcI5cKqShMCQQGuAKj70qd
|
||||
mUjvNpzQce2PUeJdM90j9LYUPQF4A041sIfuDYRiWjlHHIVZxry1/feMtRzcRu9yAQVdA/O03XkI
|
||||
VbUkKEWL4537v80n1SHDbEwv9M9/kiJY0WnsY4K6o0Vq2NWFTIp7J41fPiPAo+KONEuk0WozFoY/
|
||||
YWLjBguyCVf6OaU9k6jDenUo4JM4bjeXPy31BQ62M8O9Vz0mGxIX9FcLdepQX/HAjM7CECJC4KZ2
|
||||
p1MyqfrtfE58Kdn9pEIkKvOfop7xhd9BoZh21aKLfJqlJXx4nTOgDEnoB1NBILqEf7eJX+wLXW3Q
|
||||
IZGdlGbkVRDWkqZt2rmWAWHeTzeYze8RtYzJFoKGQDRlTMbh2mPeVXvYHzNdTlPK6qPg0UlV+wwt
|
||||
uKNPiCYIsZS04voHTLWj2gWr3tZZg5sKVhS/5bRfaYLPSTu/+DJ7Sr0BEyKktCBINToV6YGfDhXn
|
||||
dJrjun6U/hNs3BKsgULFVbt0QoLeh0S35lAXDCp/1KdWdFMMAhOj1z3iPXocDeJBljOO53A7hN4S
|
||||
wpe0zHeOWHINiRxmVt7kkzr402rB25PurYOSb1SiRbf7MFSfTTOMt8M5kJnH6ujUtJphSdjg56/k
|
||||
IU49998CYli1yb2ljBmDFvUI66iZmnmKCDHtC664V7C0Qt5jloTXrpTlgSIwyHlCwUqybwV5+gt4
|
||||
omIaGIxn1DenOoOtXUl8lNr5RDABbmUx+1zIW+Bo+pySpMT3x8dIH/vr+XQLjWqBJhMv8fy/jSUG
|
||||
cTBSBzhBO2NYnBnhTB+qp3c+zQbApgp0BO1GicXwOO6FtVAsXvXnruNeOvUo+kv6D0wKdmIj4WFa
|
||||
Hnw9BrVMg8MObDnBBHbKg2DNzJ56xr5/1XUQMoJcDZj0AEHL4k4YWghYGL+aZrdrYPvIHKDH7Vzj
|
||||
SGg8zC+dgREKGvvnBT+uVc3/HHOlm4Phfc+tmk+YuARVm+jGUeV7GbeANm7sGHEpW668Ky1QDjv9
|
||||
1nUzzK/Q75D7HOEpok8SPi5Hur0rc1DIGsG1G5Bam+8W/aNimKiyFTP4ALCi7E0XXQCJBBAUt9mo
|
||||
n9/iHjVIiOZEJZF11h0ls6SvBICZjEWzM5mLTnvkkgeh8VzxpX2JP0lueCI++E6o7SNnz+shHsHT
|
||||
dzJJ7+vRZLuyy2NGXVoqteE/1lvxlwXyljhI/nZFeNkOUrMBs0oGEN7u5djxHXb0UY8ayn9tH4Pa
|
||||
+fYkFVsicNM88qsY4D8SAkuhP+SkH1A2WvD905zIM9GSAFBn2CGi4IVMBvn3Zhh/X/t+gFOGQal0
|
||||
L6+LDqY5qs9d+So5cbWYaWwMq6SQm33hQRm+hPtKnoLQfn4L7YsvtxpNYGTU5jWSNn6SV49II6tV
|
||||
mfs9wwj7AgtGf9MA6yqyUtV7lVz7pXA1CISDcW/2qARTMQTyPE1FKC7Z5TxLR3A+4QZy/1aVsvdg
|
||||
/zZwiHj5qXR0U11lq9/8vYpeZSdadCZ2MQb0G1wLZLtlNRo1dTNuwb4FgPWDJ4a+wwBjcS0ObiUZ
|
||||
LhOT7YVxsey6ycAVtOSLMCHY5B7QeGFHkXnwJezAbgTp3HtYtRuXG0zrMPjGb+NrWnXuv88GjfRS
|
||||
q0r0qBifhzVCgMryAX7hohRO2MGtXArYMJq6tmq+aT9TnnDmo0GNNr86RUbzfuAm82FM7zpjGb9I
|
||||
jleNPZMbL8+SeNUa2JSo1tykxgM8zvuL3s/eaixDUV1IH94jGQxkwvX8sb0Z6HEsCYx698uGDmUO
|
||||
SsI83yWV6aljcWvBHZTiEJnOJenCT1um2LCC5JPa5Hyy+gZ/VS4zMxbkoIH8KDInp4sqy1mJxSsO
|
||||
/eOyg8M1H57UO9MxGDOHuE0aAUUFV2vq7iVOgGMO8+GHVkhgIBqYyymHAGKWI6XsQ0CMRWmYS7Ti
|
||||
hu2zS6BYA1PULoeQZCQmIM1iuMg1fLuGZ0eUOyQeaZ0KPUZkgJrVvH1MgZxRoIs84tExLbkDkR9F
|
||||
U4sqYCCaVzq6ZoYS1siYGcj6PDD6Qm+DJuAt3WiDkBKzTmQdnVTWZvLtZo//Yl5qqrZ0V19xQRwC
|
||||
lBIEqE3iz3/x565yYfdaNGjgmwFy/cd26SxNriDY3neGla8hVLHW+gM+/01yQ2OdarZaK3BCHIqS
|
||||
newq9B7XzT2TBhz3cpV6dQN6e41JeaosipsHh6eJ9BgbIshck+uOLzVOkrR3sJtDzpc4e3EOFtD2
|
||||
OnkTnjssTUMLb7d7W1Y3ME0IrZbNQdk2Ru41a09DgFtFIPVcSNfRYYy8HGGokwhRJeVuVyF79nm+
|
||||
A0rDIvGtv5OROnvfBGN4n50ViciZxClO02XaGa+fE74u7guesOXTZbmoZW0oSwFXyHL3cy0IQHd5
|
||||
xTi+nsyOhAsbKoE5UVDR3oeobQbmnbLbfKeS5XEpF8hBEajoRqsGzPOjjl5jBidddYDJz29N9JRJ
|
||||
LKUpBRlKraY3AGXGAHfJGN2ZDSKIE92ITguHYOzss5HB14g/RUDiz68zptxq88NePZkkpoYf8CPf
|
||||
5qR5duv81vP8Z0YeaotTlWr5s2mS52jdTRSB5S6btnaGyLRzpaupnf0+JNwXza9P1F7Q4fO9DZit
|
||||
HUEvauYzhddMro082OmzdcgSu8C7PkJ/VyTDIZpN12FqE1jZbpI2FsSYiVQOMrX9UAxatDUFb31x
|
||||
ijqAagxqowe4auHy2F38mpSsWroOzySxGfmd791xuXBBaqP0xw5j43UYumi3U0hEvr+nBKBHeue2
|
||||
+0o+ZVZS4fzffVSvaTUv7gzk+2XRwO3ctzXf8teCQ7mX89bDBqxa4rHlSbOTq6Q+cckR4x3flGHn
|
||||
wlne9xUPVmwN3xTZdLNHI+1/x92feuj39xN/M97WOSXfLKYQEXY74l2fTzBv5v33dRIrRh7snq4P
|
||||
t7UH6QeHLuKKBLeS45AEhfsWGTR//MBu9ENkpCLR87ZpTjaecz8hwlgKL7cr95PjOJKKebePjBcG
|
||||
FFccgDQPRIlIV1sIcPAfLuPTf4MVa7cgDhBUwYdNvCo/efUVfkHJCdTRiXKackN/3w3wECfxh+Z2
|
||||
bmFMNlX+eRlao9qDzIAjrcD0Uh3wqla4CTmkwYXKuarsbAdy2syC2Li2QJ4N4jgVkBGKGKNuaOra
|
||||
cfTKpuXF+phUEQ5rYorSg9t+Lru/trcq5oz6aR4QPIbJqTBds5A467BP1iDiwgVXh8bU+8Xq5pq4
|
||||
FbfTrglTFFW0qTb/uT5iqA45yvm2zJdRbQB4XmpCgHshE0y0U1IkSEG6sDWIquvwcdr07elcUt15
|
||||
VrbmS4zohajsislMkqav5zv/W54fzvSXta4teQ/jZrwwzxSlXQuGCVfZM6fLLBNERYQACD7B3BKA
|
||||
WAdwCgqRXstMmdjKbXJGBprFHbcwBK6UR+ArCi40+r2yv93u7sjV38xUXlEn6qFGIe+W0BEsa2Ku
|
||||
ZQu3GX9XdZhN2KGwn5Tg43tSlSISsyWfxG6kNa2Cmi8N46YfCgvd+jSn2rVof4GGl1kWEj5UundE
|
||||
OJ6io89bv5t5J9PYNTXbqCgeF6N67NQ4vlC2WWBmPM1XRlEBYouh+3CyvQ51rMHxHWr0rfWNFOZt
|
||||
vr3A28+iHx1PdzCBRVZXJSJ9u/Uyxfx2pPXBQ880vTceVzFzHFg1R1ApvMaLivDSn2Dk4q7W++Sv
|
||||
w4TFRVbvDMxQKo+qod/wKQvi36gwTYHgAx0A8JXCd3V1ZQJxg168MCiq9y2p+Pr4oVYhTOmcC8vE
|
||||
J0NEHcFTexw/8HT2rAKyMkFlDtoowy9kFpMi50SeXtxCXUsdMyxJ4cMluN/R1swd4GF4xS87HERP
|
||||
0vMz3M2KiNvlvLHPUmoN/mGuk4OnucPEY05uXJON4X5jEDzJ+LkAuPd3eLgeCQjGvN4L2BoBGzhF
|
||||
9uuwlO8yIbakgotQ/rBlgYKqsA/JXB0CA9S2NdSygzRr0eUx5XmTC7ma2PLb/8mTjAKdb99IsBnT
|
||||
enFbBKgaEOCywuasysesOqHZeDR/uOd/pbsWGizdHXbzvs93pE8393z4pFlu70Td6Q9MJAM59FoF
|
||||
/Vd8Py7jB02SLXulNehQt7Vawsray/pxFQMb8JK18AcUmWd9xPnSgFjd+ImW78MFtP2KdVHdMuI2
|
||||
IFn44rtQaPjPN04ZujJs+jiEqqNUob7OBUvwyifTqCdun8DiXoExA8f5P94gihUzG/ACqXuceNfT
|
||||
YpaltdLfBYIaI89h6zmcRFYoTdItNPd5itxPttLUt2gdLwc7+til51RJNJ7yMyFKOuaXmU7MRv3T
|
||||
eUZ2aGTuonu5w/b2BSmfEMKjCH5kOOe1WCtg2I7z6BACkk+fWLe8m4FbxmXFou0MU9M1CW5W/gsG
|
||||
XvzEnHXnR3NNAPJkJwph478NQh2/eHZv6FFZmXacmRLPAg15UIiRYU9g66Au1NmtLaeTFt+2FPPU
|
||||
u9A/gKNgxijFuQXHf2xPBbqbsIUZcX0Xl2FQh16GpV30rAdDT+Rbd12avDkadjCEuNA4i3bh3l7K
|
||||
1NLTiUQPKHLl+rK02xAoG5rp/5BiPgz7GwsAPYZZla3EMP45x77CQRXqRxI0epXQ6fIOJpqHI7tJ
|
||||
oLIdo3nxuIQNbVqUt1RyVJr7o+OMoJYVM5svGIv0kcG2bjrK9GVtsfnNJhpDpDLptF04p9cfzYF3
|
||||
mYDY0n6uZfg0u4RCcNZT41n+8dpc5nZ0ysU2xOYlYAn+G8M1mKRMj/hW/CESCUDVzpZVdL0nlpp1
|
||||
5cpWCfXZ85bCzoXZbKDPtZTb4vuWxWBlHmjg1+NK88oR3WnE7nFah8F/dtVbW0oyYNInkHxU5P3i
|
||||
/P0XFo4hmPzpi1WzeFS4EYuYqrIkUzVH6K4Ewur+VXA4LabhVUraJ0sbdVzl61lH9AjP5gmLyq0a
|
||||
k63Hmh1ZqRgmcdB0SV9/1Xwk/6/GqnPhkyQUn+WpozB87hv0cRm9h7uYoFUcnpQn0t/0i+1WRy7t
|
||||
Dy8yocJKJjsAsyHgxK065IyGtcZvnPsmtq+djp9YLkl45Q+so0T2Mj09ZjZU/hlgxPuxaJofkiXX
|
||||
dWBm0o1NxLnkmk4UpGFnhxnIhB5OuUEfqzkMXZIzxJbFxLEgDPiuIh8L7KpsG3t2x384iR01zIjv
|
||||
BqvJC2oKv+7cZTKFy13yk6gamjAqK96Ixs5UsrEwjs0ceK0wSxzmfXDAkTkFZpFjQGMOic9hJUqX
|
||||
jXdtSyCzDykDwUVRIrscGfpdg/ZSs8t5I4oMiubjWmb/uYF5GnbjTVDwpVjhCziNsY95gFJq5fT9
|
||||
ZFlncwJyhIxtumgaG1UCrtPpyxny8eGraHx+WPtPWJ9A56t8LkfZOzH45ObW7G39us4yftWhuEPp
|
||||
uG7/slhBEJs74dpFSw4K562JRb+BYrcjjiGRNzl+SMZGZzja+qbRdHeAcagHXC4IBUMDFUAJ1T1O
|
||||
jH6jhrZ0eK9dE1WA2kigboneeACvl/Th7/NHXIp54PDlz4V5oWlUZAOr8z7clDuI8MdNqEQts1Fd
|
||||
6G6CEzK32cJOFeFFN2eyd/zPE29TY/s8+QSTZGeKHvVtJ6hKVGhmO1XOdS1WO05VapHOoBQjN0dj
|
||||
k/UqwSaI3mLFWifnaLg6xFXdCLIz9yYrfyjHpTfus3TZlqLov7FdoMG85sU6Ng7hespSjGKJRuFk
|
||||
4GgH8AGrewksHfC9caHCFK37Vvd8x4ofXggjsnEF5BZWLi0arFuDj1ERCEfx5Rrsi3snZre6gmbM
|
||||
UQfNk+hu1Wyd32ZqTpoaXM9tPZom7zV0LGpDEzz5doD0KATns20EgKrvXiTRR6dtzp84FGWlAZhq
|
||||
WhBJuH+bnI9CGUDLkljHq3YA/TxZnKKs0ozL31JJ0OQPleofanSMGhpifNioJFazFwLgDtScNMnM
|
||||
sneuZxywXoXuDroqasIWsb4ev9LgrTXDCYJvf5dvxhkriofNWeno394TxDBQyis0TAfk8pnYSE7B
|
||||
ueuskAVFAMNan3QEI458Hu6YCWrb8GjPfiv9d66UXhQXZILp+0byttydWjgNPGquqSqt1G/ljfmo
|
||||
OVV/OFd2hYR/fQG2Epo0XpXo+by4w5QcGZT7c7EomWH3pnH6YlQhvi0nogIZ7U+jywX2lofltsG5
|
||||
JD4Lkk/IZktfYNeqDa+JVA4DKYFnepABFBRkQ2Zqt2Z3vZcOlagknxmVjJSEYKLWiivQslRUXPQA
|
||||
tgKwlqFTFWZipNb6bK5LfxI2is+0s8Po4JDjiajBY7hpbu1VPLb+pg/CVnrUX7sDFh5EibNhROPq
|
||||
gDqJggZxxYOqu93jLiB58tl8HhH8u0gN8y6tqhyi0vibZlcbxNkYyCs7fM8D/bU1zbuHrWBDk9Lr
|
||||
zHIgvaIFuIshPGqOjsv/NgsIT+A4rVS+eJuDE8OcJMiuuU8JWjbezChdXGGl0jZYkDX7WmlFORRe
|
||||
0chVFn7SkC2bTHYHs9RNhnbaUwMpXGnYBYM+fOHI5nY3OefBOrjfmjEHVDxiOOTTS1IBDFaDbKR1
|
||||
iW0Y7V47cwGebw4q9s1jSg+BGGQvAQyFpvtriq+ocQzM4C0stFD5otXfRi3pBDHZuWKqJGKolIWh
|
||||
HQJ6o3v7b6rfw9CcSsGKpLVKblQTBcTwY7e01rTf0J7WtRQKwIzWxaU6IHdW1kNHuS3hV/JYXnYC
|
||||
pWwEH1BbaiRTBTILCP7c5+ZBL0Zp75UoUvy9f2MSaMHf+6xw2sgeoU1fT1mLdQ3vrBo75w9DAg5W
|
||||
NOYS43QLsQMMBT4Am9D1ngPaVPYYVRbFD7LAa547GpoRIQzOUF+p3gEWMj9VjH6ByNxE8qDtwq+y
|
||||
ECS1Btr3Ps/hpg5cZ2QBx5sKt+YAoFeGTGKRd1IGnEqfVNWyUf4OEdORLWDqOVjrCwmc0THtXjab
|
||||
R/lX45+FcUNjeiiEJvnrfdkBgdgo90b3BfA6rMrkIVs7vC4XKOhmm91UpynuwyCIVg3K2PsLLdke
|
||||
zabinzZbEK8acmQQwkj7HMRFBfXTW+Dpt8E5pUzZxP/T7NFstXBvLNbxQ+h+kaAGpvdXFy+0DEA/
|
||||
wqx2fkjuQMCeEQcsZ9Qpqoe0iNzZqsEWxF3PtBgntMSYcVXk5ycig60X7tPaTMQQrDKyEZakDudp
|
||||
mxQ4w99u0ytdEJabVNPcmXhXK07ASNVmlO3s018qFAiMhRjI7ncfFWrp9HPnz2jJjSFKHsZ0OMdZ
|
||||
JbEbgrT48JSKZu9UstPCa8tVwWg2OttBmDeU8ss9kdUMNwGAub1h2wdsAsMxOz/s3YB92fD9i9bY
|
||||
wUNnMCl2vxO1gPMK8Jh1C8oA04uo5OR3X4i2R7hGRTmbNbLEbXoFNO/OgcjS4iFTU8jgLpubFbRQ
|
||||
Rg2AFYL/XqTqUfqKMB89Y9pLUehrihJkz+OfN+rwxqCrN+bvJgNxi7C60r25+S3FwqPYLHeBHbFy
|
||||
dEy7pN7p+u2Q28KyczGr5Zff0cQjG8NDEOsoUzzAchDo9w2Bpk3sKCZv6GLyLYJaf+E1lg2AGlLq
|
||||
tV6Gj6ayQtF9IqRT09wUVLgMj48OEVF3qbE8kNKtAvdEkpTsGcOw7522+e/nq/1nEdqFjh3UyFCH
|
||||
s3VDveozbAIWi7uNnWa3OeD6YDdSGiB7V4PSGOLuL4YBojZh/xoU/On846cWQ9ObTOYM4FSyrKcZ
|
||||
WDWvgtMP2JjXLtg5RF/Csg7XWaMKWa8qO3pTtvLeDklL6U0Wdp+hjQMqo2dDqHm9vUyBDxSltUCw
|
||||
6GcnRxl3Luc5dPSj75s/ufsHcins94YGVUeAXbxlEX6zmyO762fuzEAIedDindWymCvkOQWJas5z
|
||||
TiZBAyuhggFpbLtVv+GISzeHboi9DkeF/yh7A9XsO5atvgxI8XmjxQzR9vtYD31oMked89FbwBUn
|
||||
kpc/9HMkY89NhcFwzV8tD1eAKdkmixvXJgHi6H8O/5XfdzdVss/SQ2DBHe1JpyU3HPdcFPPD0c58
|
||||
X27uh4+xTtyAycXkOZBjmsG5SmkEXpkHGMGyh14nWzwyrDTuj8vMunDcaR9lHm9L2KPj5diCTGGz
|
||||
8i6m3PAZDLoPs0fmb+2KAjTyWg/opv3XAdrgBtu9kzdYeFPwrcOHbqoIGnL+l+DdrtfMBbsCPLeU
|
||||
RPhPDKMff/SWbN/vIjhJIQKFGCV1qmZDrTzDfODi7yyGgT3E8mrr3sSM4eEB0wkI9NBGf4G0aUps
|
||||
RB8FzO6l/6gyvGhcUha06OyxSSHfh8pxrLvURfLFUY/U9Na5otLlKu8BykBt03CaSpzLSz4Cxm+J
|
||||
wR4MdIPVdgL3XF67Qu4nzzCq9FfitbYOnHTK8jDR8UOnHy3hp+ewoWgMHk2c917jS184X+rKoPKZ
|
||||
i7Td4Qn50W421ZpZ67C4/JKE4YtqFo+P6nmqytF/gStYBMPLfFEEAMmCJ5150xK7FEvtbc3V49z5
|
||||
OEokbOI5eh9KI8sWQ83vA6N134HLm5W5gLkJtAXfRMnHxNLFjoXJYh1zQXAxsV++x7CHV5+ZOam0
|
||||
k9AOj0rQzzEYb1BuK8C0JhSl599sQZRac0ugT3TUcq7kkK+hvKNt2Djt13WRZluAGu1sGnvn/PAx
|
||||
2GZQX2mCsL5AZIcfq8AqonaeB4vSNQrNugNjFfCpTyG8ar/s99AWk4zCJSlo/psO6lcPEPEZR1nH
|
||||
SxmMKcg4LGnWhPXaY/0usE1zw787ixAr6XJdXfXPmzpyD/SoOcqfX/i1vdrp6G+1Lp5MPinZbKXi
|
||||
wHvZR4VubTncpXbRQ6c97ptF/eXt1bdagm2XIUfsFBdkwLH+lhZkS4sIeq/iLGch0/09c+JrOjr1
|
||||
B3nyKwpmUPjb1167U8OABPphgZehDP2P+3JT63NYOhc8bhYekR1EWsiKRX7XOc5ckMFfO+G20voI
|
||||
QUmxBuz7hVb/TVedvfQK011PzhNmMxfBhq4lHhlhzXWgn6oKxPv6sGbzbWOzaJpK5dFwgElJ9eIF
|
||||
xS2ojDHsJyZVlAEHYfusBX/IcompmyWarivJQ9WctdrcyT63DSJPJJ6ANlVURVNT0XVJTIlLQupA
|
||||
IiOwXmu603kib2DqIF3F7nhFqwMSeIXdQGIrIq6O3GIETYjkzFtl83gZQ7RV0eJXwMJVZQzubACT
|
||||
NB+cy9sGIG0Hn/rJF5LoOYU/quUc1bLr/UyZCSTGqDmKTa9ObQV2/aNfqryVjecxaDV6GJfTdlkC
|
||||
LvclFjErJpNfFSK0iMuVYe41XFvqAqUYRsM/6k78ujlG+Um4A4edxVA8VVhdTBJeC4bx3O4U2B/8
|
||||
OrInxoEZKTq7c+ZAE7X/cIX/GAG8y1up3gbieZpRBSf479IIb86c9cTmVNkrUf+D0olOTsfJc3Jx
|
||||
watYVlkEqztAXSTgkMsdvM5tA4sPjBlBOK85yJEtBC1l5lgqzhPnNI1ZpkkgJyG3NS9sqftnztXG
|
||||
i2uADg8tzRJtFQlO6q46pUuaHqrVTvyKLcjUHYnXY/88h14TLb10VkthTi1BQU16iWFTABdlRol7
|
||||
/kMQ44JCMS7T6yKzMShsJtXJZPt6qEi3tOpkbEikcSuhTGBOxKETWCI1CKslJH7iLazB1VznQZrU
|
||||
DLvbGhl1mpu0YzlhO6CaRzLUu1A+Kfk/VyAahmCeA5SWA/juOT4wWtEMVv6fLQPh/rMGh0HkLq92
|
||||
/bEG8oNFgHZwnTougLSgIpi1Osy1cVXS034u6nIspJ8o2Z0WcCZRSugplaDTTWsBBJuMdAkoegXa
|
||||
SNbqDXJLA1IF5SEunEzmeBg9U4twvihPGTedfp/3FBozo0g1di8eNYpaqRj6gXyIMqn9PQu2b1XO
|
||||
3PBFR5x3qjvnlFZkHHQoxzbPQvDmzsq2dipmaRzf/8FfjekEWs84DARxBat56I47tGr2o/yOuznH
|
||||
czSGrqRf8wkE5vfwe2NsfaMp/uqDM2tm4kEAdE36/pR6HjHWt53NVhBGW/5L3PPlv7FtVZDUX8kU
|
||||
PnTNK0EiqkvBkTOKMtX78v24siZX2bfk/QNnHIDalz4tbxrS9aiS2MZ6aLEwylowaycYcxP3dqKx
|
||||
Lu+K+tfs75uFVN2p8LbRMFhzfDJTT6alE7FPQQjA2HA8QCYtu0i+ZD4qE8ystZdtNTTALA4lwU4e
|
||||
uKtms83IhSS5h+MG9Kplgk2vbAPih5d5ifw73/AiaqhzYFZlAb8RSsqzaRANfy4F4hxwmiBEBRo9
|
||||
C4gIJ4VJcfxHtPN4CErFenN3uDPG6+ND8mM9oknO/dayZY+hEx4o4bu6lulE/tVOZQLlmgOHPTcZ
|
||||
zutoxNIcCBxPEwHug5JQm9Pysi4wCa4iWP1DAm8P51xV24MdSO+SbcQxNXCRFLdgZhl9qpG6xPUW
|
||||
8tWOKgh2mbgPbf/z1mFdOI8vhujzpDkaCqi/7JU127GzfE54pu9vvGQpNT3aKBR4VRoZ7duNtVRO
|
||||
05wgmfqCUkuyb9VYGhZHxR8FPsvDFzTOfWxy0fQto20Yycv8xvnQReb6AJNEQRWcDKuH+vuc5hXo
|
||||
ph++nFe2sJ6iLNMKvePGwH0MJlmVHkVNGeAi3HPH845xkGQ8vxoQ5jLNW+DhC45EyjaDaxM7g2FP
|
||||
upixh7ypPpaAocHJSZ7IlnyCSIt79oc9ZhOZdRmJ12YzNlbIDNqH8XyLROxBv6rp8ha7OLtDdrdd
|
||||
ZYIwE1Zu6jONAUg7BZoyjQDeKdmNh8XMh1BRGWxf+atZGYCnid8mF+IFE2VvyZnYelBLDvOQQgnn
|
||||
An9QlNPqC2LoVOYvgW1iEXOuXceX9PBSSZzqAGtvjiZZzBw1Rs3XfMZXQfUSgcx/r7uQqtchiZT+
|
||||
ySVYoPYjw4wXTArVVghgxCJ2iVNEAxZCXIB2KprNPhn58NHk6VpYdDH/9fmotmM/F9R+fGUhYUo7
|
||||
RtqhEkxtR4FsjI1Aegzc7VoXpTF/oVm0/mWLDZoCL8o04NODtNVGWRm/rFaNWzJRztFC2fgJrTtf
|
||||
WATYz2vhzjXSZD0oCuMq5XrTaDSMshsliNyGAByoIm15XWW+BiiZs8iCUPRL0mFpi9Nz5Iiv2qla
|
||||
RDM/aCC7P2llNb2uVPVwEE8TQFlKXhwm2NwQE9WJEmA1OubkAFLhDId8qAG7NDAjS7+Yz+zSVjsL
|
||||
ZtJKOP5GoVhraILak7+N3+Du/tqwMihqh9cFGFM4MhC4I9dRgW19RvzPZRpVPaIfucC80hfxQr+W
|
||||
kZDxy5eitDgjXlkyXqd+ku7F+Qi6dcaw/rkCAGKxCVir1QQrBXYP8sc3HgGUCuRKi692sGqzZOcE
|
||||
/BizD3haphkO3LF7BW1Wo36WO7yp5ZKm6l5QGqrVtIujrrAoYcNSy6anCHhyedTg1+/3Hbc5yOAI
|
||||
wapgjwOnGCwIN4knrVgxkJL7wEWs+8cQ2hvhOeaY3ulpDo8hFAjSz5fbxwjok/4gO+TZoactUeBf
|
||||
u3feb+Lyil5c9PLuJEArKHWP0ffzaNq1UVCP2HXQ7xT7sen3GFjcsCZP3ROtTA2O4aM/8J95UAYp
|
||||
hf9KZEfFO+nPpqx5Y+FI36/RrIYRN0KhspWThpxKJPjPXsQNhXNLQrOPUfjtYyrAXE/aruFrPV3T
|
||||
xgoJRoLuxbj4YJgSc69/4fVPnyGMERYffO5XVL+zhuIZUDjCzL/MP3S9xmH4p9FUZTWrh+wKWW33
|
||||
KxIMR/5EgEf8O73oB1FU+YyJwmdrS3nU0fGzQ+NSllb30FNhcjIIt+PZY4X8GTxbNLfxUOIO88LP
|
||||
7o63A9dXNZKCZYJIgKyJV8NGCPKw9EErbD7Pw2LiYM9SMhwnW+y7iW37qPRRVXWMYZawsspoiQ/n
|
||||
FAVCBMpKFgeYcaGH7TvcWR43aJhw44DmlIZJpdYWfsFzu95p5nTXzeZ1Ij1v8F36NN130XWrjZA2
|
||||
x3yiEyN/PuVsj1NSvpEsCdO8mU2uELuUTcHIf5WIgnBk2ewvyQhSrA3P65MbiYjRmP9/pVfWU86k
|
||||
EAHTJ4wpfdTm3Hpbfq7iwgePKe2pop7uESQzKfcF4EktFT+FI81nOSqEG4JOdG9MJuQ/vxNPQC7N
|
||||
QGmy3n1NX1ENtvPh+unKzfbHF/PfGhBRM5t/BHf/ezdJw6uA0nRDysRQS00t8F6+P53kC4pWxx37
|
||||
67FK5LgQ79MrKRXjUBwhI+gGbPveSSzGkEOoFq6+0fxgQPrQ0SchbzyuxwwgrghgVR/CmXxE3o81
|
||||
BzsjofdL5Ek1zZjD6IHSDaUNt4Ohvwj6HC2ETI7RrSpg6Q1ib9tTiYFr3+cBSgtY2OqEPSHiKaR4
|
||||
XQ6e8XuxNWcjJr0/qSimELHriy8gk/ciGfcH53xQzlbKABWAnAk5/r4HMLddDPVkabXGd6vwRj+0
|
||||
hgzNDtyBS5hfoWZjVQqGzsx0Ad5m69yakXyMRrdEndpGbAE9Xggxr1rcLkfn2HGqJYYbP22dGTwS
|
||||
RBHrLbalrbiiKNqFwrOenio/sr3e/CS/eEJOa9By31jf8j75mJl8mTXoEe6RdYigC9lqhKRmlPFU
|
||||
gt/q6tCZGKo9GK2V0j55TN8nKB0xZtQJhZ0Q2io1ACL6CbsiGqcdGn/jCttAZ1EDdxMs/uTTcZ1G
|
||||
8CSLcz+oC5JFsfs0Se80gR/0Z9XhFQmgFeS9I6ccdTWC3fvTwyIZUtMrWWeUF22U+tYDEvJ6xo65
|
||||
XMckbFZPtqPITWRwWkEPha9+dy4RDA40WJ8qg0xBQoUjxtWwGyAAr0K4re2l6XLZwT0LO+ybmWVh
|
||||
ldX3YE8bacHt9HiYn6MogavM5aWnBFGVySqxHP7JZuaWczNLXz/Y6B5zQMItUnBo1IqFpvbjCjtE
|
||||
IwdOlcJ2ymW00wYPtHsZMDdHQv/G6h6SmUeXHVnI4aegFDIVB9YZjLjUufduRurUvFadHkxIlu6d
|
||||
wSmzfYAiU5htoa2iBByk0SLGPe58l4ZvpFFqCjclqBLyZdKh0ECjX9CFKEX8KJm6ZoyrOT1ANx6B
|
||||
CKYXw+XU9mGoDjd6QyXUW61q7AVkFOw3ovDWdnY83ZMAhM4mAikz3yl5OBr8iLzZoymAgCXz4Ewh
|
||||
oobVEAYznewGuAR8+Sl1wbB42ZPAQ1F00GMllXwMZsQtHs9jKmeQ5mkfCcSfkeoBOjMF1wg8qBmY
|
||||
LG3nR1bj11WoJMPbF0tN+D+KrjriFWUMctNDwIDPLso/fywebsdjLv2mqo0QqJlNGZZLLEN6sXl8
|
||||
M+6D8zGtZuv1pgc8NYbqcQcOItTdd1/Gpk+1iZyVU3/LYJksbr+ucotRDz8EcpRnImgY3Hk/lxEH
|
||||
GtI/20iVj+1AHdrwJWoDJPYyzgeh7HTnCaCLbmGOtxjReVlj3UoN0/Sf8DyxlKqbTp5wGLfyDXaQ
|
||||
G1BzRxzNvCU3cULxD4fSoWmQSPYoWterq3U9RzDk4klpJVu3nZkdHVkehcYNHmPOPHBJ29jpJeoS
|
||||
GIcGLiamJVDOaJYPoKFQMWf8m7bPIn5XMOEN/ZN8N5SFKK2Kn95Ldu8Vl3SIf3cB6BKR4xlsoTzb
|
||||
pvhSRvxFr6N8pEKZWEsq0sQLNdbHzmO0p1H9csR5QcHULZo9V70CnSVllHMw1mITLVEQfLnifuW1
|
||||
3DyWIYXr7/mIwx7zPTRCpdm5+Bhxn8ghxu07yaJzVBIhoSqy2qQs9pug3Agqj8zXlL8s39WmX7hb
|
||||
hwnLLHEDX/iT
|
||||
`pragma protect end_protected
|
||||
`ifndef GLBL
|
||||
`define GLBL
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module glbl ();
|
||||
|
||||
parameter ROC_WIDTH = 100000;
|
||||
parameter TOC_WIDTH = 0;
|
||||
|
||||
//-------- STARTUP Globals --------------
|
||||
wire GSR;
|
||||
wire GTS;
|
||||
wire GWE;
|
||||
wire PRLD;
|
||||
tri1 p_up_tmp;
|
||||
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
|
||||
|
||||
wire PROGB_GLBL;
|
||||
wire CCLKO_GLBL;
|
||||
wire FCSBO_GLBL;
|
||||
wire [3:0] DO_GLBL;
|
||||
wire [3:0] DI_GLBL;
|
||||
|
||||
reg GSR_int;
|
||||
reg GTS_int;
|
||||
reg PRLD_int;
|
||||
|
||||
//-------- JTAG Globals --------------
|
||||
wire JTAG_TDO_GLBL;
|
||||
wire JTAG_TCK_GLBL;
|
||||
wire JTAG_TDI_GLBL;
|
||||
wire JTAG_TMS_GLBL;
|
||||
wire JTAG_TRST_GLBL;
|
||||
|
||||
reg JTAG_CAPTURE_GLBL;
|
||||
reg JTAG_RESET_GLBL;
|
||||
reg JTAG_SHIFT_GLBL;
|
||||
reg JTAG_UPDATE_GLBL;
|
||||
reg JTAG_RUNTEST_GLBL;
|
||||
|
||||
reg JTAG_SEL1_GLBL = 0;
|
||||
reg JTAG_SEL2_GLBL = 0 ;
|
||||
reg JTAG_SEL3_GLBL = 0;
|
||||
reg JTAG_SEL4_GLBL = 0;
|
||||
|
||||
reg JTAG_USER_TDO1_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO2_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO3_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO4_GLBL = 1'bz;
|
||||
|
||||
assign (strong1, weak0) GSR = GSR_int;
|
||||
assign (strong1, weak0) GTS = GTS_int;
|
||||
assign (weak1, weak0) PRLD = PRLD_int;
|
||||
|
||||
initial begin
|
||||
GSR_int = 1'b1;
|
||||
PRLD_int = 1'b1;
|
||||
#(ROC_WIDTH)
|
||||
GSR_int = 1'b0;
|
||||
PRLD_int = 1'b0;
|
||||
end
|
||||
|
||||
initial begin
|
||||
GTS_int = 1'b1;
|
||||
#(TOC_WIDTH)
|
||||
GTS_int = 1'b0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
+983
@@ -0,0 +1,983 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:37 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode funcsim
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/add_s24_s32_s32_synth_1/add_s24_s32_s32_sim_netlist.vhdl
|
||||
-- Design : add_s24_s32_s32
|
||||
-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or
|
||||
-- synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
`protect begin_protected
|
||||
`protect version = 1
|
||||
`protect encrypt_agent = "XILINX"
|
||||
`protect encrypt_agent_info = "Xilinx Encryption Tool 2019.1"
|
||||
`protect key_keyowner="Cadence Design Systems.", key_keyname="cds_rsa_key", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=64)
|
||||
`protect key_block
|
||||
UujpFoYKoOQ7/Jw6owEbggI2AGOgzbHR6JXF4x/izP5Fh4WM0VoNKTT/CrUpcaxvPcEB3VSFIRdM
|
||||
zEjgl5GLbQ==
|
||||
|
||||
`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=128)
|
||||
`protect key_block
|
||||
f5RyCaHb5HYoLsPpSBrPYpBu75i3LvPQ71qIEa/aoXsNX59UTv8AuKxtAPmKJn2lGzU85o93pPUz
|
||||
6IUTdlLhcarMbqU68e5TlXbOXaga3KUj4uXh5FkcNdjPsjNT76FRa5yaah1J4szu7iiw3tPnuQJ4
|
||||
sJ7X6wRWQIJF6RZJQ7M=
|
||||
|
||||
`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
vzUpOnYACJ0VEPnozBdDHNmglN8CrKvVmd7FT58A6TVLlrgZoYwyIPQMIh+Wfc+wTlVynnNf5/KC
|
||||
BJOYRsHDGsi5eQBIqFs4IO2s0YluOIEcuhjI1NL49HG90oDLDYg5vQsfvfkgIfXdSUeO4CWL1STz
|
||||
dN+bN5lJol2g3oFIppEAT76jtuKAX3VW+ZQrlhdFxRe2XfR61bUfZTyxy1sxEjh6zx1lNk15Bh6G
|
||||
TvDbeQpS3X3IwQkda126umKLhxhuzVYI/Dj5ubjHn9iROohcwaJUKVYfiSpg7OvIQh0dIocm/Pr8
|
||||
Jnq8RYOlltOXK63GToRwOuvaEVsyYwXPCsJhYw==
|
||||
|
||||
`protect key_keyowner="ATRENTA", key_keyname="ATR-SG-2015-RSA-3", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
IqsYPmYfJRgqWcpVxxx5JKL2K5lwiA3+TGmGkzXMe1mM6wTat1h3LqSohdSynrSese1HtJw7NjBS
|
||||
R4sEHDCJLtLiIBXUDNOxs3/aFcfwI2ggGKVL7gj8LerPTvjancZ3CPrFi7suJ8va4ScDXJ2+AZpv
|
||||
1HkaXhquWtX+ecTMvlBUJ0kGRmT3QvqsqdoJvLaUtWmOb/zcl/Nh7cyBWKwOJ6JJUCsg2Ny6n0Mi
|
||||
CPGTsfurek7+yGad+10NV+Jdn5hHQLBf66QBRg5ezreuYSEBodVOIKAo3y+OLqpGrkjVyZP2Jekj
|
||||
3gAE3AlS23WF2E2B8gWcKlRCe5mstjPwmciAjQ==
|
||||
|
||||
`protect key_keyowner="Xilinx", key_keyname="xilinxt_2019_02", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
SDlGuJ8/IFDM5qipR8lmqUiiSg8fMligX7gsobHkQDqRLsLrXijbx23aj4mkUAgF+oPb9moRXMT+
|
||||
ZQitvA5/h3W0YwLdK0P5IZuLURPqDlMwqENJrGM7d3xQu4APt2TsYcIWzy69vwDhvpVhiU2guQ2w
|
||||
RmJXF7B1uLONLo7iKhljzh08U3MalnpvLRgTyF13HjlkISLQE5uevFCzYB2in3CEPm7UvLorqhnJ
|
||||
57vVjcU+wSz1mFigbG2ffzUXycQttuY0ZXalTnSornuILhiF6Dz1ntTVIkPAsSmCzM2pkya326bi
|
||||
VR6/Ww0KJSGjMc9QAcY1dzerdA/O/FHc0wHRqg==
|
||||
|
||||
`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=128)
|
||||
`protect key_block
|
||||
nv62qaAPOM1gKXHVylxNODJ0FORpIfmG0VU8DOE0VYy7QuPs1fSFKwqsmeCqLmk1iBF2iwzM4HaH
|
||||
n4NZzzSC9moQCnEWQQr7ujbbmsQhrn/tqwtWMSAdsDvskDzQxglQ6QGrybhxOmpv4ptOmwdiPiSh
|
||||
mzNT3tLbjqrWoFAIUD0=
|
||||
|
||||
`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
jF3d2E6CGZp/hS8coNep5TPowf3sa0SgNHwNmqsow9h+brgrP4csczpm7KBBcJ5v+YbOvx0z+gYy
|
||||
WBAxHAq2icNSvmrHAZTXOGdEJEE5hVch+yxypEclXFAnDShH7A6r+9IACIFI6vQ+UJJ84TGn2SDU
|
||||
MI/Rg/QIXumqkI7aPcOA1ytQg6cRR+iT/gU6b/7+TGQ21uUGNcdcFNGGw3MiCeeQAO453zksyf3f
|
||||
3q13lH5nspjdUO+EOyLip3iyWk1rVfZM5a6iueAPrsJM0H4hecXe3sh42f/VZjC7pKxZNTyNG0pY
|
||||
f73A6j6rB0cnGG9VyIOhkjLQ4APwBFMYDfhmYA==
|
||||
|
||||
`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
i+cTmQ2lWnqIb9K6OCx9TlXou3JsVpooBRRuwiHaxgiNpA3mDai9uRswr5Fal8SJSOUkg5y8bXXC
|
||||
VFOFsl8PYc56xPn0YOnvMQneGRoa8BBddY58e1peVWhWtvJ9bwX3WIr0JX5r+YkCwelsNpCzeArT
|
||||
YDN3FTBCloBjNU5GpfFI6lV5O7QA7xIQqZ1w0ujnaloGX88uGyhxhFAz4vTOQyqj1RojMv/RGvI+
|
||||
47t+fHAAmrmlmaxWU9Q5LjXBzyRGktLCvg+AO+uQZmudXrABrGhVHbE24oBS+1VCJBcL+yOpcHXi
|
||||
iPgE75/WPS8e9ReWexpUcujwuSphIMjfNhQxeg==
|
||||
|
||||
`protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa"
|
||||
`protect encoding = (enctype="BASE64", line_length=76, bytes=256)
|
||||
`protect key_block
|
||||
2P/Tjo2JUn8XTjq/1FOjTK7EF8R51b7HqBlrJlqAhgGdcFP4gyVkHHONuCdmHriuocnnlSldC+17
|
||||
WzVTNG8xKDIW0aRhuw6W3L1OjnKUDqklNkL13rr8ENFpNv8woU+rheqG8nqrCWLbZ5MIhOOO0OmI
|
||||
FSA3E5Dhi+ZffW45saWYOHu680c3rNDvLA1SoGFrdRdjTFCux9ZgyMOPb44lFsLa0JSRMMeSTPvD
|
||||
vIALSo4zdlLRIj+bG6Ta9Zgi6qafEKPN8QRumN+aJvnPBrKxe7rRa5W5mK7Xu/JFLVu6Q8HW76l3
|
||||
eEeKgh7WH46uqK+x0wkuQ5ddI2eBZgbdaqNZRQ==
|
||||
|
||||
`protect data_method = "AES128-CBC"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 37072)
|
||||
`protect data_block
|
||||
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
|
||||
GbxZxhG/OFq9gzNP5B2i4any8Edqug==
|
||||
`protect end_protected
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity add_s24_s32_s32_c_addsub_v12_0_13 is
|
||||
port (
|
||||
A : in STD_LOGIC_VECTOR ( 23 downto 0 );
|
||||
B : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
CLK : in STD_LOGIC;
|
||||
ADD : in STD_LOGIC;
|
||||
C_IN : in STD_LOGIC;
|
||||
CE : in STD_LOGIC;
|
||||
BYPASS : in STD_LOGIC;
|
||||
SCLR : in STD_LOGIC;
|
||||
SSET : in STD_LOGIC;
|
||||
SINIT : in STD_LOGIC;
|
||||
C_OUT : out STD_LOGIC;
|
||||
S : out STD_LOGIC_VECTOR ( 31 downto 0 )
|
||||
);
|
||||
attribute C_ADD_MODE : integer;
|
||||
attribute C_ADD_MODE of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_AINIT_VAL : string;
|
||||
attribute C_AINIT_VAL of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "0";
|
||||
attribute C_A_TYPE : integer;
|
||||
attribute C_A_TYPE of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_A_WIDTH : integer;
|
||||
attribute C_A_WIDTH of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 24;
|
||||
attribute C_BORROW_LOW : integer;
|
||||
attribute C_BORROW_LOW of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_BYPASS_LOW : integer;
|
||||
attribute C_BYPASS_LOW of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_B_CONSTANT : integer;
|
||||
attribute C_B_CONSTANT of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_B_TYPE : integer;
|
||||
attribute C_B_TYPE of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_B_VALUE : string;
|
||||
attribute C_B_VALUE of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "00000000000000000000000000000000";
|
||||
attribute C_B_WIDTH : integer;
|
||||
attribute C_B_WIDTH of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 32;
|
||||
attribute C_CE_OVERRIDES_BYPASS : integer;
|
||||
attribute C_CE_OVERRIDES_BYPASS of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_CE_OVERRIDES_SCLR : integer;
|
||||
attribute C_CE_OVERRIDES_SCLR of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_HAS_BYPASS : integer;
|
||||
attribute C_HAS_BYPASS of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_HAS_CE : integer;
|
||||
attribute C_HAS_CE of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_HAS_C_IN : integer;
|
||||
attribute C_HAS_C_IN of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_HAS_C_OUT : integer;
|
||||
attribute C_HAS_C_OUT of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_HAS_SCLR : integer;
|
||||
attribute C_HAS_SCLR of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_HAS_SINIT : integer;
|
||||
attribute C_HAS_SINIT of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_HAS_SSET : integer;
|
||||
attribute C_HAS_SSET of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_IMPLEMENTATION : integer;
|
||||
attribute C_IMPLEMENTATION of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_LATENCY : integer;
|
||||
attribute C_LATENCY of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_OUT_WIDTH : integer;
|
||||
attribute C_OUT_WIDTH of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 32;
|
||||
attribute C_SCLR_OVERRIDES_SSET : integer;
|
||||
attribute C_SCLR_OVERRIDES_SSET of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 1;
|
||||
attribute C_SINIT_VAL : string;
|
||||
attribute C_SINIT_VAL of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "0";
|
||||
attribute C_VERBOSITY : integer;
|
||||
attribute C_VERBOSITY of add_s24_s32_s32_c_addsub_v12_0_13 : entity is 0;
|
||||
attribute C_XDEVICEFAMILY : string;
|
||||
attribute C_XDEVICEFAMILY of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "kintex7";
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "c_addsub_v12_0_13";
|
||||
attribute downgradeipidentifiedwarnings : string;
|
||||
attribute downgradeipidentifiedwarnings of add_s24_s32_s32_c_addsub_v12_0_13 : entity is "yes";
|
||||
end add_s24_s32_s32_c_addsub_v12_0_13;
|
||||
|
||||
architecture STRUCTURE of add_s24_s32_s32_c_addsub_v12_0_13 is
|
||||
signal \<const0>\ : STD_LOGIC;
|
||||
signal NLW_xst_addsub_C_OUT_UNCONNECTED : STD_LOGIC;
|
||||
attribute C_AINIT_VAL of xst_addsub : label is "0";
|
||||
attribute C_BORROW_LOW of xst_addsub : label is 1;
|
||||
attribute C_CE_OVERRIDES_BYPASS of xst_addsub : label is 1;
|
||||
attribute C_CE_OVERRIDES_SCLR of xst_addsub : label is 0;
|
||||
attribute C_HAS_CE of xst_addsub : label is 1;
|
||||
attribute C_HAS_SCLR of xst_addsub : label is 1;
|
||||
attribute C_HAS_SINIT of xst_addsub : label is 0;
|
||||
attribute C_HAS_SSET of xst_addsub : label is 0;
|
||||
attribute C_IMPLEMENTATION of xst_addsub : label is 0;
|
||||
attribute C_SCLR_OVERRIDES_SSET of xst_addsub : label is 1;
|
||||
attribute C_SINIT_VAL of xst_addsub : label is "0";
|
||||
attribute C_VERBOSITY of xst_addsub : label is 0;
|
||||
attribute C_XDEVICEFAMILY of xst_addsub : label is "kintex7";
|
||||
attribute c_a_type of xst_addsub : label is 0;
|
||||
attribute c_a_width of xst_addsub : label is 24;
|
||||
attribute c_add_mode of xst_addsub : label is 0;
|
||||
attribute c_b_constant of xst_addsub : label is 0;
|
||||
attribute c_b_type of xst_addsub : label is 0;
|
||||
attribute c_b_value of xst_addsub : label is "00000000000000000000000000000000";
|
||||
attribute c_b_width of xst_addsub : label is 32;
|
||||
attribute c_bypass_low of xst_addsub : label is 0;
|
||||
attribute c_has_bypass of xst_addsub : label is 0;
|
||||
attribute c_has_c_in of xst_addsub : label is 0;
|
||||
attribute c_has_c_out of xst_addsub : label is 0;
|
||||
attribute c_latency of xst_addsub : label is 1;
|
||||
attribute c_out_width of xst_addsub : label is 32;
|
||||
attribute downgradeipidentifiedwarnings of xst_addsub : label is "yes";
|
||||
begin
|
||||
C_OUT <= \<const0>\;
|
||||
GND: unisim.vcomponents.GND
|
||||
port map (
|
||||
G => \<const0>\
|
||||
);
|
||||
xst_addsub: entity work.add_s24_s32_s32_c_addsub_v12_0_13_viv
|
||||
port map (
|
||||
A(23 downto 0) => A(23 downto 0),
|
||||
ADD => '0',
|
||||
B(31 downto 0) => B(31 downto 0),
|
||||
BYPASS => '0',
|
||||
CE => CE,
|
||||
CLK => CLK,
|
||||
C_IN => '0',
|
||||
C_OUT => NLW_xst_addsub_C_OUT_UNCONNECTED,
|
||||
S(31 downto 0) => S(31 downto 0),
|
||||
SCLR => SCLR,
|
||||
SINIT => '0',
|
||||
SSET => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity add_s24_s32_s32 is
|
||||
port (
|
||||
A : in STD_LOGIC_VECTOR ( 23 downto 0 );
|
||||
B : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
CLK : in STD_LOGIC;
|
||||
CE : in STD_LOGIC;
|
||||
SCLR : in STD_LOGIC;
|
||||
S : out STD_LOGIC_VECTOR ( 31 downto 0 )
|
||||
);
|
||||
attribute NotValidForBitStream : boolean;
|
||||
attribute NotValidForBitStream of add_s24_s32_s32 : entity is true;
|
||||
attribute CHECK_LICENSE_TYPE : string;
|
||||
attribute CHECK_LICENSE_TYPE of add_s24_s32_s32 : entity is "add_s24_s32_s32,c_addsub_v12_0_13,{}";
|
||||
attribute downgradeipidentifiedwarnings : string;
|
||||
attribute downgradeipidentifiedwarnings of add_s24_s32_s32 : entity is "yes";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of add_s24_s32_s32 : entity is "c_addsub_v12_0_13,Vivado 2019.1.3";
|
||||
end add_s24_s32_s32;
|
||||
|
||||
architecture STRUCTURE of add_s24_s32_s32 is
|
||||
signal NLW_U0_C_OUT_UNCONNECTED : STD_LOGIC;
|
||||
attribute C_AINIT_VAL : string;
|
||||
attribute C_AINIT_VAL of U0 : label is "0";
|
||||
attribute C_BORROW_LOW : integer;
|
||||
attribute C_BORROW_LOW of U0 : label is 1;
|
||||
attribute C_CE_OVERRIDES_BYPASS : integer;
|
||||
attribute C_CE_OVERRIDES_BYPASS of U0 : label is 1;
|
||||
attribute C_CE_OVERRIDES_SCLR : integer;
|
||||
attribute C_CE_OVERRIDES_SCLR of U0 : label is 0;
|
||||
attribute C_HAS_CE : integer;
|
||||
attribute C_HAS_CE of U0 : label is 1;
|
||||
attribute C_HAS_SCLR : integer;
|
||||
attribute C_HAS_SCLR of U0 : label is 1;
|
||||
attribute C_HAS_SINIT : integer;
|
||||
attribute C_HAS_SINIT of U0 : label is 0;
|
||||
attribute C_HAS_SSET : integer;
|
||||
attribute C_HAS_SSET of U0 : label is 0;
|
||||
attribute C_IMPLEMENTATION : integer;
|
||||
attribute C_IMPLEMENTATION of U0 : label is 0;
|
||||
attribute C_SCLR_OVERRIDES_SSET : integer;
|
||||
attribute C_SCLR_OVERRIDES_SSET of U0 : label is 1;
|
||||
attribute C_SINIT_VAL : string;
|
||||
attribute C_SINIT_VAL of U0 : label is "0";
|
||||
attribute C_VERBOSITY : integer;
|
||||
attribute C_VERBOSITY of U0 : label is 0;
|
||||
attribute C_XDEVICEFAMILY : string;
|
||||
attribute C_XDEVICEFAMILY of U0 : label is "kintex7";
|
||||
attribute c_a_type : integer;
|
||||
attribute c_a_type of U0 : label is 0;
|
||||
attribute c_a_width : integer;
|
||||
attribute c_a_width of U0 : label is 24;
|
||||
attribute c_add_mode : integer;
|
||||
attribute c_add_mode of U0 : label is 0;
|
||||
attribute c_b_constant : integer;
|
||||
attribute c_b_constant of U0 : label is 0;
|
||||
attribute c_b_type : integer;
|
||||
attribute c_b_type of U0 : label is 0;
|
||||
attribute c_b_value : string;
|
||||
attribute c_b_value of U0 : label is "00000000000000000000000000000000";
|
||||
attribute c_b_width : integer;
|
||||
attribute c_b_width of U0 : label is 32;
|
||||
attribute c_bypass_low : integer;
|
||||
attribute c_bypass_low of U0 : label is 0;
|
||||
attribute c_has_bypass : integer;
|
||||
attribute c_has_bypass of U0 : label is 0;
|
||||
attribute c_has_c_in : integer;
|
||||
attribute c_has_c_in of U0 : label is 0;
|
||||
attribute c_has_c_out : integer;
|
||||
attribute c_has_c_out of U0 : label is 0;
|
||||
attribute c_latency : integer;
|
||||
attribute c_latency of U0 : label is 1;
|
||||
attribute c_out_width : integer;
|
||||
attribute c_out_width of U0 : label is 32;
|
||||
attribute downgradeipidentifiedwarnings of U0 : label is "yes";
|
||||
attribute x_interface_info : string;
|
||||
attribute x_interface_info of CE : signal is "xilinx.com:signal:clockenable:1.0 ce_intf CE";
|
||||
attribute x_interface_parameter : string;
|
||||
attribute x_interface_parameter of CE : signal is "XIL_INTERFACENAME ce_intf, POLARITY ACTIVE_LOW";
|
||||
attribute x_interface_info of CLK : signal is "xilinx.com:signal:clock:1.0 clk_intf CLK";
|
||||
attribute x_interface_parameter of CLK : signal is "XIL_INTERFACENAME clk_intf, ASSOCIATED_BUSIF s_intf:c_out_intf:sinit_intf:sset_intf:bypass_intf:c_in_intf:add_intf:b_intf:a_intf, ASSOCIATED_RESET SCLR, ASSOCIATED_CLKEN CE, FREQ_HZ 100000000, PHASE 0.000, INSERT_VIP 0";
|
||||
attribute x_interface_info of SCLR : signal is "xilinx.com:signal:reset:1.0 sclr_intf RST";
|
||||
attribute x_interface_parameter of SCLR : signal is "XIL_INTERFACENAME sclr_intf, POLARITY ACTIVE_HIGH, INSERT_VIP 0";
|
||||
attribute x_interface_info of A : signal is "xilinx.com:signal:data:1.0 a_intf DATA";
|
||||
attribute x_interface_parameter of A : signal is "XIL_INTERFACENAME a_intf, LAYERED_METADATA undef";
|
||||
attribute x_interface_info of B : signal is "xilinx.com:signal:data:1.0 b_intf DATA";
|
||||
attribute x_interface_parameter of B : signal is "XIL_INTERFACENAME b_intf, LAYERED_METADATA undef";
|
||||
attribute x_interface_info of S : signal is "xilinx.com:signal:data:1.0 s_intf DATA";
|
||||
attribute x_interface_parameter of S : signal is "XIL_INTERFACENAME s_intf, LAYERED_METADATA undef";
|
||||
begin
|
||||
U0: entity work.add_s24_s32_s32_c_addsub_v12_0_13
|
||||
port map (
|
||||
A(23 downto 0) => A(23 downto 0),
|
||||
ADD => '1',
|
||||
B(31 downto 0) => B(31 downto 0),
|
||||
BYPASS => '0',
|
||||
CE => CE,
|
||||
CLK => CLK,
|
||||
C_IN => '0',
|
||||
C_OUT => NLW_U0_C_OUT_UNCONNECTED,
|
||||
S(31 downto 0) => S(31 downto 0),
|
||||
SCLR => SCLR,
|
||||
SINIT => '0',
|
||||
SSET => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:37 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/add_s24_s32_s32_synth_1/add_s24_s32_s32_stub.v
|
||||
// Design : add_s24_s32_s32
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "c_addsub_v12_0_13,Vivado 2019.1.3" *)
|
||||
module add_s24_s32_s32(A, B, CLK, CE, SCLR, S)
|
||||
/* synthesis syn_black_box black_box_pad_pin="A[23:0],B[31:0],CLK,CE,SCLR,S[31:0]" */;
|
||||
input [23:0]A;
|
||||
input [31:0]B;
|
||||
input CLK;
|
||||
input CE;
|
||||
input SCLR;
|
||||
output [31:0]S;
|
||||
endmodule
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:37 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/add_s24_s32_s32_synth_1/add_s24_s32_s32_stub.vhdl
|
||||
-- Design : add_s24_s32_s32
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity add_s24_s32_s32 is
|
||||
Port (
|
||||
A : in STD_LOGIC_VECTOR ( 23 downto 0 );
|
||||
B : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
CLK : in STD_LOGIC;
|
||||
CE : in STD_LOGIC;
|
||||
SCLR : in STD_LOGIC;
|
||||
S : out STD_LOGIC_VECTOR ( 31 downto 0 )
|
||||
);
|
||||
|
||||
end add_s24_s32_s32;
|
||||
|
||||
architecture stub of add_s24_s32_s32 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "A[23:0],B[31:0],CLK,CE,SCLR,S[31:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "c_addsub_v12_0_13,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:c_addsub:12.0
|
||||
-- IP Revision: 13
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY c_addsub_v12_0_13;
|
||||
USE c_addsub_v12_0_13.c_addsub_v12_0_13;
|
||||
|
||||
ENTITY add_s24_s32_s32 IS
|
||||
PORT (
|
||||
A : IN STD_LOGIC_VECTOR(23 DOWNTO 0);
|
||||
B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
CLK : IN STD_LOGIC;
|
||||
CE : IN STD_LOGIC;
|
||||
SCLR : IN STD_LOGIC;
|
||||
S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
|
||||
);
|
||||
END add_s24_s32_s32;
|
||||
|
||||
ARCHITECTURE add_s24_s32_s32_arch OF add_s24_s32_s32 IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF add_s24_s32_s32_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT c_addsub_v12_0_13 IS
|
||||
GENERIC (
|
||||
C_VERBOSITY : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_IMPLEMENTATION : INTEGER;
|
||||
C_A_WIDTH : INTEGER;
|
||||
C_B_WIDTH : INTEGER;
|
||||
C_OUT_WIDTH : INTEGER;
|
||||
C_CE_OVERRIDES_SCLR : INTEGER;
|
||||
C_A_TYPE : INTEGER;
|
||||
C_B_TYPE : INTEGER;
|
||||
C_LATENCY : INTEGER;
|
||||
C_ADD_MODE : INTEGER;
|
||||
C_B_CONSTANT : INTEGER;
|
||||
C_B_VALUE : STRING;
|
||||
C_AINIT_VAL : STRING;
|
||||
C_SINIT_VAL : STRING;
|
||||
C_CE_OVERRIDES_BYPASS : INTEGER;
|
||||
C_BYPASS_LOW : INTEGER;
|
||||
C_SCLR_OVERRIDES_SSET : INTEGER;
|
||||
C_HAS_C_IN : INTEGER;
|
||||
C_HAS_C_OUT : INTEGER;
|
||||
C_BORROW_LOW : INTEGER;
|
||||
C_HAS_CE : INTEGER;
|
||||
C_HAS_BYPASS : INTEGER;
|
||||
C_HAS_SCLR : INTEGER;
|
||||
C_HAS_SSET : INTEGER;
|
||||
C_HAS_SINIT : INTEGER
|
||||
);
|
||||
PORT (
|
||||
A : IN STD_LOGIC_VECTOR(23 DOWNTO 0);
|
||||
B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
CLK : IN STD_LOGIC;
|
||||
ADD : IN STD_LOGIC;
|
||||
C_IN : IN STD_LOGIC;
|
||||
CE : IN STD_LOGIC;
|
||||
BYPASS : IN STD_LOGIC;
|
||||
SCLR : IN STD_LOGIC;
|
||||
SSET : IN STD_LOGIC;
|
||||
SINIT : IN STD_LOGIC;
|
||||
C_OUT : OUT STD_LOGIC;
|
||||
S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT c_addsub_v12_0_13;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF S: SIGNAL IS "XIL_INTERFACENAME s_intf, LAYERED_METADATA undef";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF S: SIGNAL IS "xilinx.com:signal:data:1.0 s_intf DATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF SCLR: SIGNAL IS "XIL_INTERFACENAME sclr_intf, POLARITY ACTIVE_HIGH, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF SCLR: SIGNAL IS "xilinx.com:signal:reset:1.0 sclr_intf RST";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF CE: SIGNAL IS "XIL_INTERFACENAME ce_intf, POLARITY ACTIVE_LOW";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF CE: SIGNAL IS "xilinx.com:signal:clockenable:1.0 ce_intf CE";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF CLK: SIGNAL IS "XIL_INTERFACENAME clk_intf, ASSOCIATED_BUSIF s_intf:c_out_intf:sinit_intf:sset_intf:bypass_intf:c_in_intf:add_intf:b_intf:a_intf, ASSOCIATED_RESET SCLR, ASSOCIATED_CLKEN CE, FREQ_HZ 100000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF CLK: SIGNAL IS "xilinx.com:signal:clock:1.0 clk_intf CLK";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF B: SIGNAL IS "XIL_INTERFACENAME b_intf, LAYERED_METADATA undef";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF B: SIGNAL IS "xilinx.com:signal:data:1.0 b_intf DATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF A: SIGNAL IS "XIL_INTERFACENAME a_intf, LAYERED_METADATA undef";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF A: SIGNAL IS "xilinx.com:signal:data:1.0 a_intf DATA";
|
||||
BEGIN
|
||||
U0 : c_addsub_v12_0_13
|
||||
GENERIC MAP (
|
||||
C_VERBOSITY => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_IMPLEMENTATION => 0,
|
||||
C_A_WIDTH => 24,
|
||||
C_B_WIDTH => 32,
|
||||
C_OUT_WIDTH => 32,
|
||||
C_CE_OVERRIDES_SCLR => 0,
|
||||
C_A_TYPE => 0,
|
||||
C_B_TYPE => 0,
|
||||
C_LATENCY => 1,
|
||||
C_ADD_MODE => 0,
|
||||
C_B_CONSTANT => 0,
|
||||
C_B_VALUE => "00000000000000000000000000000000",
|
||||
C_AINIT_VAL => "0",
|
||||
C_SINIT_VAL => "0",
|
||||
C_CE_OVERRIDES_BYPASS => 1,
|
||||
C_BYPASS_LOW => 0,
|
||||
C_SCLR_OVERRIDES_SSET => 1,
|
||||
C_HAS_C_IN => 0,
|
||||
C_HAS_C_OUT => 0,
|
||||
C_BORROW_LOW => 1,
|
||||
C_HAS_CE => 1,
|
||||
C_HAS_BYPASS => 0,
|
||||
C_HAS_SCLR => 1,
|
||||
C_HAS_SSET => 0,
|
||||
C_HAS_SINIT => 0
|
||||
)
|
||||
PORT MAP (
|
||||
A => A,
|
||||
B => B,
|
||||
CLK => CLK,
|
||||
ADD => '1',
|
||||
C_IN => '0',
|
||||
CE => CE,
|
||||
BYPASS => '0',
|
||||
SCLR => SCLR,
|
||||
SSET => '0',
|
||||
SINIT => '0',
|
||||
S => S
|
||||
);
|
||||
END add_s24_s32_s32_arch;
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
|
||||
// file: ant_clk_gen_stg1.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______168.397____161.614
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary_____________250____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
(* CORE_GENERATION_INFO = "ant_clk_gen_stg1,clk_wiz_v6_0_3_0_0,{component_name=ant_clk_gen_stg1,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=1,clkin1_period=4.000,clkin2_period=10.0,use_power_down=false,use_reset=false,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *)
|
||||
|
||||
module ant_clk_gen_stg1
|
||||
(
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
// Clock in ports
|
||||
input clk_in1_p,
|
||||
input clk_in1_n
|
||||
);
|
||||
|
||||
ant_clk_gen_stg1_clk_wiz inst
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1),
|
||||
// Status and control signals
|
||||
.locked(locked),
|
||||
// Clock in ports
|
||||
.clk_in1_p(clk_in1_p),
|
||||
.clk_in1_n(clk_in1_n)
|
||||
);
|
||||
|
||||
endmodule
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______168.397____161.614
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary_____________250____________0.010
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
|
||||
ant_clk_gen_stg1 instance_name
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1), // output clk_out1
|
||||
// Status and control signals
|
||||
.locked(locked), // output locked
|
||||
// Clock in ports
|
||||
.clk_in1_p(clk_in1_p), // input clk_in1_p
|
||||
.clk_in1_n(clk_in1_n)); // input clk_in1_n
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
+203
@@ -0,0 +1,203 @@
|
||||
|
||||
// file: ant_clk_gen_stg1.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______168.397____161.614
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary_____________250____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
module ant_clk_gen_stg1_clk_wiz
|
||||
|
||||
(// Clock in ports
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
input clk_in1_p,
|
||||
input clk_in1_n
|
||||
);
|
||||
// Input buffering
|
||||
//------------------------------------
|
||||
wire clk_in1_ant_clk_gen_stg1;
|
||||
wire clk_in2_ant_clk_gen_stg1;
|
||||
IBUFDS clkin1_ibufgds
|
||||
(.O (clk_in1_ant_clk_gen_stg1),
|
||||
.I (clk_in1_p),
|
||||
.IB (clk_in1_n));
|
||||
|
||||
|
||||
|
||||
|
||||
// Clocking PRIMITIVE
|
||||
//------------------------------------
|
||||
|
||||
// Instantiation of the MMCM PRIMITIVE
|
||||
// * Unused inputs are tied off
|
||||
// * Unused outputs are labeled unused
|
||||
|
||||
wire clk_out1_ant_clk_gen_stg1;
|
||||
wire clk_out2_ant_clk_gen_stg1;
|
||||
wire clk_out3_ant_clk_gen_stg1;
|
||||
wire clk_out4_ant_clk_gen_stg1;
|
||||
wire clk_out5_ant_clk_gen_stg1;
|
||||
wire clk_out6_ant_clk_gen_stg1;
|
||||
wire clk_out7_ant_clk_gen_stg1;
|
||||
|
||||
wire [15:0] do_unused;
|
||||
wire drdy_unused;
|
||||
wire psdone_unused;
|
||||
wire locked_int;
|
||||
wire clkfbout_ant_clk_gen_stg1;
|
||||
wire clkfbout_buf_ant_clk_gen_stg1;
|
||||
wire clkfboutb_unused;
|
||||
wire clkout0b_unused;
|
||||
wire clkout1_unused;
|
||||
wire clkout1b_unused;
|
||||
wire clkout2_unused;
|
||||
wire clkout2b_unused;
|
||||
wire clkout3_unused;
|
||||
wire clkout3b_unused;
|
||||
wire clkout4_unused;
|
||||
wire clkout5_unused;
|
||||
wire clkout6_unused;
|
||||
wire clkfbstopped_unused;
|
||||
wire clkinstopped_unused;
|
||||
|
||||
MMCME2_ADV
|
||||
#(.BANDWIDTH ("OPTIMIZED"),
|
||||
.CLKOUT4_CASCADE ("FALSE"),
|
||||
.COMPENSATION ("ZHOLD"),
|
||||
.STARTUP_WAIT ("FALSE"),
|
||||
.DIVCLK_DIVIDE (5),
|
||||
.CLKFBOUT_MULT_F (18.000),
|
||||
.CLKFBOUT_PHASE (0.000),
|
||||
.CLKFBOUT_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT0_DIVIDE_F (9.375),
|
||||
.CLKOUT0_PHASE (0.000),
|
||||
.CLKOUT0_DUTY_CYCLE (0.500),
|
||||
.CLKOUT0_USE_FINE_PS ("FALSE"),
|
||||
.CLKIN1_PERIOD (4.000))
|
||||
mmcm_adv_inst
|
||||
// Output clocks
|
||||
(
|
||||
.CLKFBOUT (clkfbout_ant_clk_gen_stg1),
|
||||
.CLKFBOUTB (clkfboutb_unused),
|
||||
.CLKOUT0 (clk_out1_ant_clk_gen_stg1),
|
||||
.CLKOUT0B (clkout0b_unused),
|
||||
.CLKOUT1 (clkout1_unused),
|
||||
.CLKOUT1B (clkout1b_unused),
|
||||
.CLKOUT2 (clkout2_unused),
|
||||
.CLKOUT2B (clkout2b_unused),
|
||||
.CLKOUT3 (clkout3_unused),
|
||||
.CLKOUT3B (clkout3b_unused),
|
||||
.CLKOUT4 (clkout4_unused),
|
||||
.CLKOUT5 (clkout5_unused),
|
||||
.CLKOUT6 (clkout6_unused),
|
||||
// Input clock control
|
||||
.CLKFBIN (clkfbout_buf_ant_clk_gen_stg1),
|
||||
.CLKIN1 (clk_in1_ant_clk_gen_stg1),
|
||||
.CLKIN2 (1'b0),
|
||||
// Tied to always select the primary input clock
|
||||
.CLKINSEL (1'b1),
|
||||
// Ports for dynamic reconfiguration
|
||||
.DADDR (7'h0),
|
||||
.DCLK (1'b0),
|
||||
.DEN (1'b0),
|
||||
.DI (16'h0),
|
||||
.DO (do_unused),
|
||||
.DRDY (drdy_unused),
|
||||
.DWE (1'b0),
|
||||
// Ports for dynamic phase shift
|
||||
.PSCLK (1'b0),
|
||||
.PSEN (1'b0),
|
||||
.PSINCDEC (1'b0),
|
||||
.PSDONE (psdone_unused),
|
||||
// Other control and status signals
|
||||
.LOCKED (locked_int),
|
||||
.CLKINSTOPPED (clkinstopped_unused),
|
||||
.CLKFBSTOPPED (clkfbstopped_unused),
|
||||
.PWRDWN (1'b0),
|
||||
.RST (1'b0));
|
||||
|
||||
assign locked = locked_int;
|
||||
// Clock Monitor clock assigning
|
||||
//--------------------------------------
|
||||
// Output buffering
|
||||
//-----------------------------------
|
||||
|
||||
BUFG clkf_buf
|
||||
(.O (clkfbout_buf_ant_clk_gen_stg1),
|
||||
.I (clkfbout_ant_clk_gen_stg1));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BUFG clkout1_buf
|
||||
(.O (clk_out1),
|
||||
.I (clk_out1_ant_clk_gen_stg1));
|
||||
|
||||
|
||||
|
||||
|
||||
endmodule
|
||||
+246
@@ -0,0 +1,246 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode funcsim
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg1_synth_1/ant_clk_gen_stg1_sim_netlist.v
|
||||
// Design : ant_clk_gen_stg1
|
||||
// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified
|
||||
// or synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
(* NotValidForBitStream *)
|
||||
module ant_clk_gen_stg1
|
||||
(clk_out1,
|
||||
locked,
|
||||
clk_in1_p,
|
||||
clk_in1_n);
|
||||
output clk_out1;
|
||||
output locked;
|
||||
input clk_in1_p;
|
||||
input clk_in1_n;
|
||||
|
||||
(* DIFF_TERM = 0 *) (* IBUF_LOW_PWR *) wire clk_in1_n;
|
||||
(* DIFF_TERM = 0 *) (* IBUF_LOW_PWR *) wire clk_in1_p;
|
||||
wire clk_out1;
|
||||
wire locked;
|
||||
|
||||
ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz inst
|
||||
(.clk_in1_n(clk_in1_n),
|
||||
.clk_in1_p(clk_in1_p),
|
||||
.clk_out1(clk_out1),
|
||||
.locked(locked));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "ant_clk_gen_stg1_clk_wiz" *)
|
||||
module ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz
|
||||
(clk_out1,
|
||||
locked,
|
||||
clk_in1_p,
|
||||
clk_in1_n);
|
||||
output clk_out1;
|
||||
output locked;
|
||||
input clk_in1_p;
|
||||
input clk_in1_n;
|
||||
|
||||
wire clk_in1_ant_clk_gen_stg1;
|
||||
wire clk_in1_n;
|
||||
wire clk_in1_p;
|
||||
wire clk_out1;
|
||||
wire clk_out1_ant_clk_gen_stg1;
|
||||
wire clkfbout_ant_clk_gen_stg1;
|
||||
wire clkfbout_buf_ant_clk_gen_stg1;
|
||||
wire locked;
|
||||
wire NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_DRDY_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_PSDONE_UNCONNECTED;
|
||||
wire [15:0]NLW_mmcm_adv_inst_DO_UNCONNECTED;
|
||||
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkf_buf
|
||||
(.I(clkfbout_ant_clk_gen_stg1),
|
||||
.O(clkfbout_buf_ant_clk_gen_stg1));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
(* CAPACITANCE = "DONT_CARE" *)
|
||||
(* IBUF_DELAY_VALUE = "0" *)
|
||||
(* IFD_DELAY_VALUE = "AUTO" *)
|
||||
IBUFDS #(
|
||||
.IOSTANDARD("DEFAULT"))
|
||||
clkin1_ibufgds
|
||||
(.I(clk_in1_p),
|
||||
.IB(clk_in1_n),
|
||||
.O(clk_in1_ant_clk_gen_stg1));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout1_buf
|
||||
(.I(clk_out1_ant_clk_gen_stg1),
|
||||
.O(clk_out1));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
MMCME2_ADV #(
|
||||
.BANDWIDTH("OPTIMIZED"),
|
||||
.CLKFBOUT_MULT_F(18.000000),
|
||||
.CLKFBOUT_PHASE(0.000000),
|
||||
.CLKFBOUT_USE_FINE_PS("FALSE"),
|
||||
.CLKIN1_PERIOD(4.000000),
|
||||
.CLKIN2_PERIOD(0.000000),
|
||||
.CLKOUT0_DIVIDE_F(9.375000),
|
||||
.CLKOUT0_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT0_PHASE(0.000000),
|
||||
.CLKOUT0_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT1_DIVIDE(1),
|
||||
.CLKOUT1_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT1_PHASE(0.000000),
|
||||
.CLKOUT1_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT2_DIVIDE(1),
|
||||
.CLKOUT2_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT2_PHASE(0.000000),
|
||||
.CLKOUT2_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT3_DIVIDE(1),
|
||||
.CLKOUT3_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT3_PHASE(0.000000),
|
||||
.CLKOUT3_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT4_CASCADE("FALSE"),
|
||||
.CLKOUT4_DIVIDE(1),
|
||||
.CLKOUT4_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT4_PHASE(0.000000),
|
||||
.CLKOUT4_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT5_DIVIDE(1),
|
||||
.CLKOUT5_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT5_PHASE(0.000000),
|
||||
.CLKOUT5_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT6_DIVIDE(1),
|
||||
.CLKOUT6_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT6_PHASE(0.000000),
|
||||
.CLKOUT6_USE_FINE_PS("FALSE"),
|
||||
.COMPENSATION("ZHOLD"),
|
||||
.DIVCLK_DIVIDE(5),
|
||||
.IS_CLKINSEL_INVERTED(1'b0),
|
||||
.IS_PSEN_INVERTED(1'b0),
|
||||
.IS_PSINCDEC_INVERTED(1'b0),
|
||||
.IS_PWRDWN_INVERTED(1'b0),
|
||||
.IS_RST_INVERTED(1'b0),
|
||||
.REF_JITTER1(0.010000),
|
||||
.REF_JITTER2(0.010000),
|
||||
.SS_EN("FALSE"),
|
||||
.SS_MODE("CENTER_HIGH"),
|
||||
.SS_MOD_PERIOD(10000),
|
||||
.STARTUP_WAIT("FALSE"))
|
||||
mmcm_adv_inst
|
||||
(.CLKFBIN(clkfbout_buf_ant_clk_gen_stg1),
|
||||
.CLKFBOUT(clkfbout_ant_clk_gen_stg1),
|
||||
.CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED),
|
||||
.CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED),
|
||||
.CLKIN1(clk_in1_ant_clk_gen_stg1),
|
||||
.CLKIN2(1'b0),
|
||||
.CLKINSEL(1'b1),
|
||||
.CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED),
|
||||
.CLKOUT0(clk_out1_ant_clk_gen_stg1),
|
||||
.CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED),
|
||||
.CLKOUT1(NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED),
|
||||
.CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED),
|
||||
.CLKOUT2(NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED),
|
||||
.CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED),
|
||||
.CLKOUT3(NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED),
|
||||
.CLKOUT3B(NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED),
|
||||
.CLKOUT4(NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED),
|
||||
.CLKOUT5(NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED),
|
||||
.CLKOUT6(NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED),
|
||||
.DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DCLK(1'b0),
|
||||
.DEN(1'b0),
|
||||
.DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DO(NLW_mmcm_adv_inst_DO_UNCONNECTED[15:0]),
|
||||
.DRDY(NLW_mmcm_adv_inst_DRDY_UNCONNECTED),
|
||||
.DWE(1'b0),
|
||||
.LOCKED(locked),
|
||||
.PSCLK(1'b0),
|
||||
.PSDONE(NLW_mmcm_adv_inst_PSDONE_UNCONNECTED),
|
||||
.PSEN(1'b0),
|
||||
.PSINCDEC(1'b0),
|
||||
.PWRDWN(1'b0),
|
||||
.RST(1'b0));
|
||||
endmodule
|
||||
`ifndef GLBL
|
||||
`define GLBL
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module glbl ();
|
||||
|
||||
parameter ROC_WIDTH = 100000;
|
||||
parameter TOC_WIDTH = 0;
|
||||
|
||||
//-------- STARTUP Globals --------------
|
||||
wire GSR;
|
||||
wire GTS;
|
||||
wire GWE;
|
||||
wire PRLD;
|
||||
tri1 p_up_tmp;
|
||||
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
|
||||
|
||||
wire PROGB_GLBL;
|
||||
wire CCLKO_GLBL;
|
||||
wire FCSBO_GLBL;
|
||||
wire [3:0] DO_GLBL;
|
||||
wire [3:0] DI_GLBL;
|
||||
|
||||
reg GSR_int;
|
||||
reg GTS_int;
|
||||
reg PRLD_int;
|
||||
|
||||
//-------- JTAG Globals --------------
|
||||
wire JTAG_TDO_GLBL;
|
||||
wire JTAG_TCK_GLBL;
|
||||
wire JTAG_TDI_GLBL;
|
||||
wire JTAG_TMS_GLBL;
|
||||
wire JTAG_TRST_GLBL;
|
||||
|
||||
reg JTAG_CAPTURE_GLBL;
|
||||
reg JTAG_RESET_GLBL;
|
||||
reg JTAG_SHIFT_GLBL;
|
||||
reg JTAG_UPDATE_GLBL;
|
||||
reg JTAG_RUNTEST_GLBL;
|
||||
|
||||
reg JTAG_SEL1_GLBL = 0;
|
||||
reg JTAG_SEL2_GLBL = 0 ;
|
||||
reg JTAG_SEL3_GLBL = 0;
|
||||
reg JTAG_SEL4_GLBL = 0;
|
||||
|
||||
reg JTAG_USER_TDO1_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO2_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO3_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO4_GLBL = 1'bz;
|
||||
|
||||
assign (strong1, weak0) GSR = GSR_int;
|
||||
assign (strong1, weak0) GTS = GTS_int;
|
||||
assign (weak1, weak0) PRLD = PRLD_int;
|
||||
|
||||
initial begin
|
||||
GSR_int = 1'b1;
|
||||
PRLD_int = 1'b1;
|
||||
#(ROC_WIDTH)
|
||||
GSR_int = 1'b0;
|
||||
PRLD_int = 1'b0;
|
||||
end
|
||||
|
||||
initial begin
|
||||
GTS_int = 1'b1;
|
||||
#(TOC_WIDTH)
|
||||
GTS_int = 1'b0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode funcsim
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg1_synth_1/ant_clk_gen_stg1_sim_netlist.vhdl
|
||||
-- Design : ant_clk_gen_stg1
|
||||
-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or
|
||||
-- synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1_p : in STD_LOGIC;
|
||||
clk_in1_n : in STD_LOGIC
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz : entity is "ant_clk_gen_stg1_clk_wiz";
|
||||
end ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz;
|
||||
|
||||
architecture STRUCTURE of ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz is
|
||||
signal clk_in1_ant_clk_gen_stg1 : STD_LOGIC;
|
||||
signal clk_out1_ant_clk_gen_stg1 : STD_LOGIC;
|
||||
signal clkfbout_ant_clk_gen_stg1 : STD_LOGIC;
|
||||
signal clkfbout_buf_ant_clk_gen_stg1 : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DRDY_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 );
|
||||
attribute BOX_TYPE : string;
|
||||
attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkin1_ibufgds : label is "PRIMITIVE";
|
||||
attribute CAPACITANCE : string;
|
||||
attribute CAPACITANCE of clkin1_ibufgds : label is "DONT_CARE";
|
||||
attribute IBUF_DELAY_VALUE : string;
|
||||
attribute IBUF_DELAY_VALUE of clkin1_ibufgds : label is "0";
|
||||
attribute IFD_DELAY_VALUE : string;
|
||||
attribute IFD_DELAY_VALUE of clkin1_ibufgds : label is "AUTO";
|
||||
attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of mmcm_adv_inst : label is "PRIMITIVE";
|
||||
begin
|
||||
clkf_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clkfbout_ant_clk_gen_stg1,
|
||||
O => clkfbout_buf_ant_clk_gen_stg1
|
||||
);
|
||||
clkin1_ibufgds: unisim.vcomponents.IBUFDS
|
||||
generic map(
|
||||
IOSTANDARD => "DEFAULT"
|
||||
)
|
||||
port map (
|
||||
I => clk_in1_p,
|
||||
IB => clk_in1_n,
|
||||
O => clk_in1_ant_clk_gen_stg1
|
||||
);
|
||||
clkout1_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out1_ant_clk_gen_stg1,
|
||||
O => clk_out1
|
||||
);
|
||||
mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV
|
||||
generic map(
|
||||
BANDWIDTH => "OPTIMIZED",
|
||||
CLKFBOUT_MULT_F => 18.000000,
|
||||
CLKFBOUT_PHASE => 0.000000,
|
||||
CLKFBOUT_USE_FINE_PS => false,
|
||||
CLKIN1_PERIOD => 4.000000,
|
||||
CLKIN2_PERIOD => 0.000000,
|
||||
CLKOUT0_DIVIDE_F => 9.375000,
|
||||
CLKOUT0_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT0_PHASE => 0.000000,
|
||||
CLKOUT0_USE_FINE_PS => false,
|
||||
CLKOUT1_DIVIDE => 1,
|
||||
CLKOUT1_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT1_PHASE => 0.000000,
|
||||
CLKOUT1_USE_FINE_PS => false,
|
||||
CLKOUT2_DIVIDE => 1,
|
||||
CLKOUT2_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT2_PHASE => 0.000000,
|
||||
CLKOUT2_USE_FINE_PS => false,
|
||||
CLKOUT3_DIVIDE => 1,
|
||||
CLKOUT3_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT3_PHASE => 0.000000,
|
||||
CLKOUT3_USE_FINE_PS => false,
|
||||
CLKOUT4_CASCADE => false,
|
||||
CLKOUT4_DIVIDE => 1,
|
||||
CLKOUT4_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT4_PHASE => 0.000000,
|
||||
CLKOUT4_USE_FINE_PS => false,
|
||||
CLKOUT5_DIVIDE => 1,
|
||||
CLKOUT5_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT5_PHASE => 0.000000,
|
||||
CLKOUT5_USE_FINE_PS => false,
|
||||
CLKOUT6_DIVIDE => 1,
|
||||
CLKOUT6_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT6_PHASE => 0.000000,
|
||||
CLKOUT6_USE_FINE_PS => false,
|
||||
COMPENSATION => "ZHOLD",
|
||||
DIVCLK_DIVIDE => 5,
|
||||
IS_CLKINSEL_INVERTED => '0',
|
||||
IS_PSEN_INVERTED => '0',
|
||||
IS_PSINCDEC_INVERTED => '0',
|
||||
IS_PWRDWN_INVERTED => '0',
|
||||
IS_RST_INVERTED => '0',
|
||||
REF_JITTER1 => 0.010000,
|
||||
REF_JITTER2 => 0.010000,
|
||||
SS_EN => "FALSE",
|
||||
SS_MODE => "CENTER_HIGH",
|
||||
SS_MOD_PERIOD => 10000,
|
||||
STARTUP_WAIT => false
|
||||
)
|
||||
port map (
|
||||
CLKFBIN => clkfbout_buf_ant_clk_gen_stg1,
|
||||
CLKFBOUT => clkfbout_ant_clk_gen_stg1,
|
||||
CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED,
|
||||
CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED,
|
||||
CLKIN1 => clk_in1_ant_clk_gen_stg1,
|
||||
CLKIN2 => '0',
|
||||
CLKINSEL => '1',
|
||||
CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED,
|
||||
CLKOUT0 => clk_out1_ant_clk_gen_stg1,
|
||||
CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED,
|
||||
CLKOUT1 => NLW_mmcm_adv_inst_CLKOUT1_UNCONNECTED,
|
||||
CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED,
|
||||
CLKOUT2 => NLW_mmcm_adv_inst_CLKOUT2_UNCONNECTED,
|
||||
CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED,
|
||||
CLKOUT3 => NLW_mmcm_adv_inst_CLKOUT3_UNCONNECTED,
|
||||
CLKOUT3B => NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED,
|
||||
CLKOUT4 => NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED,
|
||||
CLKOUT5 => NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED,
|
||||
CLKOUT6 => NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED,
|
||||
DADDR(6 downto 0) => B"0000000",
|
||||
DCLK => '0',
|
||||
DEN => '0',
|
||||
DI(15 downto 0) => B"0000000000000000",
|
||||
DO(15 downto 0) => NLW_mmcm_adv_inst_DO_UNCONNECTED(15 downto 0),
|
||||
DRDY => NLW_mmcm_adv_inst_DRDY_UNCONNECTED,
|
||||
DWE => '0',
|
||||
LOCKED => locked,
|
||||
PSCLK => '0',
|
||||
PSDONE => NLW_mmcm_adv_inst_PSDONE_UNCONNECTED,
|
||||
PSEN => '0',
|
||||
PSINCDEC => '0',
|
||||
PWRDWN => '0',
|
||||
RST => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ant_clk_gen_stg1 is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1_p : in STD_LOGIC;
|
||||
clk_in1_n : in STD_LOGIC
|
||||
);
|
||||
attribute NotValidForBitStream : boolean;
|
||||
attribute NotValidForBitStream of ant_clk_gen_stg1 : entity is true;
|
||||
end ant_clk_gen_stg1;
|
||||
|
||||
architecture STRUCTURE of ant_clk_gen_stg1 is
|
||||
begin
|
||||
inst: entity work.ant_clk_gen_stg1_ant_clk_gen_stg1_clk_wiz
|
||||
port map (
|
||||
clk_in1_n => clk_in1_n,
|
||||
clk_in1_p => clk_in1_p,
|
||||
clk_out1 => clk_out1,
|
||||
locked => locked
|
||||
);
|
||||
end STRUCTURE;
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg1_synth_1/ant_clk_gen_stg1_stub.v
|
||||
// Design : ant_clk_gen_stg1
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
module ant_clk_gen_stg1(clk_out1, locked, clk_in1_p, clk_in1_n)
|
||||
/* synthesis syn_black_box black_box_pad_pin="clk_out1,locked,clk_in1_p,clk_in1_n" */;
|
||||
output clk_out1;
|
||||
output locked;
|
||||
input clk_in1_p;
|
||||
input clk_in1_n;
|
||||
endmodule
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg1_synth_1/ant_clk_gen_stg1_stub.vhdl
|
||||
-- Design : ant_clk_gen_stg1
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity ant_clk_gen_stg1 is
|
||||
Port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1_p : in STD_LOGIC;
|
||||
clk_in1_n : in STD_LOGIC
|
||||
);
|
||||
|
||||
end ant_clk_gen_stg1;
|
||||
|
||||
architecture stub of ant_clk_gen_stg1 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "clk_out1,locked,clk_in1_p,clk_in1_n";
|
||||
begin
|
||||
end;
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
|
||||
// file: ant_clk_gen_stg2.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______136.435____101.715
|
||||
// clk_out2____48.000______0.000______50.0______158.351____101.715
|
||||
// clk_out3____32.000______0.000______50.0______172.426____101.715
|
||||
// clk_out4____19.200______0.000______50.0______190.665____101.715
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
(* CORE_GENERATION_INFO = "ant_clk_gen_stg2,clk_wiz_v6_0_3_0_0,{component_name=ant_clk_gen_stg2,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.417,clkin2_period=10.000,use_power_down=false,use_reset=false,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *)
|
||||
|
||||
module ant_clk_gen_stg2
|
||||
(
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
output clk_out2,
|
||||
output clk_out3,
|
||||
output clk_out4,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
// Clock in ports
|
||||
input clk_in1
|
||||
);
|
||||
|
||||
ant_clk_gen_stg2_clk_wiz inst
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1),
|
||||
.clk_out2(clk_out2),
|
||||
.clk_out3(clk_out3),
|
||||
.clk_out4(clk_out4),
|
||||
// Status and control signals
|
||||
.locked(locked),
|
||||
// Clock in ports
|
||||
.clk_in1(clk_in1)
|
||||
);
|
||||
|
||||
endmodule
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______136.435____101.715
|
||||
// clk_out2____48.000______0.000______50.0______158.351____101.715
|
||||
// clk_out3____32.000______0.000______50.0______172.426____101.715
|
||||
// clk_out4____19.200______0.000______50.0______190.665____101.715
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
|
||||
ant_clk_gen_stg2 instance_name
|
||||
(
|
||||
// Clock out ports
|
||||
.clk_out1(clk_out1), // output clk_out1
|
||||
.clk_out2(clk_out2), // output clk_out2
|
||||
.clk_out3(clk_out3), // output clk_out3
|
||||
.clk_out4(clk_out4), // output clk_out4
|
||||
// Status and control signals
|
||||
.locked(locked), // output locked
|
||||
// Clock in ports
|
||||
.clk_in1(clk_in1)); // input clk_in1
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
+228
@@ -0,0 +1,228 @@
|
||||
|
||||
// file: ant_clk_gen_stg2.v
|
||||
//
|
||||
// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// User entered comments
|
||||
//----------------------------------------------------------------------------
|
||||
// None
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Output Output Phase Duty Cycle Pk-to-Pk Phase
|
||||
// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)
|
||||
//----------------------------------------------------------------------------
|
||||
// clk_out1____96.000______0.000______50.0______136.435____101.715
|
||||
// clk_out2____48.000______0.000______50.0______158.351____101.715
|
||||
// clk_out3____32.000______0.000______50.0______172.426____101.715
|
||||
// clk_out4____19.200______0.000______50.0______190.665____101.715
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Input Clock Freq (MHz) Input Jitter (UI)
|
||||
//----------------------------------------------------------------------------
|
||||
// __primary______________96____________0.010
|
||||
|
||||
`timescale 1ps/1ps
|
||||
|
||||
module ant_clk_gen_stg2_clk_wiz
|
||||
|
||||
(// Clock in ports
|
||||
// Clock out ports
|
||||
output clk_out1,
|
||||
output clk_out2,
|
||||
output clk_out3,
|
||||
output clk_out4,
|
||||
// Status and control signals
|
||||
output locked,
|
||||
input clk_in1
|
||||
);
|
||||
// Input buffering
|
||||
//------------------------------------
|
||||
wire clk_in1_ant_clk_gen_stg2;
|
||||
wire clk_in2_ant_clk_gen_stg2;
|
||||
BUFG clkin1_bufg
|
||||
(.O (clk_in1_ant_clk_gen_stg2),
|
||||
.I (clk_in1));
|
||||
|
||||
|
||||
|
||||
|
||||
// Clocking PRIMITIVE
|
||||
//------------------------------------
|
||||
|
||||
// Instantiation of the MMCM PRIMITIVE
|
||||
// * Unused inputs are tied off
|
||||
// * Unused outputs are labeled unused
|
||||
|
||||
wire clk_out1_ant_clk_gen_stg2;
|
||||
wire clk_out2_ant_clk_gen_stg2;
|
||||
wire clk_out3_ant_clk_gen_stg2;
|
||||
wire clk_out4_ant_clk_gen_stg2;
|
||||
wire clk_out5_ant_clk_gen_stg2;
|
||||
wire clk_out6_ant_clk_gen_stg2;
|
||||
wire clk_out7_ant_clk_gen_stg2;
|
||||
|
||||
wire [15:0] do_unused;
|
||||
wire drdy_unused;
|
||||
wire psdone_unused;
|
||||
wire locked_int;
|
||||
wire clkfbout_ant_clk_gen_stg2;
|
||||
wire clkfbout_buf_ant_clk_gen_stg2;
|
||||
wire clkfboutb_unused;
|
||||
wire clkout0b_unused;
|
||||
wire clkout1b_unused;
|
||||
wire clkout2b_unused;
|
||||
wire clkout3b_unused;
|
||||
wire clkout4_unused;
|
||||
wire clkout5_unused;
|
||||
wire clkout6_unused;
|
||||
wire clkfbstopped_unused;
|
||||
wire clkinstopped_unused;
|
||||
|
||||
MMCME2_ADV
|
||||
#(.BANDWIDTH ("OPTIMIZED"),
|
||||
.CLKOUT4_CASCADE ("FALSE"),
|
||||
.COMPENSATION ("ZHOLD"),
|
||||
.STARTUP_WAIT ("FALSE"),
|
||||
.DIVCLK_DIVIDE (1),
|
||||
.CLKFBOUT_MULT_F (10.000),
|
||||
.CLKFBOUT_PHASE (0.000),
|
||||
.CLKFBOUT_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT0_DIVIDE_F (10.000),
|
||||
.CLKOUT0_PHASE (0.000),
|
||||
.CLKOUT0_DUTY_CYCLE (0.500),
|
||||
.CLKOUT0_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT1_DIVIDE (20),
|
||||
.CLKOUT1_PHASE (0.000),
|
||||
.CLKOUT1_DUTY_CYCLE (0.500),
|
||||
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT2_DIVIDE (30),
|
||||
.CLKOUT2_PHASE (0.000),
|
||||
.CLKOUT2_DUTY_CYCLE (0.500),
|
||||
.CLKOUT2_USE_FINE_PS ("FALSE"),
|
||||
.CLKOUT3_DIVIDE (50),
|
||||
.CLKOUT3_PHASE (0.000),
|
||||
.CLKOUT3_DUTY_CYCLE (0.500),
|
||||
.CLKOUT3_USE_FINE_PS ("FALSE"),
|
||||
.CLKIN1_PERIOD (10.417))
|
||||
mmcm_adv_inst
|
||||
// Output clocks
|
||||
(
|
||||
.CLKFBOUT (clkfbout_ant_clk_gen_stg2),
|
||||
.CLKFBOUTB (clkfboutb_unused),
|
||||
.CLKOUT0 (clk_out1_ant_clk_gen_stg2),
|
||||
.CLKOUT0B (clkout0b_unused),
|
||||
.CLKOUT1 (clk_out2_ant_clk_gen_stg2),
|
||||
.CLKOUT1B (clkout1b_unused),
|
||||
.CLKOUT2 (clk_out3_ant_clk_gen_stg2),
|
||||
.CLKOUT2B (clkout2b_unused),
|
||||
.CLKOUT3 (clk_out4_ant_clk_gen_stg2),
|
||||
.CLKOUT3B (clkout3b_unused),
|
||||
.CLKOUT4 (clkout4_unused),
|
||||
.CLKOUT5 (clkout5_unused),
|
||||
.CLKOUT6 (clkout6_unused),
|
||||
// Input clock control
|
||||
.CLKFBIN (clkfbout_buf_ant_clk_gen_stg2),
|
||||
.CLKIN1 (clk_in1_ant_clk_gen_stg2),
|
||||
.CLKIN2 (1'b0),
|
||||
// Tied to always select the primary input clock
|
||||
.CLKINSEL (1'b1),
|
||||
// Ports for dynamic reconfiguration
|
||||
.DADDR (7'h0),
|
||||
.DCLK (1'b0),
|
||||
.DEN (1'b0),
|
||||
.DI (16'h0),
|
||||
.DO (do_unused),
|
||||
.DRDY (drdy_unused),
|
||||
.DWE (1'b0),
|
||||
// Ports for dynamic phase shift
|
||||
.PSCLK (1'b0),
|
||||
.PSEN (1'b0),
|
||||
.PSINCDEC (1'b0),
|
||||
.PSDONE (psdone_unused),
|
||||
// Other control and status signals
|
||||
.LOCKED (locked_int),
|
||||
.CLKINSTOPPED (clkinstopped_unused),
|
||||
.CLKFBSTOPPED (clkfbstopped_unused),
|
||||
.PWRDWN (1'b0),
|
||||
.RST (1'b0));
|
||||
|
||||
assign locked = locked_int;
|
||||
// Clock Monitor clock assigning
|
||||
//--------------------------------------
|
||||
// Output buffering
|
||||
//-----------------------------------
|
||||
|
||||
BUFG clkf_buf
|
||||
(.O (clkfbout_buf_ant_clk_gen_stg2),
|
||||
.I (clkfbout_ant_clk_gen_stg2));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BUFG clkout1_buf
|
||||
(.O (clk_out1),
|
||||
.I (clk_out1_ant_clk_gen_stg2));
|
||||
|
||||
|
||||
BUFG clkout2_buf
|
||||
(.O (clk_out2),
|
||||
.I (clk_out2_ant_clk_gen_stg2));
|
||||
|
||||
BUFG clkout3_buf
|
||||
(.O (clk_out3),
|
||||
.I (clk_out3_ant_clk_gen_stg2));
|
||||
|
||||
BUFG clkout4_buf
|
||||
(.O (clk_out4),
|
||||
.I (clk_out4_ant_clk_gen_stg2));
|
||||
|
||||
|
||||
|
||||
endmodule
|
||||
+266
@@ -0,0 +1,266 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode funcsim
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg2_synth_1/ant_clk_gen_stg2_sim_netlist.v
|
||||
// Design : ant_clk_gen_stg2
|
||||
// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified
|
||||
// or synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
(* NotValidForBitStream *)
|
||||
module ant_clk_gen_stg2
|
||||
(clk_out1,
|
||||
clk_out2,
|
||||
clk_out3,
|
||||
clk_out4,
|
||||
locked,
|
||||
clk_in1);
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
|
||||
wire clk_in1;
|
||||
wire clk_out1;
|
||||
wire clk_out2;
|
||||
wire clk_out3;
|
||||
wire clk_out4;
|
||||
wire locked;
|
||||
|
||||
ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz inst
|
||||
(.clk_in1(clk_in1),
|
||||
.clk_out1(clk_out1),
|
||||
.clk_out2(clk_out2),
|
||||
.clk_out3(clk_out3),
|
||||
.clk_out4(clk_out4),
|
||||
.locked(locked));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "ant_clk_gen_stg2_clk_wiz" *)
|
||||
module ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz
|
||||
(clk_out1,
|
||||
clk_out2,
|
||||
clk_out3,
|
||||
clk_out4,
|
||||
locked,
|
||||
clk_in1);
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
|
||||
wire clk_in1;
|
||||
wire clk_in1_ant_clk_gen_stg2;
|
||||
wire clk_out1;
|
||||
wire clk_out1_ant_clk_gen_stg2;
|
||||
wire clk_out2;
|
||||
wire clk_out2_ant_clk_gen_stg2;
|
||||
wire clk_out3;
|
||||
wire clk_out3_ant_clk_gen_stg2;
|
||||
wire clk_out4;
|
||||
wire clk_out4_ant_clk_gen_stg2;
|
||||
wire clkfbout_ant_clk_gen_stg2;
|
||||
wire clkfbout_buf_ant_clk_gen_stg2;
|
||||
wire locked;
|
||||
wire NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_DRDY_UNCONNECTED;
|
||||
wire NLW_mmcm_adv_inst_PSDONE_UNCONNECTED;
|
||||
wire [15:0]NLW_mmcm_adv_inst_DO_UNCONNECTED;
|
||||
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkf_buf
|
||||
(.I(clkfbout_ant_clk_gen_stg2),
|
||||
.O(clkfbout_buf_ant_clk_gen_stg2));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkin1_bufg
|
||||
(.I(clk_in1),
|
||||
.O(clk_in1_ant_clk_gen_stg2));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout1_buf
|
||||
(.I(clk_out1_ant_clk_gen_stg2),
|
||||
.O(clk_out1));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout2_buf
|
||||
(.I(clk_out2_ant_clk_gen_stg2),
|
||||
.O(clk_out2));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout3_buf
|
||||
(.I(clk_out3_ant_clk_gen_stg2),
|
||||
.O(clk_out3));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
BUFG clkout4_buf
|
||||
(.I(clk_out4_ant_clk_gen_stg2),
|
||||
.O(clk_out4));
|
||||
(* BOX_TYPE = "PRIMITIVE" *)
|
||||
MMCME2_ADV #(
|
||||
.BANDWIDTH("OPTIMIZED"),
|
||||
.CLKFBOUT_MULT_F(10.000000),
|
||||
.CLKFBOUT_PHASE(0.000000),
|
||||
.CLKFBOUT_USE_FINE_PS("FALSE"),
|
||||
.CLKIN1_PERIOD(10.417000),
|
||||
.CLKIN2_PERIOD(0.000000),
|
||||
.CLKOUT0_DIVIDE_F(10.000000),
|
||||
.CLKOUT0_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT0_PHASE(0.000000),
|
||||
.CLKOUT0_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT1_DIVIDE(20),
|
||||
.CLKOUT1_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT1_PHASE(0.000000),
|
||||
.CLKOUT1_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT2_DIVIDE(30),
|
||||
.CLKOUT2_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT2_PHASE(0.000000),
|
||||
.CLKOUT2_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT3_DIVIDE(50),
|
||||
.CLKOUT3_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT3_PHASE(0.000000),
|
||||
.CLKOUT3_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT4_CASCADE("FALSE"),
|
||||
.CLKOUT4_DIVIDE(1),
|
||||
.CLKOUT4_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT4_PHASE(0.000000),
|
||||
.CLKOUT4_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT5_DIVIDE(1),
|
||||
.CLKOUT5_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT5_PHASE(0.000000),
|
||||
.CLKOUT5_USE_FINE_PS("FALSE"),
|
||||
.CLKOUT6_DIVIDE(1),
|
||||
.CLKOUT6_DUTY_CYCLE(0.500000),
|
||||
.CLKOUT6_PHASE(0.000000),
|
||||
.CLKOUT6_USE_FINE_PS("FALSE"),
|
||||
.COMPENSATION("BUF_IN"),
|
||||
.DIVCLK_DIVIDE(1),
|
||||
.IS_CLKINSEL_INVERTED(1'b0),
|
||||
.IS_PSEN_INVERTED(1'b0),
|
||||
.IS_PSINCDEC_INVERTED(1'b0),
|
||||
.IS_PWRDWN_INVERTED(1'b0),
|
||||
.IS_RST_INVERTED(1'b0),
|
||||
.REF_JITTER1(0.010000),
|
||||
.REF_JITTER2(0.010000),
|
||||
.SS_EN("FALSE"),
|
||||
.SS_MODE("CENTER_HIGH"),
|
||||
.SS_MOD_PERIOD(10000),
|
||||
.STARTUP_WAIT("FALSE"))
|
||||
mmcm_adv_inst
|
||||
(.CLKFBIN(clkfbout_buf_ant_clk_gen_stg2),
|
||||
.CLKFBOUT(clkfbout_ant_clk_gen_stg2),
|
||||
.CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED),
|
||||
.CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED),
|
||||
.CLKIN1(clk_in1_ant_clk_gen_stg2),
|
||||
.CLKIN2(1'b0),
|
||||
.CLKINSEL(1'b1),
|
||||
.CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED),
|
||||
.CLKOUT0(clk_out1_ant_clk_gen_stg2),
|
||||
.CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED),
|
||||
.CLKOUT1(clk_out2_ant_clk_gen_stg2),
|
||||
.CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED),
|
||||
.CLKOUT2(clk_out3_ant_clk_gen_stg2),
|
||||
.CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED),
|
||||
.CLKOUT3(clk_out4_ant_clk_gen_stg2),
|
||||
.CLKOUT3B(NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED),
|
||||
.CLKOUT4(NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED),
|
||||
.CLKOUT5(NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED),
|
||||
.CLKOUT6(NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED),
|
||||
.DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DCLK(1'b0),
|
||||
.DEN(1'b0),
|
||||
.DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DO(NLW_mmcm_adv_inst_DO_UNCONNECTED[15:0]),
|
||||
.DRDY(NLW_mmcm_adv_inst_DRDY_UNCONNECTED),
|
||||
.DWE(1'b0),
|
||||
.LOCKED(locked),
|
||||
.PSCLK(1'b0),
|
||||
.PSDONE(NLW_mmcm_adv_inst_PSDONE_UNCONNECTED),
|
||||
.PSEN(1'b0),
|
||||
.PSINCDEC(1'b0),
|
||||
.PWRDWN(1'b0),
|
||||
.RST(1'b0));
|
||||
endmodule
|
||||
`ifndef GLBL
|
||||
`define GLBL
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module glbl ();
|
||||
|
||||
parameter ROC_WIDTH = 100000;
|
||||
parameter TOC_WIDTH = 0;
|
||||
|
||||
//-------- STARTUP Globals --------------
|
||||
wire GSR;
|
||||
wire GTS;
|
||||
wire GWE;
|
||||
wire PRLD;
|
||||
tri1 p_up_tmp;
|
||||
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
|
||||
|
||||
wire PROGB_GLBL;
|
||||
wire CCLKO_GLBL;
|
||||
wire FCSBO_GLBL;
|
||||
wire [3:0] DO_GLBL;
|
||||
wire [3:0] DI_GLBL;
|
||||
|
||||
reg GSR_int;
|
||||
reg GTS_int;
|
||||
reg PRLD_int;
|
||||
|
||||
//-------- JTAG Globals --------------
|
||||
wire JTAG_TDO_GLBL;
|
||||
wire JTAG_TCK_GLBL;
|
||||
wire JTAG_TDI_GLBL;
|
||||
wire JTAG_TMS_GLBL;
|
||||
wire JTAG_TRST_GLBL;
|
||||
|
||||
reg JTAG_CAPTURE_GLBL;
|
||||
reg JTAG_RESET_GLBL;
|
||||
reg JTAG_SHIFT_GLBL;
|
||||
reg JTAG_UPDATE_GLBL;
|
||||
reg JTAG_RUNTEST_GLBL;
|
||||
|
||||
reg JTAG_SEL1_GLBL = 0;
|
||||
reg JTAG_SEL2_GLBL = 0 ;
|
||||
reg JTAG_SEL3_GLBL = 0;
|
||||
reg JTAG_SEL4_GLBL = 0;
|
||||
|
||||
reg JTAG_USER_TDO1_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO2_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO3_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO4_GLBL = 1'bz;
|
||||
|
||||
assign (strong1, weak0) GSR = GSR_int;
|
||||
assign (strong1, weak0) GTS = GTS_int;
|
||||
assign (weak1, weak0) PRLD = PRLD_int;
|
||||
|
||||
initial begin
|
||||
GSR_int = 1'b1;
|
||||
PRLD_int = 1'b1;
|
||||
#(ROC_WIDTH)
|
||||
GSR_int = 1'b0;
|
||||
PRLD_int = 1'b0;
|
||||
end
|
||||
|
||||
initial begin
|
||||
GTS_int = 1'b1;
|
||||
#(TOC_WIDTH)
|
||||
GTS_int = 1'b0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode funcsim
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg2_synth_1/ant_clk_gen_stg2_sim_netlist.vhdl
|
||||
-- Design : ant_clk_gen_stg2
|
||||
-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or
|
||||
-- synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz : entity is "ant_clk_gen_stg2_clk_wiz";
|
||||
end ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz;
|
||||
|
||||
architecture STRUCTURE of ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz is
|
||||
signal clk_in1_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clk_out1_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clk_out2_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clk_out3_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clk_out4_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clkfbout_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal clkfbout_buf_ant_clk_gen_stg2 : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DRDY_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_mmcm_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 );
|
||||
attribute BOX_TYPE : string;
|
||||
attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkin1_bufg : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout2_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout3_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of clkout4_buf : label is "PRIMITIVE";
|
||||
attribute BOX_TYPE of mmcm_adv_inst : label is "PRIMITIVE";
|
||||
begin
|
||||
clkf_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clkfbout_ant_clk_gen_stg2,
|
||||
O => clkfbout_buf_ant_clk_gen_stg2
|
||||
);
|
||||
clkin1_bufg: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_in1,
|
||||
O => clk_in1_ant_clk_gen_stg2
|
||||
);
|
||||
clkout1_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out1_ant_clk_gen_stg2,
|
||||
O => clk_out1
|
||||
);
|
||||
clkout2_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out2_ant_clk_gen_stg2,
|
||||
O => clk_out2
|
||||
);
|
||||
clkout3_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out3_ant_clk_gen_stg2,
|
||||
O => clk_out3
|
||||
);
|
||||
clkout4_buf: unisim.vcomponents.BUFG
|
||||
port map (
|
||||
I => clk_out4_ant_clk_gen_stg2,
|
||||
O => clk_out4
|
||||
);
|
||||
mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV
|
||||
generic map(
|
||||
BANDWIDTH => "OPTIMIZED",
|
||||
CLKFBOUT_MULT_F => 10.000000,
|
||||
CLKFBOUT_PHASE => 0.000000,
|
||||
CLKFBOUT_USE_FINE_PS => false,
|
||||
CLKIN1_PERIOD => 10.417000,
|
||||
CLKIN2_PERIOD => 0.000000,
|
||||
CLKOUT0_DIVIDE_F => 10.000000,
|
||||
CLKOUT0_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT0_PHASE => 0.000000,
|
||||
CLKOUT0_USE_FINE_PS => false,
|
||||
CLKOUT1_DIVIDE => 20,
|
||||
CLKOUT1_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT1_PHASE => 0.000000,
|
||||
CLKOUT1_USE_FINE_PS => false,
|
||||
CLKOUT2_DIVIDE => 30,
|
||||
CLKOUT2_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT2_PHASE => 0.000000,
|
||||
CLKOUT2_USE_FINE_PS => false,
|
||||
CLKOUT3_DIVIDE => 50,
|
||||
CLKOUT3_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT3_PHASE => 0.000000,
|
||||
CLKOUT3_USE_FINE_PS => false,
|
||||
CLKOUT4_CASCADE => false,
|
||||
CLKOUT4_DIVIDE => 1,
|
||||
CLKOUT4_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT4_PHASE => 0.000000,
|
||||
CLKOUT4_USE_FINE_PS => false,
|
||||
CLKOUT5_DIVIDE => 1,
|
||||
CLKOUT5_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT5_PHASE => 0.000000,
|
||||
CLKOUT5_USE_FINE_PS => false,
|
||||
CLKOUT6_DIVIDE => 1,
|
||||
CLKOUT6_DUTY_CYCLE => 0.500000,
|
||||
CLKOUT6_PHASE => 0.000000,
|
||||
CLKOUT6_USE_FINE_PS => false,
|
||||
COMPENSATION => "BUF_IN",
|
||||
DIVCLK_DIVIDE => 1,
|
||||
IS_CLKINSEL_INVERTED => '0',
|
||||
IS_PSEN_INVERTED => '0',
|
||||
IS_PSINCDEC_INVERTED => '0',
|
||||
IS_PWRDWN_INVERTED => '0',
|
||||
IS_RST_INVERTED => '0',
|
||||
REF_JITTER1 => 0.010000,
|
||||
REF_JITTER2 => 0.010000,
|
||||
SS_EN => "FALSE",
|
||||
SS_MODE => "CENTER_HIGH",
|
||||
SS_MOD_PERIOD => 10000,
|
||||
STARTUP_WAIT => false
|
||||
)
|
||||
port map (
|
||||
CLKFBIN => clkfbout_buf_ant_clk_gen_stg2,
|
||||
CLKFBOUT => clkfbout_ant_clk_gen_stg2,
|
||||
CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED,
|
||||
CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED,
|
||||
CLKIN1 => clk_in1_ant_clk_gen_stg2,
|
||||
CLKIN2 => '0',
|
||||
CLKINSEL => '1',
|
||||
CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED,
|
||||
CLKOUT0 => clk_out1_ant_clk_gen_stg2,
|
||||
CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED,
|
||||
CLKOUT1 => clk_out2_ant_clk_gen_stg2,
|
||||
CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED,
|
||||
CLKOUT2 => clk_out3_ant_clk_gen_stg2,
|
||||
CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED,
|
||||
CLKOUT3 => clk_out4_ant_clk_gen_stg2,
|
||||
CLKOUT3B => NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED,
|
||||
CLKOUT4 => NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED,
|
||||
CLKOUT5 => NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED,
|
||||
CLKOUT6 => NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED,
|
||||
DADDR(6 downto 0) => B"0000000",
|
||||
DCLK => '0',
|
||||
DEN => '0',
|
||||
DI(15 downto 0) => B"0000000000000000",
|
||||
DO(15 downto 0) => NLW_mmcm_adv_inst_DO_UNCONNECTED(15 downto 0),
|
||||
DRDY => NLW_mmcm_adv_inst_DRDY_UNCONNECTED,
|
||||
DWE => '0',
|
||||
LOCKED => locked,
|
||||
PSCLK => '0',
|
||||
PSDONE => NLW_mmcm_adv_inst_PSDONE_UNCONNECTED,
|
||||
PSEN => '0',
|
||||
PSINCDEC => '0',
|
||||
PWRDWN => '0',
|
||||
RST => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity ant_clk_gen_stg2 is
|
||||
port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
attribute NotValidForBitStream : boolean;
|
||||
attribute NotValidForBitStream of ant_clk_gen_stg2 : entity is true;
|
||||
end ant_clk_gen_stg2;
|
||||
|
||||
architecture STRUCTURE of ant_clk_gen_stg2 is
|
||||
begin
|
||||
inst: entity work.ant_clk_gen_stg2_ant_clk_gen_stg2_clk_wiz
|
||||
port map (
|
||||
clk_in1 => clk_in1,
|
||||
clk_out1 => clk_out1,
|
||||
clk_out2 => clk_out2,
|
||||
clk_out3 => clk_out3,
|
||||
clk_out4 => clk_out4,
|
||||
locked => locked
|
||||
);
|
||||
end STRUCTURE;
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:33 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg2_synth_1/ant_clk_gen_stg2_stub.v
|
||||
// Design : ant_clk_gen_stg2
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
module ant_clk_gen_stg2(clk_out1, clk_out2, clk_out3, clk_out4, locked,
|
||||
clk_in1)
|
||||
/* synthesis syn_black_box black_box_pad_pin="clk_out1,clk_out2,clk_out3,clk_out4,locked,clk_in1" */;
|
||||
output clk_out1;
|
||||
output clk_out2;
|
||||
output clk_out3;
|
||||
output clk_out4;
|
||||
output locked;
|
||||
input clk_in1;
|
||||
endmodule
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:33 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/ant_clk_gen_stg2_synth_1/ant_clk_gen_stg2_stub.vhdl
|
||||
-- Design : ant_clk_gen_stg2
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity ant_clk_gen_stg2 is
|
||||
Port (
|
||||
clk_out1 : out STD_LOGIC;
|
||||
clk_out2 : out STD_LOGIC;
|
||||
clk_out3 : out STD_LOGIC;
|
||||
clk_out4 : out STD_LOGIC;
|
||||
locked : out STD_LOGIC;
|
||||
clk_in1 : in STD_LOGIC
|
||||
);
|
||||
|
||||
end ant_clk_gen_stg2;
|
||||
|
||||
architecture stub of ant_clk_gen_stg2 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "clk_out1,clk_out2,clk_out3,clk_out4,locked,clk_in1";
|
||||
begin
|
||||
end;
|
||||
@@ -0,0 +1,69 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:cordic:6.0
|
||||
// IP Revision: 15
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
atan2_16b your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_cartesian_tvalid(s_axis_cartesian_tvalid), // input wire s_axis_cartesian_tvalid
|
||||
.s_axis_cartesian_tdata(s_axis_cartesian_tdata), // input wire [31 : 0] s_axis_cartesian_tdata
|
||||
.m_axis_dout_tvalid(m_axis_dout_tvalid), // output wire m_axis_dout_tvalid
|
||||
.m_axis_dout_tdata(m_axis_dout_tdata) // output wire [15 : 0] m_axis_dout_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file atan2_16b.v when simulating
|
||||
// the core, atan2_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT atan2_16b
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : atan2_16b
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file atan2_16b.vhd when simulating
|
||||
-- the core, atan2_16b. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+17650
File diff suppressed because it is too large
Load Diff
+28111
File diff suppressed because it is too large
Load Diff
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:34:07 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/atan2_16b_synth_1/atan2_16b_stub.v
|
||||
// Design : atan2_16b
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "cordic_v6_0_15,Vivado 2019.1.3" *)
|
||||
module atan2_16b(aclk, s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata, m_axis_dout_tvalid, m_axis_dout_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[15:0]" */;
|
||||
input aclk;
|
||||
input s_axis_cartesian_tvalid;
|
||||
input [31:0]s_axis_cartesian_tdata;
|
||||
output m_axis_dout_tvalid;
|
||||
output [15:0]m_axis_dout_tdata;
|
||||
endmodule
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:34:07 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/atan2_16b_synth_1/atan2_16b_stub.vhdl
|
||||
-- Design : atan2_16b
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity atan2_16b is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : in STD_LOGIC;
|
||||
s_axis_cartesian_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
m_axis_dout_tvalid : out STD_LOGIC;
|
||||
m_axis_dout_tdata : out STD_LOGIC_VECTOR ( 15 downto 0 )
|
||||
);
|
||||
|
||||
end atan2_16b;
|
||||
|
||||
architecture stub of atan2_16b is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "aclk,s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[15:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "cordic_v6_0_15,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+376
@@ -0,0 +1,376 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the CORDIC IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the CORDIC product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated CORDIC core
|
||||
-- instance named "atan2_16b".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity tb_atan2_16b is
|
||||
end tb_atan2_16b;
|
||||
|
||||
architecture tb of tb_atan2_16b is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
constant TEST_CYCLES : integer := 3000;
|
||||
constant PHASE_CYCLES : integer := 1000;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT input signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General inputs
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Slave channel CARTESIAN inputs
|
||||
signal s_axis_cartesian_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_CARTESIAN
|
||||
signal s_axis_cartesian_tdata : std_logic_vector(31 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_CARTESIAN
|
||||
|
||||
-- Slave channel PHASE inputs
|
||||
signal s_axis_phase_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_PHASE
|
||||
signal s_axis_phase_tdata : std_logic_vector(15 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_PHASE
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT output signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Master channel DOUT outputs
|
||||
signal m_axis_dout_tvalid : std_logic := '0'; -- TVALID for channel M_AXIS_DOUT
|
||||
signal m_axis_dout_tdata : std_logic_vector(15 downto 0) := (others => '0'); -- TDATA for channel M_AXIS_DOUT
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
signal s_axis_cartesian_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_cartesian_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_phase_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
|
||||
signal m_axis_dout_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_phase : std_logic_vector(15 downto 0) := (others => '0');
|
||||
-----------------------------------------------------------------------
|
||||
-- Testbench signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
signal cycles : integer := 0; -- Clock cycle counter
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Constants, types and functions to create input data
|
||||
-- The CORDIC is fed two sinusoids exp(+/-jwt) of different frequencies and amplitudes:
|
||||
-- channel CARTESIAN: exp(+jwt), frequency = clock / 30,
|
||||
-- channel PHASE: exp(-jwt), frequency = clock / 32,
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
constant IP_CARTESIAN_DEPTH : integer := 30;
|
||||
constant IP_CARTESIAN_WIDTH : integer := 16;
|
||||
constant IP_CARTESIAN_SHIFT : integer := 3; -- bit shift for amplitude
|
||||
constant IP_PHASE_DEPTH : integer := 32;
|
||||
constant IP_PHASE_WIDTH : integer := 16;
|
||||
constant IP_PHASE_SHIFT : integer := 0; -- no bit shift, max amplitude
|
||||
type T_IP_INT_ENTRY is record
|
||||
re : integer;
|
||||
im : integer;
|
||||
end record;
|
||||
type T_IP_CARTESIAN_ENTRY is record
|
||||
re : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_PHASE_ENTRY is record
|
||||
re : std_logic_vector(IP_PHASE_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_CARTESIAN_TABLE is array (0 to IP_CARTESIAN_DEPTH-1) of T_IP_CARTESIAN_ENTRY;
|
||||
type T_IP_PHASE_TABLE is array (0 to IP_PHASE_DEPTH-1) of T_IP_PHASE_ENTRY;
|
||||
|
||||
-- Common function to calculate sine and cosine values
|
||||
function create_ip_entry(index, depth, width : integer) return T_IP_INT_ENTRY is
|
||||
variable result : T_IP_INT_ENTRY;
|
||||
variable theta : real;
|
||||
variable limited_width : integer := width - 2;
|
||||
begin
|
||||
if limited_width > 30 then
|
||||
limited_width := 30; --avoid integer overflow
|
||||
end if;
|
||||
theta := real(index) / real(depth) * 2.0 * MATH_PI;
|
||||
result.re := integer(round(cos(theta) * real(2**limited_width)));
|
||||
result.im := integer(round(sin(theta) * real(2**limited_width)));
|
||||
return result;
|
||||
end function create_ip_entry;
|
||||
|
||||
-- Use separate functions to calculate channel S_AXIS_CARTESIAN and S_AXIS_PHASE sinusoids as they return different types
|
||||
function create_ip_cartesian_table return T_IP_CARTESIAN_TABLE is
|
||||
variable result : T_IP_CARTESIAN_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_CARTESIAN_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(i, IP_CARTESIAN_DEPTH, IP_CARTESIAN_WIDTH - IP_CARTESIAN_SHIFT);
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_CARTESIAN_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_CARTESIAN_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_cartesian_table;
|
||||
|
||||
function create_ip_phase_table return T_IP_PHASE_TABLE is
|
||||
variable result : T_IP_PHASE_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_PHASE_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(IP_PHASE_DEPTH-1-i, IP_PHASE_DEPTH, IP_PHASE_WIDTH - IP_PHASE_SHIFT); -- note rotation direction
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_PHASE_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_phase_table;
|
||||
|
||||
-- Call the functions to create the data
|
||||
constant IP_CARTESIAN_DATA : T_IP_CARTESIAN_TABLE := create_ip_cartesian_table;
|
||||
constant IP_PHASE_DATA : T_IP_PHASE_TABLE := create_ip_phase_table;
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.atan2_16b
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
cycles <= cycles + 1;
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
if cycles >= TEST_CYCLES then
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
end if;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
variable ip_cartesian_index : integer := 0;
|
||||
variable ip_phase_index : integer := 0;
|
||||
variable cartesian_tvalid_nxt : std_logic := '0';
|
||||
variable phase_tvalid_nxt : std_logic := '0';
|
||||
variable phase2_cycles : integer := 1;
|
||||
variable phase2_count : integer := 0;
|
||||
constant PHASE2_LIMIT : integer := 30;
|
||||
begin
|
||||
|
||||
-- Test is stopped in clock_gen process, use endless loop here
|
||||
loop
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive AXI TVALID signals to demonstrate different types of operation
|
||||
case cycles is -- do different types of operation at different phases of the test
|
||||
when 0 to PHASE_CYCLES * 1 - 1 =>
|
||||
-- Phase 1: inputs always valid, no missing input data
|
||||
cartesian_tvalid_nxt := '1';
|
||||
phase_tvalid_nxt := '1';
|
||||
when PHASE_CYCLES * 1 to PHASE_CYCLES * 2 - 1 =>
|
||||
-- Phase 2: deprive channel S_AXIS_CARTESIAN of valid transactions at an increasing rate
|
||||
phase_tvalid_nxt := '1';
|
||||
if phase2_count < phase2_cycles then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
phase2_count := phase2_count + 1;
|
||||
if phase2_count >= PHASE2_LIMIT then
|
||||
phase2_count := 0;
|
||||
phase2_cycles := phase2_cycles + 1;
|
||||
end if;
|
||||
when PHASE_CYCLES * 2 to PHASE_CYCLES * 3 - 1 =>
|
||||
-- Phase 3: deprive channel S_AXIS_CARTESIAN of 1 out of 2 transactions, and channel S_AXIS_PHASE of 1 out of 3 transactions
|
||||
if cycles mod 2 = 0 then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
if cycles mod 3 = 0 then
|
||||
phase_tvalid_nxt := '0';
|
||||
else
|
||||
phase_tvalid_nxt := '1';
|
||||
end if;
|
||||
when others =>
|
||||
-- Test will stop imminently - do nothing
|
||||
null;
|
||||
end case;
|
||||
|
||||
-- Drive handshake signals with local variable values
|
||||
s_axis_cartesian_tvalid <= cartesian_tvalid_nxt;
|
||||
s_axis_phase_tvalid <= phase_tvalid_nxt;
|
||||
|
||||
-- Drive AXI slave channel CARTESIAN payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if cartesian_tvalid_nxt /= '1' then
|
||||
s_axis_cartesian_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 16 bits wide and byte-aligned at their LSBs
|
||||
s_axis_cartesian_tdata(15 downto 0) <= IP_CARTESIAN_DATA(ip_cartesian_index).re;
|
||||
s_axis_cartesian_tdata(31 downto 16) <= IP_CARTESIAN_DATA(ip_cartesian_index).im;
|
||||
|
||||
end if;
|
||||
|
||||
-- Drive AXI slave channel PHASE payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if phase_tvalid_nxt /= '1' then
|
||||
s_axis_phase_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real component is 16 bits wide and byte-aligned at its LSBs
|
||||
s_axis_phase_tdata(15 downto 0) <= IP_PHASE_DATA(ip_phase_index).re;
|
||||
end if;
|
||||
|
||||
-- Increment input data indices
|
||||
if cartesian_tvalid_nxt = '1' then
|
||||
ip_cartesian_index := ip_cartesian_index + 1;
|
||||
if ip_cartesian_index = IP_CARTESIAN_DEPTH then
|
||||
ip_cartesian_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
if phase_tvalid_nxt = '1' then
|
||||
ip_phase_index := ip_phase_index + 1;
|
||||
if ip_phase_index = IP_PHASE_DEPTH then
|
||||
ip_phase_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end loop;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the DOUT channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_dout_tvalid = '1' then
|
||||
if is_x(m_axis_dout_tdata) then
|
||||
report "ERROR: m_axis_dout_tdata is invalid when m_axis_dout_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
s_axis_cartesian_tdata_real <= s_axis_cartesian_tdata(15 downto 0);
|
||||
s_axis_cartesian_tdata_imag <= s_axis_cartesian_tdata(31 downto 16);
|
||||
|
||||
m_axis_dout_tdata_phase <= m_axis_dout_tdata(15 downto 0);
|
||||
|
||||
end tb;
|
||||
|
||||
+186
@@ -0,0 +1,186 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY cordic_v6_0_15;
|
||||
USE cordic_v6_0_15.cordic_v6_0_15;
|
||||
|
||||
ENTITY atan2_16b IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END atan2_16b;
|
||||
|
||||
ARCHITECTURE atan2_16b_arch OF atan2_16b IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF atan2_16b_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT cordic_v6_0_15 IS
|
||||
GENERIC (
|
||||
C_ARCHITECTURE : INTEGER;
|
||||
C_CORDIC_FUNCTION : INTEGER;
|
||||
C_COARSE_ROTATE : INTEGER;
|
||||
C_DATA_FORMAT : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_HAS_ACLK : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE : INTEGER;
|
||||
C_HAS_ARESETN : INTEGER;
|
||||
C_INPUT_WIDTH : INTEGER;
|
||||
C_ITERATIONS : INTEGER;
|
||||
C_OUTPUT_WIDTH : INTEGER;
|
||||
C_PHASE_FORMAT : INTEGER;
|
||||
C_PIPELINE_MODE : INTEGER;
|
||||
C_PRECISION : INTEGER;
|
||||
C_ROUND_MODE : INTEGER;
|
||||
C_SCALE_COMP : INTEGER;
|
||||
C_THROTTLE_SCHEME : INTEGER;
|
||||
C_TLAST_RESOLUTION : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TLAST : INTEGER;
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
aresetn : IN STD_LOGIC;
|
||||
s_axis_phase_tvalid : IN STD_LOGIC;
|
||||
s_axis_phase_tready : OUT STD_LOGIC;
|
||||
s_axis_phase_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_phase_tlast : IN STD_LOGIC;
|
||||
s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tready : OUT STD_LOGIC;
|
||||
s_axis_cartesian_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_cartesian_tlast : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tready : IN STD_LOGIC;
|
||||
m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_dout_tlast : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT cordic_v6_0_15;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_dout_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DOUT, TDATA_NUM_BYTES 2, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_cartesian_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_CARTESIAN, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF M_AXIS_DOUT:S_AXIS_PHASE:S_AXIS_CARTESIAN, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 1000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : cordic_v6_0_15
|
||||
GENERIC MAP (
|
||||
C_ARCHITECTURE => 2,
|
||||
C_CORDIC_FUNCTION => 3,
|
||||
C_COARSE_ROTATE => 1,
|
||||
C_DATA_FORMAT => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_HAS_ACLK => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN => 1,
|
||||
C_HAS_S_AXIS_PHASE => 0,
|
||||
C_HAS_ARESETN => 0,
|
||||
C_INPUT_WIDTH => 16,
|
||||
C_ITERATIONS => 0,
|
||||
C_OUTPUT_WIDTH => 16,
|
||||
C_PHASE_FORMAT => 1,
|
||||
C_PIPELINE_MODE => -2,
|
||||
C_PRECISION => 0,
|
||||
C_ROUND_MODE => 0,
|
||||
C_SCALE_COMP => 0,
|
||||
C_THROTTLE_SCHEME => 3,
|
||||
C_TLAST_RESOLUTION => 0,
|
||||
C_HAS_S_AXIS_PHASE_TUSER => 0,
|
||||
C_HAS_S_AXIS_PHASE_TLAST => 0,
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH => 16,
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER => 0,
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST => 0,
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH => 1,
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH => 16,
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
aresetn => '1',
|
||||
s_axis_phase_tvalid => '0',
|
||||
s_axis_phase_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_phase_tlast => '0',
|
||||
s_axis_phase_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 16)),
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_cartesian_tlast => '0',
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tready => '0',
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
END atan2_16b_arch;
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
// IP Revision: 17
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
cmpy_12x12 your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_a_tvalid(s_axis_a_tvalid), // input wire s_axis_a_tvalid
|
||||
.s_axis_a_tdata(s_axis_a_tdata), // input wire [31 : 0] s_axis_a_tdata
|
||||
.s_axis_b_tvalid(s_axis_b_tvalid), // input wire s_axis_b_tvalid
|
||||
.s_axis_b_tdata(s_axis_b_tdata), // input wire [31 : 0] s_axis_b_tdata
|
||||
.m_axis_dout_tvalid(m_axis_dout_tvalid), // output wire m_axis_dout_tvalid
|
||||
.m_axis_dout_tdata(m_axis_dout_tdata) // output wire [63 : 0] m_axis_dout_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file cmpy_12x12.v when simulating
|
||||
// the core, cmpy_12x12. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
-- IP Revision: 17
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT cmpy_12x12
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : cmpy_12x12
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file cmpy_12x12.vhd when simulating
|
||||
-- the core, cmpy_12x12. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+11535
File diff suppressed because it is too large
Load Diff
+15656
File diff suppressed because it is too large
Load Diff
+27
@@ -0,0 +1,27 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:47 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/cmpy_12x12_synth_1/cmpy_12x12_stub.v
|
||||
// Design : cmpy_12x12
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "cmpy_v6_0_17,Vivado 2019.1.3" *)
|
||||
module cmpy_12x12(aclk, s_axis_a_tvalid, s_axis_a_tdata,
|
||||
s_axis_b_tvalid, s_axis_b_tdata, m_axis_dout_tvalid, m_axis_dout_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_a_tvalid,s_axis_a_tdata[31:0],s_axis_b_tvalid,s_axis_b_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[63:0]" */;
|
||||
input aclk;
|
||||
input s_axis_a_tvalid;
|
||||
input [31:0]s_axis_a_tdata;
|
||||
input s_axis_b_tvalid;
|
||||
input [31:0]s_axis_b_tdata;
|
||||
output m_axis_dout_tvalid;
|
||||
output [63:0]m_axis_dout_tdata;
|
||||
endmodule
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:47 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/cmpy_12x12_synth_1/cmpy_12x12_stub.vhdl
|
||||
-- Design : cmpy_12x12
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity cmpy_12x12 is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_a_tvalid : in STD_LOGIC;
|
||||
s_axis_a_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
s_axis_b_tvalid : in STD_LOGIC;
|
||||
s_axis_b_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
m_axis_dout_tvalid : out STD_LOGIC;
|
||||
m_axis_dout_tdata : out STD_LOGIC_VECTOR ( 63 downto 0 )
|
||||
);
|
||||
|
||||
end cmpy_12x12;
|
||||
|
||||
architecture stub of cmpy_12x12 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "aclk,s_axis_a_tvalid,s_axis_a_tdata[31:0],s_axis_b_tvalid,s_axis_b_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[63:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "cmpy_v6_0_17,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+389
@@ -0,0 +1,389 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the Complex Multiplier IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the Complex Multiplier product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated Complex Multiplier core
|
||||
-- instance named "cmpy_12x12".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity tb_cmpy_12x12 is
|
||||
end tb_cmpy_12x12;
|
||||
|
||||
architecture tb of tb_cmpy_12x12 is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
constant TEST_CYCLES : integer := 3000;
|
||||
constant PHASE_CYCLES : integer := 1000;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT input signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General inputs
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Slave channel A inputs
|
||||
signal s_axis_a_tvalid : std_logic := '0'; -- TVALID for channel A
|
||||
signal s_axis_a_tdata : std_logic_vector(31 downto 0) := (others => '0'); -- TDATA for channel A
|
||||
|
||||
-- Slave channel B inputs
|
||||
signal s_axis_b_tvalid : std_logic := '0'; -- TVALID for channel B
|
||||
signal s_axis_b_tdata : std_logic_vector(31 downto 0) := (others => '0'); -- TDATA for channel B
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT output signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Master channel DOUT outputs
|
||||
signal m_axis_dout_tvalid : std_logic := '0'; -- TVALID for channel DOUT
|
||||
signal m_axis_dout_tdata : std_logic_vector(63 downto 0) := (others => '0'); -- TDATA for channel DOUT
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
signal s_axis_a_tdata_real : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal s_axis_a_tdata_imag : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal s_axis_b_tdata_real : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal s_axis_b_tdata_imag : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_real : std_logic_vector(24 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_imag : std_logic_vector(24 downto 0) := (others => '0');
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Testbench signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
signal cycles : integer := 0; -- Clock cycle counter
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Constants, types and functions to create input data
|
||||
-- Treat the complex multiplier as a mixer that is combining two
|
||||
-- sinusoids exp(+/-jwt) of different frequencies and amplitudes:
|
||||
-- channel A: exp(+jwt), frequency = clock / 30, amplitude = fullscale >> 3
|
||||
-- channel B: exp(-jwt), frequency = clock / 32, amplitude = fullscale
|
||||
-- The output of the complex multiplier is a sinusoid with a frequency
|
||||
-- equal to the difference between the input frequencies.
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
constant IP_A_DEPTH : integer := 30;
|
||||
constant IP_A_WIDTH : integer := 12;
|
||||
constant IP_A_SHIFT : integer := 3; -- bit shift for amplitude
|
||||
constant IP_B_DEPTH : integer := 32;
|
||||
constant IP_B_WIDTH : integer := 12;
|
||||
constant IP_B_SHIFT : integer := 0; -- no bit shift, max amplitude
|
||||
type T_IP_INT_ENTRY is record
|
||||
re : integer;
|
||||
im : integer;
|
||||
end record;
|
||||
type T_IP_A_ENTRY is record
|
||||
re : std_logic_vector(IP_A_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_A_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_B_ENTRY is record
|
||||
re : std_logic_vector(IP_B_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_B_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_A_TABLE is array (0 to IP_A_DEPTH-1) of T_IP_A_ENTRY;
|
||||
type T_IP_B_TABLE is array (0 to IP_B_DEPTH-1) of T_IP_B_ENTRY;
|
||||
|
||||
-- Common function to calculate sine and cosine values
|
||||
function create_ip_entry(index, depth, width : integer) return T_IP_INT_ENTRY is
|
||||
variable result : T_IP_INT_ENTRY;
|
||||
variable theta : real;
|
||||
variable limited_width : integer := width - 2;
|
||||
begin
|
||||
if limited_width > 30 then
|
||||
limited_width := 30;
|
||||
end if;
|
||||
theta := real(index) / real(depth) * 2.0 * MATH_PI;
|
||||
result.re := integer(round(cos(theta) * real(2**limited_width-1)));
|
||||
result.im := integer(round(sin(theta) * real(2**limited_width-1)));
|
||||
return result;
|
||||
end function create_ip_entry;
|
||||
|
||||
-- Use separate functions to calculate channel A and B sinusoids as they return different types
|
||||
function create_ip_a_table return T_IP_A_TABLE is
|
||||
variable result : T_IP_A_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_A_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(i, IP_A_DEPTH, IP_A_WIDTH - IP_A_SHIFT);
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_A_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_A_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_a_table;
|
||||
|
||||
function create_ip_b_table return T_IP_B_TABLE is
|
||||
variable result : T_IP_B_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_B_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(IP_B_DEPTH-1-i, IP_B_DEPTH, IP_B_WIDTH - IP_B_SHIFT); -- note rotation direction
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_B_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_B_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_b_table;
|
||||
|
||||
-- Call the functions to create the data
|
||||
constant IP_A_DATA : T_IP_A_TABLE := create_ip_a_table;
|
||||
constant IP_B_DATA : T_IP_B_TABLE := create_ip_b_table;
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.cmpy_12x12
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
cycles <= cycles + 1;
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
if cycles >= TEST_CYCLES then
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
end if;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
variable ip_a_index : integer := 0;
|
||||
variable ip_b_index : integer := 0;
|
||||
variable a_tvalid_nxt : std_logic := '0';
|
||||
variable b_tvalid_nxt : std_logic := '0';
|
||||
variable phase2_cycles : integer := 1;
|
||||
variable phase2_count : integer := 0;
|
||||
constant PHASE2_LIMIT : integer := 30;
|
||||
begin
|
||||
|
||||
-- Test is stopped in clock_gen process, use endless loop here
|
||||
loop
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive AXI TVALID signals to demonstrate different types of operation
|
||||
case cycles is -- do different types of operation at different phases of the test
|
||||
when 0 to PHASE_CYCLES * 1 - 1 =>
|
||||
-- Phase 1: inputs always valid, no missing input data
|
||||
a_tvalid_nxt := '1';
|
||||
b_tvalid_nxt := '1';
|
||||
when PHASE_CYCLES * 1 to PHASE_CYCLES * 2 - 1 =>
|
||||
-- Phase 2: deprive channel A of valid transactions at an increasing rate
|
||||
b_tvalid_nxt := '1';
|
||||
if phase2_count < phase2_cycles then
|
||||
a_tvalid_nxt := '0';
|
||||
else
|
||||
a_tvalid_nxt := '1';
|
||||
end if;
|
||||
phase2_count := phase2_count + 1;
|
||||
if phase2_count >= PHASE2_LIMIT then
|
||||
phase2_count := 0;
|
||||
phase2_cycles := phase2_cycles + 1;
|
||||
end if;
|
||||
when PHASE_CYCLES * 2 to PHASE_CYCLES * 3 - 1 =>
|
||||
-- Phase 3: deprive channel A of 1 out of 2 transactions, and channel B of 1 out of 3 transactions
|
||||
if cycles mod 2 = 0 then
|
||||
a_tvalid_nxt := '0';
|
||||
else
|
||||
a_tvalid_nxt := '1';
|
||||
end if;
|
||||
if cycles mod 3 = 0 then
|
||||
b_tvalid_nxt := '0';
|
||||
else
|
||||
b_tvalid_nxt := '1';
|
||||
end if;
|
||||
when others =>
|
||||
-- Test will stop imminently - do nothing
|
||||
null;
|
||||
end case;
|
||||
|
||||
-- Drive handshake signals with local variable values
|
||||
s_axis_a_tvalid <= a_tvalid_nxt;
|
||||
s_axis_b_tvalid <= b_tvalid_nxt;
|
||||
|
||||
-- Drive AXI slave channel A payload
|
||||
-- Drive '0's on payload signals when not valid
|
||||
if a_tvalid_nxt /= '1' then
|
||||
s_axis_a_tdata <= (others => '0');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 12 bits wide and byte-aligned at their LSBs
|
||||
s_axis_a_tdata(11 downto 0) <= IP_A_DATA(ip_a_index).re;
|
||||
s_axis_a_tdata(15 downto 12) <= (others => IP_A_DATA(ip_a_index).re(11)); -- sign-extend;
|
||||
s_axis_a_tdata(27 downto 16) <= IP_A_DATA(ip_a_index).im;
|
||||
s_axis_a_tdata(31 downto 28) <= (others => IP_A_DATA(ip_a_index).im(11)); -- sign-extend;
|
||||
end if;
|
||||
|
||||
-- Drive AXI slave channel B payload
|
||||
-- Drive '0's on payload signals when not valid
|
||||
if b_tvalid_nxt /= '1' then
|
||||
s_axis_b_tdata <= (others => '0');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 12 bits wide and byte-aligned at their LSBs
|
||||
s_axis_b_tdata(11 downto 0) <= IP_B_DATA(ip_b_index).re;
|
||||
s_axis_b_tdata(15 downto 12) <= (others => IP_B_DATA(ip_b_index).re(11)); -- sign-extend
|
||||
s_axis_b_tdata(27 downto 16) <= IP_B_DATA(ip_b_index).im;
|
||||
s_axis_b_tdata(31 downto 28) <= (others => IP_B_DATA(ip_b_index).im(11)); -- sign-extend
|
||||
end if;
|
||||
|
||||
-- Increment input data indices
|
||||
if a_tvalid_nxt = '1' then
|
||||
ip_a_index := ip_a_index + 1;
|
||||
if ip_a_index = IP_A_DEPTH then
|
||||
ip_a_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
if b_tvalid_nxt = '1' then
|
||||
ip_b_index := ip_b_index + 1;
|
||||
if ip_b_index = IP_B_DEPTH then
|
||||
ip_b_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end loop;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the DOUT channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_dout_tvalid = '1' then
|
||||
if is_x(m_axis_dout_tdata) then
|
||||
report "ERROR: m_axis_dout_tdata is invalid when m_axis_dout_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
s_axis_a_tdata_real <= s_axis_a_tdata(11 downto 0);
|
||||
s_axis_a_tdata_imag <= s_axis_a_tdata(27 downto 16);
|
||||
s_axis_b_tdata_real <= s_axis_b_tdata(11 downto 0);
|
||||
s_axis_b_tdata_imag <= s_axis_b_tdata(27 downto 16);
|
||||
m_axis_dout_tdata_real <= m_axis_dout_tdata(24 downto 0);
|
||||
m_axis_dout_tdata_imag <= m_axis_dout_tdata(56 downto 32);
|
||||
|
||||
end tb;
|
||||
|
||||
+202
@@ -0,0 +1,202 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
-- IP Revision: 17
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY cmpy_v6_0_17;
|
||||
USE cmpy_v6_0_17.cmpy_v6_0_17;
|
||||
|
||||
ENTITY cmpy_12x12 IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END cmpy_12x12;
|
||||
|
||||
ARCHITECTURE cmpy_12x12_arch OF cmpy_12x12 IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF cmpy_12x12_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT cmpy_v6_0_17 IS
|
||||
GENERIC (
|
||||
C_VERBOSITY : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_XDEVICE : STRING;
|
||||
C_A_WIDTH : INTEGER;
|
||||
C_B_WIDTH : INTEGER;
|
||||
C_OUT_WIDTH : INTEGER;
|
||||
C_LATENCY : INTEGER;
|
||||
C_MULT_TYPE : INTEGER;
|
||||
C_OPTIMIZE_GOAL : INTEGER;
|
||||
HAS_NEGATE : INTEGER;
|
||||
SINGLE_OUTPUT : INTEGER;
|
||||
ROUND : INTEGER;
|
||||
USE_DSP_CASCADES : INTEGER;
|
||||
C_THROTTLE_SCHEME : INTEGER;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_HAS_ARESETN : INTEGER;
|
||||
C_HAS_S_AXIS_A_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_A_TLAST : INTEGER;
|
||||
C_HAS_S_AXIS_B_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_B_TLAST : INTEGER;
|
||||
C_HAS_S_AXIS_CTRL_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_CTRL_TLAST : INTEGER;
|
||||
C_TLAST_RESOLUTION : INTEGER;
|
||||
C_S_AXIS_A_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_A_TUSER_WIDTH : INTEGER;
|
||||
C_S_AXIS_B_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_B_TUSER_WIDTH : INTEGER;
|
||||
C_S_AXIS_CTRL_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_CTRL_TUSER_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
aresetn : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tready : OUT STD_LOGIC;
|
||||
s_axis_a_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_a_tlast : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tready : OUT STD_LOGIC;
|
||||
s_axis_b_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_b_tlast : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_ctrl_tvalid : IN STD_LOGIC;
|
||||
s_axis_ctrl_tready : OUT STD_LOGIC;
|
||||
s_axis_ctrl_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_ctrl_tlast : IN STD_LOGIC;
|
||||
s_axis_ctrl_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tready : IN STD_LOGIC;
|
||||
m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_dout_tlast : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT cmpy_v6_0_17;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_dout_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DOUT, TDATA_NUM_BYTES 8, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_b_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_B TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_b_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_B, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_b_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_B TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_a_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_A TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_a_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_A, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_a_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_A TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF S_AXIS_CTRL:S_AXIS_B:S_AXIS_A:M_AXIS_DOUT, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 10000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : cmpy_v6_0_17
|
||||
GENERIC MAP (
|
||||
C_VERBOSITY => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_XDEVICE => "xc7k410t",
|
||||
C_A_WIDTH => 12,
|
||||
C_B_WIDTH => 12,
|
||||
C_OUT_WIDTH => 25,
|
||||
C_LATENCY => 5,
|
||||
C_MULT_TYPE => 0,
|
||||
C_OPTIMIZE_GOAL => 0,
|
||||
HAS_NEGATE => 0,
|
||||
SINGLE_OUTPUT => 0,
|
||||
ROUND => 0,
|
||||
USE_DSP_CASCADES => 1,
|
||||
C_THROTTLE_SCHEME => 3,
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_HAS_ARESETN => 0,
|
||||
C_HAS_S_AXIS_A_TUSER => 0,
|
||||
C_HAS_S_AXIS_A_TLAST => 0,
|
||||
C_HAS_S_AXIS_B_TUSER => 0,
|
||||
C_HAS_S_AXIS_B_TLAST => 0,
|
||||
C_HAS_S_AXIS_CTRL_TUSER => 0,
|
||||
C_HAS_S_AXIS_CTRL_TLAST => 0,
|
||||
C_TLAST_RESOLUTION => 0,
|
||||
C_S_AXIS_A_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_A_TUSER_WIDTH => 1,
|
||||
C_S_AXIS_B_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_B_TUSER_WIDTH => 1,
|
||||
C_S_AXIS_CTRL_TDATA_WIDTH => 8,
|
||||
C_S_AXIS_CTRL_TUSER_WIDTH => 1,
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH => 64,
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
aresetn => '1',
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_a_tlast => '0',
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_b_tlast => '0',
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
s_axis_ctrl_tvalid => '0',
|
||||
s_axis_ctrl_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_ctrl_tlast => '0',
|
||||
s_axis_ctrl_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 8)),
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tready => '0',
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
END cmpy_12x12_arch;
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
// IP Revision: 17
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
cmpy_16x12 your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_a_tvalid(s_axis_a_tvalid), // input wire s_axis_a_tvalid
|
||||
.s_axis_a_tdata(s_axis_a_tdata), // input wire [31 : 0] s_axis_a_tdata
|
||||
.s_axis_b_tvalid(s_axis_b_tvalid), // input wire s_axis_b_tvalid
|
||||
.s_axis_b_tdata(s_axis_b_tdata), // input wire [31 : 0] s_axis_b_tdata
|
||||
.m_axis_dout_tvalid(m_axis_dout_tvalid), // output wire m_axis_dout_tvalid
|
||||
.m_axis_dout_tdata(m_axis_dout_tdata) // output wire [63 : 0] m_axis_dout_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file cmpy_16x12.v when simulating
|
||||
// the core, cmpy_16x12. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
-- IP Revision: 17
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT cmpy_16x12
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : cmpy_16x12
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file cmpy_16x12.vhd when simulating
|
||||
-- the core, cmpy_16x12. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+14133
File diff suppressed because it is too large
Load Diff
+19253
File diff suppressed because it is too large
Load Diff
+27
@@ -0,0 +1,27 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:49 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/cmpy_16x12_synth_1/cmpy_16x12_stub.v
|
||||
// Design : cmpy_16x12
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "cmpy_v6_0_17,Vivado 2019.1.3" *)
|
||||
module cmpy_16x12(aclk, s_axis_a_tvalid, s_axis_a_tdata,
|
||||
s_axis_b_tvalid, s_axis_b_tdata, m_axis_dout_tvalid, m_axis_dout_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_a_tvalid,s_axis_a_tdata[31:0],s_axis_b_tvalid,s_axis_b_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[63:0]" */;
|
||||
input aclk;
|
||||
input s_axis_a_tvalid;
|
||||
input [31:0]s_axis_a_tdata;
|
||||
input s_axis_b_tvalid;
|
||||
input [31:0]s_axis_b_tdata;
|
||||
output m_axis_dout_tvalid;
|
||||
output [63:0]m_axis_dout_tdata;
|
||||
endmodule
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:49 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/cmpy_16x12_synth_1/cmpy_16x12_stub.vhdl
|
||||
-- Design : cmpy_16x12
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity cmpy_16x12 is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_a_tvalid : in STD_LOGIC;
|
||||
s_axis_a_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
s_axis_b_tvalid : in STD_LOGIC;
|
||||
s_axis_b_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
m_axis_dout_tvalid : out STD_LOGIC;
|
||||
m_axis_dout_tdata : out STD_LOGIC_VECTOR ( 63 downto 0 )
|
||||
);
|
||||
|
||||
end cmpy_16x12;
|
||||
|
||||
architecture stub of cmpy_16x12 is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "aclk,s_axis_a_tvalid,s_axis_a_tdata[31:0],s_axis_b_tvalid,s_axis_b_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[63:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "cmpy_v6_0_17,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+387
@@ -0,0 +1,387 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the Complex Multiplier IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the Complex Multiplier product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated Complex Multiplier core
|
||||
-- instance named "cmpy_16x12".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity tb_cmpy_16x12 is
|
||||
end tb_cmpy_16x12;
|
||||
|
||||
architecture tb of tb_cmpy_16x12 is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
constant TEST_CYCLES : integer := 3000;
|
||||
constant PHASE_CYCLES : integer := 1000;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT input signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General inputs
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Slave channel A inputs
|
||||
signal s_axis_a_tvalid : std_logic := '0'; -- TVALID for channel A
|
||||
signal s_axis_a_tdata : std_logic_vector(31 downto 0) := (others => '0'); -- TDATA for channel A
|
||||
|
||||
-- Slave channel B inputs
|
||||
signal s_axis_b_tvalid : std_logic := '0'; -- TVALID for channel B
|
||||
signal s_axis_b_tdata : std_logic_vector(31 downto 0) := (others => '0'); -- TDATA for channel B
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT output signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Master channel DOUT outputs
|
||||
signal m_axis_dout_tvalid : std_logic := '0'; -- TVALID for channel DOUT
|
||||
signal m_axis_dout_tdata : std_logic_vector(63 downto 0) := (others => '0'); -- TDATA for channel DOUT
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
signal s_axis_a_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_a_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_b_tdata_real : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal s_axis_b_tdata_imag : std_logic_vector(11 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_real : std_logic_vector(28 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_imag : std_logic_vector(28 downto 0) := (others => '0');
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Testbench signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
signal cycles : integer := 0; -- Clock cycle counter
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Constants, types and functions to create input data
|
||||
-- Treat the complex multiplier as a mixer that is combining two
|
||||
-- sinusoids exp(+/-jwt) of different frequencies and amplitudes:
|
||||
-- channel A: exp(+jwt), frequency = clock / 30, amplitude = fullscale >> 3
|
||||
-- channel B: exp(-jwt), frequency = clock / 32, amplitude = fullscale
|
||||
-- The output of the complex multiplier is a sinusoid with a frequency
|
||||
-- equal to the difference between the input frequencies.
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
constant IP_A_DEPTH : integer := 30;
|
||||
constant IP_A_WIDTH : integer := 16;
|
||||
constant IP_A_SHIFT : integer := 3; -- bit shift for amplitude
|
||||
constant IP_B_DEPTH : integer := 32;
|
||||
constant IP_B_WIDTH : integer := 12;
|
||||
constant IP_B_SHIFT : integer := 0; -- no bit shift, max amplitude
|
||||
type T_IP_INT_ENTRY is record
|
||||
re : integer;
|
||||
im : integer;
|
||||
end record;
|
||||
type T_IP_A_ENTRY is record
|
||||
re : std_logic_vector(IP_A_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_A_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_B_ENTRY is record
|
||||
re : std_logic_vector(IP_B_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_B_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_A_TABLE is array (0 to IP_A_DEPTH-1) of T_IP_A_ENTRY;
|
||||
type T_IP_B_TABLE is array (0 to IP_B_DEPTH-1) of T_IP_B_ENTRY;
|
||||
|
||||
-- Common function to calculate sine and cosine values
|
||||
function create_ip_entry(index, depth, width : integer) return T_IP_INT_ENTRY is
|
||||
variable result : T_IP_INT_ENTRY;
|
||||
variable theta : real;
|
||||
variable limited_width : integer := width - 2;
|
||||
begin
|
||||
if limited_width > 30 then
|
||||
limited_width := 30;
|
||||
end if;
|
||||
theta := real(index) / real(depth) * 2.0 * MATH_PI;
|
||||
result.re := integer(round(cos(theta) * real(2**limited_width-1)));
|
||||
result.im := integer(round(sin(theta) * real(2**limited_width-1)));
|
||||
return result;
|
||||
end function create_ip_entry;
|
||||
|
||||
-- Use separate functions to calculate channel A and B sinusoids as they return different types
|
||||
function create_ip_a_table return T_IP_A_TABLE is
|
||||
variable result : T_IP_A_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_A_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(i, IP_A_DEPTH, IP_A_WIDTH - IP_A_SHIFT);
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_A_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_A_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_a_table;
|
||||
|
||||
function create_ip_b_table return T_IP_B_TABLE is
|
||||
variable result : T_IP_B_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_B_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(IP_B_DEPTH-1-i, IP_B_DEPTH, IP_B_WIDTH - IP_B_SHIFT); -- note rotation direction
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_B_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_B_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_b_table;
|
||||
|
||||
-- Call the functions to create the data
|
||||
constant IP_A_DATA : T_IP_A_TABLE := create_ip_a_table;
|
||||
constant IP_B_DATA : T_IP_B_TABLE := create_ip_b_table;
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.cmpy_16x12
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
cycles <= cycles + 1;
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
if cycles >= TEST_CYCLES then
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
end if;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
variable ip_a_index : integer := 0;
|
||||
variable ip_b_index : integer := 0;
|
||||
variable a_tvalid_nxt : std_logic := '0';
|
||||
variable b_tvalid_nxt : std_logic := '0';
|
||||
variable phase2_cycles : integer := 1;
|
||||
variable phase2_count : integer := 0;
|
||||
constant PHASE2_LIMIT : integer := 30;
|
||||
begin
|
||||
|
||||
-- Test is stopped in clock_gen process, use endless loop here
|
||||
loop
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive AXI TVALID signals to demonstrate different types of operation
|
||||
case cycles is -- do different types of operation at different phases of the test
|
||||
when 0 to PHASE_CYCLES * 1 - 1 =>
|
||||
-- Phase 1: inputs always valid, no missing input data
|
||||
a_tvalid_nxt := '1';
|
||||
b_tvalid_nxt := '1';
|
||||
when PHASE_CYCLES * 1 to PHASE_CYCLES * 2 - 1 =>
|
||||
-- Phase 2: deprive channel A of valid transactions at an increasing rate
|
||||
b_tvalid_nxt := '1';
|
||||
if phase2_count < phase2_cycles then
|
||||
a_tvalid_nxt := '0';
|
||||
else
|
||||
a_tvalid_nxt := '1';
|
||||
end if;
|
||||
phase2_count := phase2_count + 1;
|
||||
if phase2_count >= PHASE2_LIMIT then
|
||||
phase2_count := 0;
|
||||
phase2_cycles := phase2_cycles + 1;
|
||||
end if;
|
||||
when PHASE_CYCLES * 2 to PHASE_CYCLES * 3 - 1 =>
|
||||
-- Phase 3: deprive channel A of 1 out of 2 transactions, and channel B of 1 out of 3 transactions
|
||||
if cycles mod 2 = 0 then
|
||||
a_tvalid_nxt := '0';
|
||||
else
|
||||
a_tvalid_nxt := '1';
|
||||
end if;
|
||||
if cycles mod 3 = 0 then
|
||||
b_tvalid_nxt := '0';
|
||||
else
|
||||
b_tvalid_nxt := '1';
|
||||
end if;
|
||||
when others =>
|
||||
-- Test will stop imminently - do nothing
|
||||
null;
|
||||
end case;
|
||||
|
||||
-- Drive handshake signals with local variable values
|
||||
s_axis_a_tvalid <= a_tvalid_nxt;
|
||||
s_axis_b_tvalid <= b_tvalid_nxt;
|
||||
|
||||
-- Drive AXI slave channel A payload
|
||||
-- Drive '0's on payload signals when not valid
|
||||
if a_tvalid_nxt /= '1' then
|
||||
s_axis_a_tdata <= (others => '0');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 16 bits wide and byte-aligned at their LSBs
|
||||
s_axis_a_tdata(15 downto 0) <= IP_A_DATA(ip_a_index).re;
|
||||
s_axis_a_tdata(31 downto 16) <= IP_A_DATA(ip_a_index).im;
|
||||
end if;
|
||||
|
||||
-- Drive AXI slave channel B payload
|
||||
-- Drive '0's on payload signals when not valid
|
||||
if b_tvalid_nxt /= '1' then
|
||||
s_axis_b_tdata <= (others => '0');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 12 bits wide and byte-aligned at their LSBs
|
||||
s_axis_b_tdata(11 downto 0) <= IP_B_DATA(ip_b_index).re;
|
||||
s_axis_b_tdata(15 downto 12) <= (others => IP_B_DATA(ip_b_index).re(11)); -- sign-extend
|
||||
s_axis_b_tdata(27 downto 16) <= IP_B_DATA(ip_b_index).im;
|
||||
s_axis_b_tdata(31 downto 28) <= (others => IP_B_DATA(ip_b_index).im(11)); -- sign-extend
|
||||
end if;
|
||||
|
||||
-- Increment input data indices
|
||||
if a_tvalid_nxt = '1' then
|
||||
ip_a_index := ip_a_index + 1;
|
||||
if ip_a_index = IP_A_DEPTH then
|
||||
ip_a_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
if b_tvalid_nxt = '1' then
|
||||
ip_b_index := ip_b_index + 1;
|
||||
if ip_b_index = IP_B_DEPTH then
|
||||
ip_b_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end loop;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the DOUT channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_dout_tvalid = '1' then
|
||||
if is_x(m_axis_dout_tdata) then
|
||||
report "ERROR: m_axis_dout_tdata is invalid when m_axis_dout_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
s_axis_a_tdata_real <= s_axis_a_tdata(15 downto 0);
|
||||
s_axis_a_tdata_imag <= s_axis_a_tdata(31 downto 16);
|
||||
s_axis_b_tdata_real <= s_axis_b_tdata(11 downto 0);
|
||||
s_axis_b_tdata_imag <= s_axis_b_tdata(27 downto 16);
|
||||
m_axis_dout_tdata_real <= m_axis_dout_tdata(28 downto 0);
|
||||
m_axis_dout_tdata_imag <= m_axis_dout_tdata(60 downto 32);
|
||||
|
||||
end tb;
|
||||
|
||||
+202
@@ -0,0 +1,202 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:cmpy:6.0
|
||||
-- IP Revision: 17
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY cmpy_v6_0_17;
|
||||
USE cmpy_v6_0_17.cmpy_v6_0_17;
|
||||
|
||||
ENTITY cmpy_16x12 IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END cmpy_16x12;
|
||||
|
||||
ARCHITECTURE cmpy_16x12_arch OF cmpy_16x12 IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF cmpy_16x12_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT cmpy_v6_0_17 IS
|
||||
GENERIC (
|
||||
C_VERBOSITY : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_XDEVICE : STRING;
|
||||
C_A_WIDTH : INTEGER;
|
||||
C_B_WIDTH : INTEGER;
|
||||
C_OUT_WIDTH : INTEGER;
|
||||
C_LATENCY : INTEGER;
|
||||
C_MULT_TYPE : INTEGER;
|
||||
C_OPTIMIZE_GOAL : INTEGER;
|
||||
HAS_NEGATE : INTEGER;
|
||||
SINGLE_OUTPUT : INTEGER;
|
||||
ROUND : INTEGER;
|
||||
USE_DSP_CASCADES : INTEGER;
|
||||
C_THROTTLE_SCHEME : INTEGER;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_HAS_ARESETN : INTEGER;
|
||||
C_HAS_S_AXIS_A_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_A_TLAST : INTEGER;
|
||||
C_HAS_S_AXIS_B_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_B_TLAST : INTEGER;
|
||||
C_HAS_S_AXIS_CTRL_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_CTRL_TLAST : INTEGER;
|
||||
C_TLAST_RESOLUTION : INTEGER;
|
||||
C_S_AXIS_A_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_A_TUSER_WIDTH : INTEGER;
|
||||
C_S_AXIS_B_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_B_TUSER_WIDTH : INTEGER;
|
||||
C_S_AXIS_CTRL_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_CTRL_TUSER_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
aresetn : IN STD_LOGIC;
|
||||
s_axis_a_tvalid : IN STD_LOGIC;
|
||||
s_axis_a_tready : OUT STD_LOGIC;
|
||||
s_axis_a_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_a_tlast : IN STD_LOGIC;
|
||||
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_b_tvalid : IN STD_LOGIC;
|
||||
s_axis_b_tready : OUT STD_LOGIC;
|
||||
s_axis_b_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_b_tlast : IN STD_LOGIC;
|
||||
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
s_axis_ctrl_tvalid : IN STD_LOGIC;
|
||||
s_axis_ctrl_tready : OUT STD_LOGIC;
|
||||
s_axis_ctrl_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_ctrl_tlast : IN STD_LOGIC;
|
||||
s_axis_ctrl_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tready : IN STD_LOGIC;
|
||||
m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_dout_tlast : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT cmpy_v6_0_17;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_dout_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DOUT, TDATA_NUM_BYTES 8, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_b_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_B TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_b_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_B, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_b_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_B TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_a_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_A TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_a_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_A, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_a_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_A TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF S_AXIS_CTRL:S_AXIS_B:S_AXIS_A:M_AXIS_DOUT, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 10000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : cmpy_v6_0_17
|
||||
GENERIC MAP (
|
||||
C_VERBOSITY => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_XDEVICE => "xc7k410t",
|
||||
C_A_WIDTH => 16,
|
||||
C_B_WIDTH => 12,
|
||||
C_OUT_WIDTH => 29,
|
||||
C_LATENCY => 5,
|
||||
C_MULT_TYPE => 0,
|
||||
C_OPTIMIZE_GOAL => 0,
|
||||
HAS_NEGATE => 0,
|
||||
SINGLE_OUTPUT => 0,
|
||||
ROUND => 0,
|
||||
USE_DSP_CASCADES => 1,
|
||||
C_THROTTLE_SCHEME => 3,
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_HAS_ARESETN => 0,
|
||||
C_HAS_S_AXIS_A_TUSER => 0,
|
||||
C_HAS_S_AXIS_A_TLAST => 0,
|
||||
C_HAS_S_AXIS_B_TUSER => 0,
|
||||
C_HAS_S_AXIS_B_TLAST => 0,
|
||||
C_HAS_S_AXIS_CTRL_TUSER => 0,
|
||||
C_HAS_S_AXIS_CTRL_TLAST => 0,
|
||||
C_TLAST_RESOLUTION => 0,
|
||||
C_S_AXIS_A_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_A_TUSER_WIDTH => 1,
|
||||
C_S_AXIS_B_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_B_TUSER_WIDTH => 1,
|
||||
C_S_AXIS_CTRL_TDATA_WIDTH => 8,
|
||||
C_S_AXIS_CTRL_TUSER_WIDTH => 1,
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH => 64,
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
aresetn => '1',
|
||||
s_axis_a_tvalid => s_axis_a_tvalid,
|
||||
s_axis_a_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_a_tlast => '0',
|
||||
s_axis_a_tdata => s_axis_a_tdata,
|
||||
s_axis_b_tvalid => s_axis_b_tvalid,
|
||||
s_axis_b_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_b_tlast => '0',
|
||||
s_axis_b_tdata => s_axis_b_tdata,
|
||||
s_axis_ctrl_tvalid => '0',
|
||||
s_axis_ctrl_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_ctrl_tlast => '0',
|
||||
s_axis_ctrl_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 8)),
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tready => '0',
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
END cmpy_16x12_arch;
|
||||
@@ -0,0 +1,68 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
data_1p5m your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.ena(ena), // input wire ena
|
||||
.addra(addra), // input wire [10 : 0] addra
|
||||
.douta(douta) // output wire [0 : 0] douta
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file data_1p5m.v when simulating
|
||||
// the core, data_1p5m. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
-- IP Revision: 3
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT data_1p5m
|
||||
PORT (
|
||||
clka : IN STD_LOGIC;
|
||||
ena : IN STD_LOGIC;
|
||||
addra : IN STD_LOGIC_VECTOR(10 DOWNTO 0);
|
||||
douta : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : data_1p5m
|
||||
PORT MAP (
|
||||
clka => clka,
|
||||
ena => ena,
|
||||
addra => addra,
|
||||
douta => douta
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file data_1p5m.vhd when simulating
|
||||
-- the core, data_1p5m. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+734
@@ -0,0 +1,734 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:34:17 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode funcsim
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/data_1p5m_synth_1/data_1p5m_sim_netlist.v
|
||||
// Design : data_1p5m
|
||||
// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified
|
||||
// or synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
(* CHECK_LICENSE_TYPE = "data_1p5m,blk_mem_gen_v8_4_3,{}" *) (* downgradeipidentifiedwarnings = "yes" *) (* x_core_info = "blk_mem_gen_v8_4_3,Vivado 2019.1.3" *)
|
||||
(* NotValidForBitStream *)
|
||||
module data_1p5m
|
||||
(clka,
|
||||
ena,
|
||||
addra,
|
||||
douta);
|
||||
(* x_interface_info = "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK" *) (* x_interface_parameter = "XIL_INTERFACENAME BRAM_PORTA, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1" *) input clka;
|
||||
(* x_interface_info = "xilinx.com:interface:bram:1.0 BRAM_PORTA EN" *) input ena;
|
||||
(* x_interface_info = "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR" *) input [10:0]addra;
|
||||
(* x_interface_info = "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT" *) output [0:0]douta;
|
||||
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire [0:0]douta;
|
||||
wire ena;
|
||||
wire NLW_U0_dbiterr_UNCONNECTED;
|
||||
wire NLW_U0_rsta_busy_UNCONNECTED;
|
||||
wire NLW_U0_rstb_busy_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_arready_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_awready_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_bvalid_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_dbiterr_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_rlast_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_rvalid_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_sbiterr_UNCONNECTED;
|
||||
wire NLW_U0_s_axi_wready_UNCONNECTED;
|
||||
wire NLW_U0_sbiterr_UNCONNECTED;
|
||||
wire [0:0]NLW_U0_doutb_UNCONNECTED;
|
||||
wire [10:0]NLW_U0_rdaddrecc_UNCONNECTED;
|
||||
wire [3:0]NLW_U0_s_axi_bid_UNCONNECTED;
|
||||
wire [1:0]NLW_U0_s_axi_bresp_UNCONNECTED;
|
||||
wire [10:0]NLW_U0_s_axi_rdaddrecc_UNCONNECTED;
|
||||
wire [0:0]NLW_U0_s_axi_rdata_UNCONNECTED;
|
||||
wire [3:0]NLW_U0_s_axi_rid_UNCONNECTED;
|
||||
wire [1:0]NLW_U0_s_axi_rresp_UNCONNECTED;
|
||||
|
||||
(* C_ADDRA_WIDTH = "11" *)
|
||||
(* C_ADDRB_WIDTH = "11" *)
|
||||
(* C_ALGORITHM = "1" *)
|
||||
(* C_AXI_ID_WIDTH = "4" *)
|
||||
(* C_AXI_SLAVE_TYPE = "0" *)
|
||||
(* C_AXI_TYPE = "1" *)
|
||||
(* C_BYTE_SIZE = "9" *)
|
||||
(* C_COMMON_CLK = "0" *)
|
||||
(* C_COUNT_18K_BRAM = "1" *)
|
||||
(* C_COUNT_36K_BRAM = "0" *)
|
||||
(* C_CTRL_ECC_ALGO = "NONE" *)
|
||||
(* C_DEFAULT_DATA = "0" *)
|
||||
(* C_DISABLE_WARN_BHV_COLL = "0" *)
|
||||
(* C_DISABLE_WARN_BHV_RANGE = "0" *)
|
||||
(* C_ELABORATION_DIR = "./" *)
|
||||
(* C_ENABLE_32BIT_ADDRESS = "0" *)
|
||||
(* C_EN_DEEPSLEEP_PIN = "0" *)
|
||||
(* C_EN_ECC_PIPE = "0" *)
|
||||
(* C_EN_RDADDRA_CHG = "0" *)
|
||||
(* C_EN_RDADDRB_CHG = "0" *)
|
||||
(* C_EN_SAFETY_CKT = "0" *)
|
||||
(* C_EN_SHUTDOWN_PIN = "0" *)
|
||||
(* C_EN_SLEEP_PIN = "0" *)
|
||||
(* C_EST_POWER_SUMMARY = "Estimated Power for IP : 0.990811 mW" *)
|
||||
(* C_FAMILY = "kintex7" *)
|
||||
(* C_HAS_AXI_ID = "0" *)
|
||||
(* C_HAS_ENA = "1" *)
|
||||
(* C_HAS_ENB = "0" *)
|
||||
(* C_HAS_INJECTERR = "0" *)
|
||||
(* C_HAS_MEM_OUTPUT_REGS_A = "1" *)
|
||||
(* C_HAS_MEM_OUTPUT_REGS_B = "0" *)
|
||||
(* C_HAS_MUX_OUTPUT_REGS_A = "1" *)
|
||||
(* C_HAS_MUX_OUTPUT_REGS_B = "0" *)
|
||||
(* C_HAS_REGCEA = "0" *)
|
||||
(* C_HAS_REGCEB = "0" *)
|
||||
(* C_HAS_RSTA = "0" *)
|
||||
(* C_HAS_RSTB = "0" *)
|
||||
(* C_HAS_SOFTECC_INPUT_REGS_A = "0" *)
|
||||
(* C_HAS_SOFTECC_OUTPUT_REGS_B = "0" *)
|
||||
(* C_INITA_VAL = "0" *)
|
||||
(* C_INITB_VAL = "0" *)
|
||||
(* C_INIT_FILE = "data_1p5m.mem" *)
|
||||
(* C_INIT_FILE_NAME = "data_1p5m.mif" *)
|
||||
(* C_INTERFACE_TYPE = "0" *)
|
||||
(* C_LOAD_INIT_FILE = "1" *)
|
||||
(* C_MEM_TYPE = "3" *)
|
||||
(* C_MUX_PIPELINE_STAGES = "0" *)
|
||||
(* C_PRIM_TYPE = "1" *)
|
||||
(* C_READ_DEPTH_A = "2048" *)
|
||||
(* C_READ_DEPTH_B = "2048" *)
|
||||
(* C_READ_LATENCY_A = "1" *)
|
||||
(* C_READ_LATENCY_B = "1" *)
|
||||
(* C_READ_WIDTH_A = "1" *)
|
||||
(* C_READ_WIDTH_B = "1" *)
|
||||
(* C_RSTRAM_A = "0" *)
|
||||
(* C_RSTRAM_B = "0" *)
|
||||
(* C_RST_PRIORITY_A = "CE" *)
|
||||
(* C_RST_PRIORITY_B = "CE" *)
|
||||
(* C_SIM_COLLISION_CHECK = "ALL" *)
|
||||
(* C_USE_BRAM_BLOCK = "0" *)
|
||||
(* C_USE_BYTE_WEA = "0" *)
|
||||
(* C_USE_BYTE_WEB = "0" *)
|
||||
(* C_USE_DEFAULT_DATA = "0" *)
|
||||
(* C_USE_ECC = "0" *)
|
||||
(* C_USE_SOFTECC = "0" *)
|
||||
(* C_USE_URAM = "0" *)
|
||||
(* C_WEA_WIDTH = "1" *)
|
||||
(* C_WEB_WIDTH = "1" *)
|
||||
(* C_WRITE_DEPTH_A = "2048" *)
|
||||
(* C_WRITE_DEPTH_B = "2048" *)
|
||||
(* C_WRITE_MODE_A = "WRITE_FIRST" *)
|
||||
(* C_WRITE_MODE_B = "WRITE_FIRST" *)
|
||||
(* C_WRITE_WIDTH_A = "1" *)
|
||||
(* C_WRITE_WIDTH_B = "1" *)
|
||||
(* C_XDEVICEFAMILY = "kintex7" *)
|
||||
(* downgradeipidentifiedwarnings = "yes" *)
|
||||
data_1p5m_blk_mem_gen_v8_4_3 U0
|
||||
(.addra(addra),
|
||||
.addrb({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.clka(clka),
|
||||
.clkb(1'b0),
|
||||
.dbiterr(NLW_U0_dbiterr_UNCONNECTED),
|
||||
.deepsleep(1'b0),
|
||||
.dina(1'b0),
|
||||
.dinb(1'b0),
|
||||
.douta(douta),
|
||||
.doutb(NLW_U0_doutb_UNCONNECTED[0]),
|
||||
.eccpipece(1'b0),
|
||||
.ena(ena),
|
||||
.enb(1'b0),
|
||||
.injectdbiterr(1'b0),
|
||||
.injectsbiterr(1'b0),
|
||||
.rdaddrecc(NLW_U0_rdaddrecc_UNCONNECTED[10:0]),
|
||||
.regcea(1'b0),
|
||||
.regceb(1'b0),
|
||||
.rsta(1'b0),
|
||||
.rsta_busy(NLW_U0_rsta_busy_UNCONNECTED),
|
||||
.rstb(1'b0),
|
||||
.rstb_busy(NLW_U0_rstb_busy_UNCONNECTED),
|
||||
.s_aclk(1'b0),
|
||||
.s_aresetn(1'b0),
|
||||
.s_axi_araddr({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_arburst({1'b0,1'b0}),
|
||||
.s_axi_arid({1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_arlen({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_arready(NLW_U0_s_axi_arready_UNCONNECTED),
|
||||
.s_axi_arsize({1'b0,1'b0,1'b0}),
|
||||
.s_axi_arvalid(1'b0),
|
||||
.s_axi_awaddr({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_awburst({1'b0,1'b0}),
|
||||
.s_axi_awid({1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_awlen({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.s_axi_awready(NLW_U0_s_axi_awready_UNCONNECTED),
|
||||
.s_axi_awsize({1'b0,1'b0,1'b0}),
|
||||
.s_axi_awvalid(1'b0),
|
||||
.s_axi_bid(NLW_U0_s_axi_bid_UNCONNECTED[3:0]),
|
||||
.s_axi_bready(1'b0),
|
||||
.s_axi_bresp(NLW_U0_s_axi_bresp_UNCONNECTED[1:0]),
|
||||
.s_axi_bvalid(NLW_U0_s_axi_bvalid_UNCONNECTED),
|
||||
.s_axi_dbiterr(NLW_U0_s_axi_dbiterr_UNCONNECTED),
|
||||
.s_axi_injectdbiterr(1'b0),
|
||||
.s_axi_injectsbiterr(1'b0),
|
||||
.s_axi_rdaddrecc(NLW_U0_s_axi_rdaddrecc_UNCONNECTED[10:0]),
|
||||
.s_axi_rdata(NLW_U0_s_axi_rdata_UNCONNECTED[0]),
|
||||
.s_axi_rid(NLW_U0_s_axi_rid_UNCONNECTED[3:0]),
|
||||
.s_axi_rlast(NLW_U0_s_axi_rlast_UNCONNECTED),
|
||||
.s_axi_rready(1'b0),
|
||||
.s_axi_rresp(NLW_U0_s_axi_rresp_UNCONNECTED[1:0]),
|
||||
.s_axi_rvalid(NLW_U0_s_axi_rvalid_UNCONNECTED),
|
||||
.s_axi_sbiterr(NLW_U0_s_axi_sbiterr_UNCONNECTED),
|
||||
.s_axi_wdata(1'b0),
|
||||
.s_axi_wlast(1'b0),
|
||||
.s_axi_wready(NLW_U0_s_axi_wready_UNCONNECTED),
|
||||
.s_axi_wstrb(1'b0),
|
||||
.s_axi_wvalid(1'b0),
|
||||
.sbiterr(NLW_U0_sbiterr_UNCONNECTED),
|
||||
.shutdown(1'b0),
|
||||
.sleep(1'b0),
|
||||
.wea(1'b0),
|
||||
.web(1'b0));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_generic_cstr" *)
|
||||
module data_1p5m_blk_mem_gen_generic_cstr
|
||||
(douta,
|
||||
clka,
|
||||
ena,
|
||||
addra);
|
||||
output [0:0]douta;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire [0:0]douta;
|
||||
wire ena;
|
||||
wire ram_douta;
|
||||
|
||||
FDRE #(
|
||||
.INIT(1'b0))
|
||||
\mux_a_wire.mux_reg.ce_pri.douta_i_reg[0]
|
||||
(.C(clka),
|
||||
.CE(ena),
|
||||
.D(ram_douta),
|
||||
.Q(douta),
|
||||
.R(1'b0));
|
||||
data_1p5m_blk_mem_gen_prim_width \ramloop[0].ram.r
|
||||
(.DOADO(ram_douta),
|
||||
.addra(addra),
|
||||
.clka(clka),
|
||||
.ena(ena));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_prim_width" *)
|
||||
module data_1p5m_blk_mem_gen_prim_width
|
||||
(DOADO,
|
||||
clka,
|
||||
ena,
|
||||
addra);
|
||||
output [0:0]DOADO;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
|
||||
wire [0:0]DOADO;
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire ena;
|
||||
|
||||
data_1p5m_blk_mem_gen_prim_wrapper_init \prim_init.ram
|
||||
(.DOADO(DOADO),
|
||||
.addra(addra),
|
||||
.clka(clka),
|
||||
.ena(ena));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_prim_wrapper_init" *)
|
||||
module data_1p5m_blk_mem_gen_prim_wrapper_init
|
||||
(DOADO,
|
||||
clka,
|
||||
ena,
|
||||
addra);
|
||||
output [0:0]DOADO;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_10 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_11 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_12 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_13 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_14 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_33 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_8 ;
|
||||
wire \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_9 ;
|
||||
wire [0:0]DOADO;
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire ena;
|
||||
wire [15:8]\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOADO_UNCONNECTED ;
|
||||
wire [15:0]\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOBDO_UNCONNECTED ;
|
||||
wire [1:1]\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPADOP_UNCONNECTED ;
|
||||
wire [1:0]\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPBDOP_UNCONNECTED ;
|
||||
|
||||
(* box_type = "PRIMITIVE" *)
|
||||
RAMB18E1 #(
|
||||
.DOA_REG(1),
|
||||
.DOB_REG(0),
|
||||
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
|
||||
.INIT_00(256'h0101000001010101000101000001010100010100010101000101000100010001),
|
||||
.INIT_01(256'h0000010001000000010100000100010100000100010101000100000100000101),
|
||||
.INIT_02(256'h0001000000010001010000010101000100010100000000010100000001010001),
|
||||
.INIT_03(256'h0100000101000100010000010000000101010000000001000000000101000001),
|
||||
.INIT_04(256'h0001010101010000000001000100010100000001010000010001000101010000),
|
||||
.INIT_05(256'h0101010100010000000101000101010101000100010000010001010000000101),
|
||||
.INIT_06(256'h0101010100010100010001010001010000000001000001010100000000010101),
|
||||
.INIT_07(256'h0000010100010000000101010001000000000100010000000100010001000001),
|
||||
.INIT_08(256'h0101000101010101010000000000000001000000010001000001000100000100),
|
||||
.INIT_09(256'h0000010000000101000100010001000000000101000001010001010100010001),
|
||||
.INIT_0A(256'h0000000101000100000001000001000100000100000101010100010100000101),
|
||||
.INIT_0B(256'h0100010001000000010101000101010001010000010101010101000001010100),
|
||||
.INIT_0C(256'h0100010101010001000101010101000000010100010100000000000101010100),
|
||||
.INIT_0D(256'h0001010001010000000000010000010100000000010100010001000001010101),
|
||||
.INIT_0E(256'h0000010000010001000000000001000100000000010000000101000100000100),
|
||||
.INIT_0F(256'h0000010101010100000000000000010101010001000001000100010101010101),
|
||||
.INIT_10(256'h0101000100010001010100010101000101010000010101010000000001000000),
|
||||
.INIT_11(256'h0101010100000000000001000000010000000100000001000001000001000001),
|
||||
.INIT_12(256'h0000000101010101000001000100010100010000010000010100010101000101),
|
||||
.INIT_13(256'h0100000000000000000100000100010000010000000101010101000101000100),
|
||||
.INIT_14(256'h0101010101010100010001000100010001010100000100000101010101010001),
|
||||
.INIT_15(256'h0100010000010101000000010001000001000100000001010001010000010000),
|
||||
.INIT_16(256'h0100000001000101000101010100000100000101000101000101010000010001),
|
||||
.INIT_17(256'h0100010001000100000101000000010000000000000000010000010001010000),
|
||||
.INIT_18(256'h0000010100000100000101010101000000000101010101010001010100010100),
|
||||
.INIT_19(256'h0100000100010001000100010000010000000100000000010001010001010100),
|
||||
.INIT_1A(256'h0001010100010001000100000100000000010100010001010100010100010001),
|
||||
.INIT_1B(256'h0100010000000101010000010101010100000000010001000000010000000001),
|
||||
.INIT_1C(256'h0101000000010100000000010100010100000001000000000100000100010100),
|
||||
.INIT_1D(256'h0101010101000101000100000100000000000001010001000101010100000001),
|
||||
.INIT_1E(256'h0101010100010001010000010101000100000100000100000000000101000000),
|
||||
.INIT_1F(256'h0101010000000100000001010001010001010001000001000001000001000101),
|
||||
.INIT_20(256'h0101000100010000010001000101010100010000010001010101000100010001),
|
||||
.INIT_21(256'h0001000001000100010000010101000001000100010101010100010100000101),
|
||||
.INIT_22(256'h0101000100010101010101010001000100000100000001000000010101000100),
|
||||
.INIT_23(256'h0000000000010101010100010001010100010101010001000001010100000000),
|
||||
.INIT_24(256'h0100000000010000000100000100000101000100000100010001010000000001),
|
||||
.INIT_25(256'h0001010100000001010000010000000001010000000100000100000101010100),
|
||||
.INIT_26(256'h0001010101010000010101000001000000010001010101000000010000010100),
|
||||
.INIT_27(256'h0001000000010100010101010001000100000000000000000001010000010101),
|
||||
.INIT_28(256'h0101010101010001010101010100000100000100000000000001000100000000),
|
||||
.INIT_29(256'h0100000100010101000001000101010001000001000000010001010001000100),
|
||||
.INIT_2A(256'h0001000000010000010001000101000101000101010000000100000000000101),
|
||||
.INIT_2B(256'h0100010101000000000101000101000001000101010101010100000001000101),
|
||||
.INIT_2C(256'h0101010000000001000001000100010100000000000100010001000101010001),
|
||||
.INIT_2D(256'h0001010000000101000100000101000000000001000100000100000000010001),
|
||||
.INIT_2E(256'h0001010101010000010101010000010000000000010001000100000000000001),
|
||||
.INIT_2F(256'h0000010101000100010000010000000000010101010100000001000001000000),
|
||||
.INIT_30(256'h0101000100000100010000000000000101010001000100000100000101000101),
|
||||
.INIT_31(256'h0000000000000001010001000100010001000000010101010001000100000001),
|
||||
.INIT_32(256'h0101000100010001010101010101000100000101010100000101000101000101),
|
||||
.INIT_33(256'h0000010101000101000101010001010001010101010000010101010001010101),
|
||||
.INIT_34(256'h0101000000010001010100010000010100000001000000000101000001010100),
|
||||
.INIT_35(256'h0001000001000100000101000001000101010001000100010101010100000000),
|
||||
.INIT_36(256'h0000010100010000010101010001010101000001010101000001000001000101),
|
||||
.INIT_37(256'h0001000101000101000000010101000101010100000100010101000000010001),
|
||||
.INIT_38(256'h0000000001010101000000000100000101000001010001000100010100010001),
|
||||
.INIT_39(256'h0000010101000001000000010000000100010001010100010001010101000101),
|
||||
.INIT_3A(256'h0101010100000100000000000001000000010100010000010001000101010001),
|
||||
.INIT_3B(256'h0001010100010101010100000001010101010101010000010001000100010001),
|
||||
.INIT_3C(256'h0000000001010000000100000101000101000101010100000000010100010101),
|
||||
.INIT_3D(256'h0001000101000000010000000100010100010101010001000000000000010001),
|
||||
.INIT_3E(256'h0000000101000100000000010000010000010100010001000000010100000100),
|
||||
.INIT_3F(256'h0100000000010001000100010100000101000000010100000101010100010000),
|
||||
.INIT_A(18'h00000),
|
||||
.INIT_B(18'h00000),
|
||||
.INIT_FILE("NONE"),
|
||||
.IS_CLKARDCLK_INVERTED(1'b0),
|
||||
.IS_CLKBWRCLK_INVERTED(1'b0),
|
||||
.IS_ENARDEN_INVERTED(1'b0),
|
||||
.IS_ENBWREN_INVERTED(1'b0),
|
||||
.IS_RSTRAMARSTRAM_INVERTED(1'b0),
|
||||
.IS_RSTRAMB_INVERTED(1'b0),
|
||||
.IS_RSTREGARSTREG_INVERTED(1'b0),
|
||||
.IS_RSTREGB_INVERTED(1'b0),
|
||||
.RAM_MODE("TDP"),
|
||||
.RDADDR_COLLISION_HWCONFIG("PERFORMANCE"),
|
||||
.READ_WIDTH_A(9),
|
||||
.READ_WIDTH_B(9),
|
||||
.RSTREG_PRIORITY_A("REGCE"),
|
||||
.RSTREG_PRIORITY_B("REGCE"),
|
||||
.SIM_COLLISION_CHECK("ALL"),
|
||||
.SIM_DEVICE("7SERIES"),
|
||||
.SRVAL_A(18'h00000),
|
||||
.SRVAL_B(18'h00000),
|
||||
.WRITE_MODE_A("WRITE_FIRST"),
|
||||
.WRITE_MODE_B("WRITE_FIRST"),
|
||||
.WRITE_WIDTH_A(9),
|
||||
.WRITE_WIDTH_B(9))
|
||||
\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram
|
||||
(.ADDRARDADDR({addra,1'b0,1'b0,1'b0}),
|
||||
.ADDRBWRADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.CLKARDCLK(clka),
|
||||
.CLKBWRCLK(clka),
|
||||
.DIADI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DIBDI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
|
||||
.DIPADIP({1'b0,1'b0}),
|
||||
.DIPBDIP({1'b0,1'b0}),
|
||||
.DOADO({\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOADO_UNCONNECTED [15:8],\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_8 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_9 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_10 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_11 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_12 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_13 ,\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_14 ,DOADO}),
|
||||
.DOBDO(\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOBDO_UNCONNECTED [15:0]),
|
||||
.DOPADOP({\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPADOP_UNCONNECTED [1],\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_33 }),
|
||||
.DOPBDOP(\NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPBDOP_UNCONNECTED [1:0]),
|
||||
.ENARDEN(ena),
|
||||
.ENBWREN(1'b0),
|
||||
.REGCEAREGCE(ena),
|
||||
.REGCEB(1'b0),
|
||||
.RSTRAMARSTRAM(1'b0),
|
||||
.RSTRAMB(1'b0),
|
||||
.RSTREGARSTREG(1'b0),
|
||||
.RSTREGB(1'b0),
|
||||
.WEA({1'b0,1'b0}),
|
||||
.WEBWE({1'b0,1'b0,1'b0,1'b0}));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_top" *)
|
||||
module data_1p5m_blk_mem_gen_top
|
||||
(douta,
|
||||
clka,
|
||||
ena,
|
||||
addra);
|
||||
output [0:0]douta;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire [0:0]douta;
|
||||
wire ena;
|
||||
|
||||
data_1p5m_blk_mem_gen_generic_cstr \valid.cstr
|
||||
(.addra(addra),
|
||||
.clka(clka),
|
||||
.douta(douta),
|
||||
.ena(ena));
|
||||
endmodule
|
||||
|
||||
(* C_ADDRA_WIDTH = "11" *) (* C_ADDRB_WIDTH = "11" *) (* C_ALGORITHM = "1" *)
|
||||
(* C_AXI_ID_WIDTH = "4" *) (* C_AXI_SLAVE_TYPE = "0" *) (* C_AXI_TYPE = "1" *)
|
||||
(* C_BYTE_SIZE = "9" *) (* C_COMMON_CLK = "0" *) (* C_COUNT_18K_BRAM = "1" *)
|
||||
(* C_COUNT_36K_BRAM = "0" *) (* C_CTRL_ECC_ALGO = "NONE" *) (* C_DEFAULT_DATA = "0" *)
|
||||
(* C_DISABLE_WARN_BHV_COLL = "0" *) (* C_DISABLE_WARN_BHV_RANGE = "0" *) (* C_ELABORATION_DIR = "./" *)
|
||||
(* C_ENABLE_32BIT_ADDRESS = "0" *) (* C_EN_DEEPSLEEP_PIN = "0" *) (* C_EN_ECC_PIPE = "0" *)
|
||||
(* C_EN_RDADDRA_CHG = "0" *) (* C_EN_RDADDRB_CHG = "0" *) (* C_EN_SAFETY_CKT = "0" *)
|
||||
(* C_EN_SHUTDOWN_PIN = "0" *) (* C_EN_SLEEP_PIN = "0" *) (* C_EST_POWER_SUMMARY = "Estimated Power for IP : 0.990811 mW" *)
|
||||
(* C_FAMILY = "kintex7" *) (* C_HAS_AXI_ID = "0" *) (* C_HAS_ENA = "1" *)
|
||||
(* C_HAS_ENB = "0" *) (* C_HAS_INJECTERR = "0" *) (* C_HAS_MEM_OUTPUT_REGS_A = "1" *)
|
||||
(* C_HAS_MEM_OUTPUT_REGS_B = "0" *) (* C_HAS_MUX_OUTPUT_REGS_A = "1" *) (* C_HAS_MUX_OUTPUT_REGS_B = "0" *)
|
||||
(* C_HAS_REGCEA = "0" *) (* C_HAS_REGCEB = "0" *) (* C_HAS_RSTA = "0" *)
|
||||
(* C_HAS_RSTB = "0" *) (* C_HAS_SOFTECC_INPUT_REGS_A = "0" *) (* C_HAS_SOFTECC_OUTPUT_REGS_B = "0" *)
|
||||
(* C_INITA_VAL = "0" *) (* C_INITB_VAL = "0" *) (* C_INIT_FILE = "data_1p5m.mem" *)
|
||||
(* C_INIT_FILE_NAME = "data_1p5m.mif" *) (* C_INTERFACE_TYPE = "0" *) (* C_LOAD_INIT_FILE = "1" *)
|
||||
(* C_MEM_TYPE = "3" *) (* C_MUX_PIPELINE_STAGES = "0" *) (* C_PRIM_TYPE = "1" *)
|
||||
(* C_READ_DEPTH_A = "2048" *) (* C_READ_DEPTH_B = "2048" *) (* C_READ_LATENCY_A = "1" *)
|
||||
(* C_READ_LATENCY_B = "1" *) (* C_READ_WIDTH_A = "1" *) (* C_READ_WIDTH_B = "1" *)
|
||||
(* C_RSTRAM_A = "0" *) (* C_RSTRAM_B = "0" *) (* C_RST_PRIORITY_A = "CE" *)
|
||||
(* C_RST_PRIORITY_B = "CE" *) (* C_SIM_COLLISION_CHECK = "ALL" *) (* C_USE_BRAM_BLOCK = "0" *)
|
||||
(* C_USE_BYTE_WEA = "0" *) (* C_USE_BYTE_WEB = "0" *) (* C_USE_DEFAULT_DATA = "0" *)
|
||||
(* C_USE_ECC = "0" *) (* C_USE_SOFTECC = "0" *) (* C_USE_URAM = "0" *)
|
||||
(* C_WEA_WIDTH = "1" *) (* C_WEB_WIDTH = "1" *) (* C_WRITE_DEPTH_A = "2048" *)
|
||||
(* C_WRITE_DEPTH_B = "2048" *) (* C_WRITE_MODE_A = "WRITE_FIRST" *) (* C_WRITE_MODE_B = "WRITE_FIRST" *)
|
||||
(* C_WRITE_WIDTH_A = "1" *) (* C_WRITE_WIDTH_B = "1" *) (* C_XDEVICEFAMILY = "kintex7" *)
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_v8_4_3" *) (* downgradeipidentifiedwarnings = "yes" *)
|
||||
module data_1p5m_blk_mem_gen_v8_4_3
|
||||
(clka,
|
||||
rsta,
|
||||
ena,
|
||||
regcea,
|
||||
wea,
|
||||
addra,
|
||||
dina,
|
||||
douta,
|
||||
clkb,
|
||||
rstb,
|
||||
enb,
|
||||
regceb,
|
||||
web,
|
||||
addrb,
|
||||
dinb,
|
||||
doutb,
|
||||
injectsbiterr,
|
||||
injectdbiterr,
|
||||
eccpipece,
|
||||
sbiterr,
|
||||
dbiterr,
|
||||
rdaddrecc,
|
||||
sleep,
|
||||
deepsleep,
|
||||
shutdown,
|
||||
rsta_busy,
|
||||
rstb_busy,
|
||||
s_aclk,
|
||||
s_aresetn,
|
||||
s_axi_awid,
|
||||
s_axi_awaddr,
|
||||
s_axi_awlen,
|
||||
s_axi_awsize,
|
||||
s_axi_awburst,
|
||||
s_axi_awvalid,
|
||||
s_axi_awready,
|
||||
s_axi_wdata,
|
||||
s_axi_wstrb,
|
||||
s_axi_wlast,
|
||||
s_axi_wvalid,
|
||||
s_axi_wready,
|
||||
s_axi_bid,
|
||||
s_axi_bresp,
|
||||
s_axi_bvalid,
|
||||
s_axi_bready,
|
||||
s_axi_arid,
|
||||
s_axi_araddr,
|
||||
s_axi_arlen,
|
||||
s_axi_arsize,
|
||||
s_axi_arburst,
|
||||
s_axi_arvalid,
|
||||
s_axi_arready,
|
||||
s_axi_rid,
|
||||
s_axi_rdata,
|
||||
s_axi_rresp,
|
||||
s_axi_rlast,
|
||||
s_axi_rvalid,
|
||||
s_axi_rready,
|
||||
s_axi_injectsbiterr,
|
||||
s_axi_injectdbiterr,
|
||||
s_axi_sbiterr,
|
||||
s_axi_dbiterr,
|
||||
s_axi_rdaddrecc);
|
||||
input clka;
|
||||
input rsta;
|
||||
input ena;
|
||||
input regcea;
|
||||
input [0:0]wea;
|
||||
input [10:0]addra;
|
||||
input [0:0]dina;
|
||||
output [0:0]douta;
|
||||
input clkb;
|
||||
input rstb;
|
||||
input enb;
|
||||
input regceb;
|
||||
input [0:0]web;
|
||||
input [10:0]addrb;
|
||||
input [0:0]dinb;
|
||||
output [0:0]doutb;
|
||||
input injectsbiterr;
|
||||
input injectdbiterr;
|
||||
input eccpipece;
|
||||
output sbiterr;
|
||||
output dbiterr;
|
||||
output [10:0]rdaddrecc;
|
||||
input sleep;
|
||||
input deepsleep;
|
||||
input shutdown;
|
||||
output rsta_busy;
|
||||
output rstb_busy;
|
||||
input s_aclk;
|
||||
input s_aresetn;
|
||||
input [3:0]s_axi_awid;
|
||||
input [31:0]s_axi_awaddr;
|
||||
input [7:0]s_axi_awlen;
|
||||
input [2:0]s_axi_awsize;
|
||||
input [1:0]s_axi_awburst;
|
||||
input s_axi_awvalid;
|
||||
output s_axi_awready;
|
||||
input [0:0]s_axi_wdata;
|
||||
input [0:0]s_axi_wstrb;
|
||||
input s_axi_wlast;
|
||||
input s_axi_wvalid;
|
||||
output s_axi_wready;
|
||||
output [3:0]s_axi_bid;
|
||||
output [1:0]s_axi_bresp;
|
||||
output s_axi_bvalid;
|
||||
input s_axi_bready;
|
||||
input [3:0]s_axi_arid;
|
||||
input [31:0]s_axi_araddr;
|
||||
input [7:0]s_axi_arlen;
|
||||
input [2:0]s_axi_arsize;
|
||||
input [1:0]s_axi_arburst;
|
||||
input s_axi_arvalid;
|
||||
output s_axi_arready;
|
||||
output [3:0]s_axi_rid;
|
||||
output [0:0]s_axi_rdata;
|
||||
output [1:0]s_axi_rresp;
|
||||
output s_axi_rlast;
|
||||
output s_axi_rvalid;
|
||||
input s_axi_rready;
|
||||
input s_axi_injectsbiterr;
|
||||
input s_axi_injectdbiterr;
|
||||
output s_axi_sbiterr;
|
||||
output s_axi_dbiterr;
|
||||
output [10:0]s_axi_rdaddrecc;
|
||||
|
||||
wire \<const0> ;
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire [0:0]douta;
|
||||
wire ena;
|
||||
|
||||
assign dbiterr = \<const0> ;
|
||||
assign doutb[0] = \<const0> ;
|
||||
assign rdaddrecc[10] = \<const0> ;
|
||||
assign rdaddrecc[9] = \<const0> ;
|
||||
assign rdaddrecc[8] = \<const0> ;
|
||||
assign rdaddrecc[7] = \<const0> ;
|
||||
assign rdaddrecc[6] = \<const0> ;
|
||||
assign rdaddrecc[5] = \<const0> ;
|
||||
assign rdaddrecc[4] = \<const0> ;
|
||||
assign rdaddrecc[3] = \<const0> ;
|
||||
assign rdaddrecc[2] = \<const0> ;
|
||||
assign rdaddrecc[1] = \<const0> ;
|
||||
assign rdaddrecc[0] = \<const0> ;
|
||||
assign rsta_busy = \<const0> ;
|
||||
assign rstb_busy = \<const0> ;
|
||||
assign s_axi_arready = \<const0> ;
|
||||
assign s_axi_awready = \<const0> ;
|
||||
assign s_axi_bid[3] = \<const0> ;
|
||||
assign s_axi_bid[2] = \<const0> ;
|
||||
assign s_axi_bid[1] = \<const0> ;
|
||||
assign s_axi_bid[0] = \<const0> ;
|
||||
assign s_axi_bresp[1] = \<const0> ;
|
||||
assign s_axi_bresp[0] = \<const0> ;
|
||||
assign s_axi_bvalid = \<const0> ;
|
||||
assign s_axi_dbiterr = \<const0> ;
|
||||
assign s_axi_rdaddrecc[10] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[9] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[8] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[7] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[6] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[5] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[4] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[3] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[2] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[1] = \<const0> ;
|
||||
assign s_axi_rdaddrecc[0] = \<const0> ;
|
||||
assign s_axi_rdata[0] = \<const0> ;
|
||||
assign s_axi_rid[3] = \<const0> ;
|
||||
assign s_axi_rid[2] = \<const0> ;
|
||||
assign s_axi_rid[1] = \<const0> ;
|
||||
assign s_axi_rid[0] = \<const0> ;
|
||||
assign s_axi_rlast = \<const0> ;
|
||||
assign s_axi_rresp[1] = \<const0> ;
|
||||
assign s_axi_rresp[0] = \<const0> ;
|
||||
assign s_axi_rvalid = \<const0> ;
|
||||
assign s_axi_sbiterr = \<const0> ;
|
||||
assign s_axi_wready = \<const0> ;
|
||||
assign sbiterr = \<const0> ;
|
||||
GND GND
|
||||
(.G(\<const0> ));
|
||||
data_1p5m_blk_mem_gen_v8_4_3_synth inst_blk_mem_gen
|
||||
(.addra(addra),
|
||||
.clka(clka),
|
||||
.douta(douta),
|
||||
.ena(ena));
|
||||
endmodule
|
||||
|
||||
(* ORIG_REF_NAME = "blk_mem_gen_v8_4_3_synth" *)
|
||||
module data_1p5m_blk_mem_gen_v8_4_3_synth
|
||||
(douta,
|
||||
clka,
|
||||
ena,
|
||||
addra);
|
||||
output [0:0]douta;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
|
||||
wire [10:0]addra;
|
||||
wire clka;
|
||||
wire [0:0]douta;
|
||||
wire ena;
|
||||
|
||||
data_1p5m_blk_mem_gen_top \gnbram.gnativebmg.native_blk_mem_gen
|
||||
(.addra(addra),
|
||||
.clka(clka),
|
||||
.douta(douta),
|
||||
.ena(ena));
|
||||
endmodule
|
||||
`ifndef GLBL
|
||||
`define GLBL
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module glbl ();
|
||||
|
||||
parameter ROC_WIDTH = 100000;
|
||||
parameter TOC_WIDTH = 0;
|
||||
|
||||
//-------- STARTUP Globals --------------
|
||||
wire GSR;
|
||||
wire GTS;
|
||||
wire GWE;
|
||||
wire PRLD;
|
||||
tri1 p_up_tmp;
|
||||
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
|
||||
|
||||
wire PROGB_GLBL;
|
||||
wire CCLKO_GLBL;
|
||||
wire FCSBO_GLBL;
|
||||
wire [3:0] DO_GLBL;
|
||||
wire [3:0] DI_GLBL;
|
||||
|
||||
reg GSR_int;
|
||||
reg GTS_int;
|
||||
reg PRLD_int;
|
||||
|
||||
//-------- JTAG Globals --------------
|
||||
wire JTAG_TDO_GLBL;
|
||||
wire JTAG_TCK_GLBL;
|
||||
wire JTAG_TDI_GLBL;
|
||||
wire JTAG_TMS_GLBL;
|
||||
wire JTAG_TRST_GLBL;
|
||||
|
||||
reg JTAG_CAPTURE_GLBL;
|
||||
reg JTAG_RESET_GLBL;
|
||||
reg JTAG_SHIFT_GLBL;
|
||||
reg JTAG_UPDATE_GLBL;
|
||||
reg JTAG_RUNTEST_GLBL;
|
||||
|
||||
reg JTAG_SEL1_GLBL = 0;
|
||||
reg JTAG_SEL2_GLBL = 0 ;
|
||||
reg JTAG_SEL3_GLBL = 0;
|
||||
reg JTAG_SEL4_GLBL = 0;
|
||||
|
||||
reg JTAG_USER_TDO1_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO2_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO3_GLBL = 1'bz;
|
||||
reg JTAG_USER_TDO4_GLBL = 1'bz;
|
||||
|
||||
assign (strong1, weak0) GSR = GSR_int;
|
||||
assign (strong1, weak0) GTS = GTS_int;
|
||||
assign (weak1, weak0) PRLD = PRLD_int;
|
||||
|
||||
initial begin
|
||||
GSR_int = 1'b1;
|
||||
PRLD_int = 1'b1;
|
||||
#(ROC_WIDTH)
|
||||
GSR_int = 1'b0;
|
||||
PRLD_int = 1'b0;
|
||||
end
|
||||
|
||||
initial begin
|
||||
GTS_int = 1'b1;
|
||||
#(TOC_WIDTH)
|
||||
GTS_int = 1'b0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
+849
@@ -0,0 +1,849 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:34:17 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode funcsim
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/data_1p5m_synth_1/data_1p5m_sim_netlist.vhdl
|
||||
-- Design : data_1p5m
|
||||
-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or
|
||||
-- synthesized. This netlist cannot be used for SDF annotated simulation.
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_prim_wrapper_init is
|
||||
port (
|
||||
DOADO : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_prim_wrapper_init : entity is "blk_mem_gen_prim_wrapper_init";
|
||||
end data_1p5m_blk_mem_gen_prim_wrapper_init;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_prim_wrapper_init is
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_10\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_11\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_12\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_13\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_14\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_33\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_8\ : STD_LOGIC;
|
||||
signal \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_9\ : STD_LOGIC;
|
||||
signal \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOADO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 15 downto 8 );
|
||||
signal \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOBDO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 15 downto 0 );
|
||||
signal \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPADOP_UNCONNECTED\ : STD_LOGIC_VECTOR ( 1 to 1 );
|
||||
signal \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPBDOP_UNCONNECTED\ : STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
attribute box_type : string;
|
||||
attribute box_type of \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram\ : label is "PRIMITIVE";
|
||||
begin
|
||||
\DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram\: unisim.vcomponents.RAMB18E1
|
||||
generic map(
|
||||
DOA_REG => 1,
|
||||
DOB_REG => 0,
|
||||
INITP_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INITP_07 => X"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
INIT_00 => X"0101000001010101000101000001010100010100010101000101000100010001",
|
||||
INIT_01 => X"0000010001000000010100000100010100000100010101000100000100000101",
|
||||
INIT_02 => X"0001000000010001010000010101000100010100000000010100000001010001",
|
||||
INIT_03 => X"0100000101000100010000010000000101010000000001000000000101000001",
|
||||
INIT_04 => X"0001010101010000000001000100010100000001010000010001000101010000",
|
||||
INIT_05 => X"0101010100010000000101000101010101000100010000010001010000000101",
|
||||
INIT_06 => X"0101010100010100010001010001010000000001000001010100000000010101",
|
||||
INIT_07 => X"0000010100010000000101010001000000000100010000000100010001000001",
|
||||
INIT_08 => X"0101000101010101010000000000000001000000010001000001000100000100",
|
||||
INIT_09 => X"0000010000000101000100010001000000000101000001010001010100010001",
|
||||
INIT_0A => X"0000000101000100000001000001000100000100000101010100010100000101",
|
||||
INIT_0B => X"0100010001000000010101000101010001010000010101010101000001010100",
|
||||
INIT_0C => X"0100010101010001000101010101000000010100010100000000000101010100",
|
||||
INIT_0D => X"0001010001010000000000010000010100000000010100010001000001010101",
|
||||
INIT_0E => X"0000010000010001000000000001000100000000010000000101000100000100",
|
||||
INIT_0F => X"0000010101010100000000000000010101010001000001000100010101010101",
|
||||
INIT_10 => X"0101000100010001010100010101000101010000010101010000000001000000",
|
||||
INIT_11 => X"0101010100000000000001000000010000000100000001000001000001000001",
|
||||
INIT_12 => X"0000000101010101000001000100010100010000010000010100010101000101",
|
||||
INIT_13 => X"0100000000000000000100000100010000010000000101010101000101000100",
|
||||
INIT_14 => X"0101010101010100010001000100010001010100000100000101010101010001",
|
||||
INIT_15 => X"0100010000010101000000010001000001000100000001010001010000010000",
|
||||
INIT_16 => X"0100000001000101000101010100000100000101000101000101010000010001",
|
||||
INIT_17 => X"0100010001000100000101000000010000000000000000010000010001010000",
|
||||
INIT_18 => X"0000010100000100000101010101000000000101010101010001010100010100",
|
||||
INIT_19 => X"0100000100010001000100010000010000000100000000010001010001010100",
|
||||
INIT_1A => X"0001010100010001000100000100000000010100010001010100010100010001",
|
||||
INIT_1B => X"0100010000000101010000010101010100000000010001000000010000000001",
|
||||
INIT_1C => X"0101000000010100000000010100010100000001000000000100000100010100",
|
||||
INIT_1D => X"0101010101000101000100000100000000000001010001000101010100000001",
|
||||
INIT_1E => X"0101010100010001010000010101000100000100000100000000000101000000",
|
||||
INIT_1F => X"0101010000000100000001010001010001010001000001000001000001000101",
|
||||
INIT_20 => X"0101000100010000010001000101010100010000010001010101000100010001",
|
||||
INIT_21 => X"0001000001000100010000010101000001000100010101010100010100000101",
|
||||
INIT_22 => X"0101000100010101010101010001000100000100000001000000010101000100",
|
||||
INIT_23 => X"0000000000010101010100010001010100010101010001000001010100000000",
|
||||
INIT_24 => X"0100000000010000000100000100000101000100000100010001010000000001",
|
||||
INIT_25 => X"0001010100000001010000010000000001010000000100000100000101010100",
|
||||
INIT_26 => X"0001010101010000010101000001000000010001010101000000010000010100",
|
||||
INIT_27 => X"0001000000010100010101010001000100000000000000000001010000010101",
|
||||
INIT_28 => X"0101010101010001010101010100000100000100000000000001000100000000",
|
||||
INIT_29 => X"0100000100010101000001000101010001000001000000010001010001000100",
|
||||
INIT_2A => X"0001000000010000010001000101000101000101010000000100000000000101",
|
||||
INIT_2B => X"0100010101000000000101000101000001000101010101010100000001000101",
|
||||
INIT_2C => X"0101010000000001000001000100010100000000000100010001000101010001",
|
||||
INIT_2D => X"0001010000000101000100000101000000000001000100000100000000010001",
|
||||
INIT_2E => X"0001010101010000010101010000010000000000010001000100000000000001",
|
||||
INIT_2F => X"0000010101000100010000010000000000010101010100000001000001000000",
|
||||
INIT_30 => X"0101000100000100010000000000000101010001000100000100000101000101",
|
||||
INIT_31 => X"0000000000000001010001000100010001000000010101010001000100000001",
|
||||
INIT_32 => X"0101000100010001010101010101000100000101010100000101000101000101",
|
||||
INIT_33 => X"0000010101000101000101010001010001010101010000010101010001010101",
|
||||
INIT_34 => X"0101000000010001010100010000010100000001000000000101000001010100",
|
||||
INIT_35 => X"0001000001000100000101000001000101010001000100010101010100000000",
|
||||
INIT_36 => X"0000010100010000010101010001010101000001010101000001000001000101",
|
||||
INIT_37 => X"0001000101000101000000010101000101010100000100010101000000010001",
|
||||
INIT_38 => X"0000000001010101000000000100000101000001010001000100010100010001",
|
||||
INIT_39 => X"0000010101000001000000010000000100010001010100010001010101000101",
|
||||
INIT_3A => X"0101010100000100000000000001000000010100010000010001000101010001",
|
||||
INIT_3B => X"0001010100010101010100000001010101010101010000010001000100010001",
|
||||
INIT_3C => X"0000000001010000000100000101000101000101010100000000010100010101",
|
||||
INIT_3D => X"0001000101000000010000000100010100010101010001000000000000010001",
|
||||
INIT_3E => X"0000000101000100000000010000010000010100010001000000010100000100",
|
||||
INIT_3F => X"0100000000010001000100010100000101000000010100000101010100010000",
|
||||
INIT_A => X"00000",
|
||||
INIT_B => X"00000",
|
||||
INIT_FILE => "NONE",
|
||||
IS_CLKARDCLK_INVERTED => '0',
|
||||
IS_CLKBWRCLK_INVERTED => '0',
|
||||
IS_ENARDEN_INVERTED => '0',
|
||||
IS_ENBWREN_INVERTED => '0',
|
||||
IS_RSTRAMARSTRAM_INVERTED => '0',
|
||||
IS_RSTRAMB_INVERTED => '0',
|
||||
IS_RSTREGARSTREG_INVERTED => '0',
|
||||
IS_RSTREGB_INVERTED => '0',
|
||||
RAM_MODE => "TDP",
|
||||
RDADDR_COLLISION_HWCONFIG => "PERFORMANCE",
|
||||
READ_WIDTH_A => 9,
|
||||
READ_WIDTH_B => 9,
|
||||
RSTREG_PRIORITY_A => "REGCE",
|
||||
RSTREG_PRIORITY_B => "REGCE",
|
||||
SIM_COLLISION_CHECK => "ALL",
|
||||
SIM_DEVICE => "7SERIES",
|
||||
SRVAL_A => X"00000",
|
||||
SRVAL_B => X"00000",
|
||||
WRITE_MODE_A => "WRITE_FIRST",
|
||||
WRITE_MODE_B => "WRITE_FIRST",
|
||||
WRITE_WIDTH_A => 9,
|
||||
WRITE_WIDTH_B => 9
|
||||
)
|
||||
port map (
|
||||
ADDRARDADDR(13 downto 3) => addra(10 downto 0),
|
||||
ADDRARDADDR(2 downto 0) => B"000",
|
||||
ADDRBWRADDR(13 downto 0) => B"00000000000000",
|
||||
CLKARDCLK => clka,
|
||||
CLKBWRCLK => clka,
|
||||
DIADI(15 downto 0) => B"0000000000000000",
|
||||
DIBDI(15 downto 0) => B"0000000000000000",
|
||||
DIPADIP(1 downto 0) => B"00",
|
||||
DIPBDIP(1 downto 0) => B"00",
|
||||
DOADO(15 downto 8) => \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOADO_UNCONNECTED\(15 downto 8),
|
||||
DOADO(7) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_8\,
|
||||
DOADO(6) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_9\,
|
||||
DOADO(5) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_10\,
|
||||
DOADO(4) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_11\,
|
||||
DOADO(3) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_12\,
|
||||
DOADO(2) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_13\,
|
||||
DOADO(1) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_14\,
|
||||
DOADO(0) => DOADO(0),
|
||||
DOBDO(15 downto 0) => \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOBDO_UNCONNECTED\(15 downto 0),
|
||||
DOPADOP(1) => \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPADOP_UNCONNECTED\(1),
|
||||
DOPADOP(0) => \DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_n_33\,
|
||||
DOPBDOP(1 downto 0) => \NLW_DEVICE_7SERIES.NO_BMM_INFO.SP.SIMPLE_PRIM18.ram_DOPBDOP_UNCONNECTED\(1 downto 0),
|
||||
ENARDEN => ena,
|
||||
ENBWREN => '0',
|
||||
REGCEAREGCE => ena,
|
||||
REGCEB => '0',
|
||||
RSTRAMARSTRAM => '0',
|
||||
RSTRAMB => '0',
|
||||
RSTREGARSTREG => '0',
|
||||
RSTREGB => '0',
|
||||
WEA(1 downto 0) => B"00",
|
||||
WEBWE(3 downto 0) => B"0000"
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_prim_width is
|
||||
port (
|
||||
DOADO : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_prim_width : entity is "blk_mem_gen_prim_width";
|
||||
end data_1p5m_blk_mem_gen_prim_width;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_prim_width is
|
||||
begin
|
||||
\prim_init.ram\: entity work.data_1p5m_blk_mem_gen_prim_wrapper_init
|
||||
port map (
|
||||
DOADO(0) => DOADO(0),
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
clka => clka,
|
||||
ena => ena
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_generic_cstr is
|
||||
port (
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_generic_cstr : entity is "blk_mem_gen_generic_cstr";
|
||||
end data_1p5m_blk_mem_gen_generic_cstr;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_generic_cstr is
|
||||
signal ram_douta : STD_LOGIC;
|
||||
begin
|
||||
\mux_a_wire.mux_reg.ce_pri.douta_i_reg[0]\: unisim.vcomponents.FDRE
|
||||
generic map(
|
||||
INIT => '0'
|
||||
)
|
||||
port map (
|
||||
C => clka,
|
||||
CE => ena,
|
||||
D => ram_douta,
|
||||
Q => douta(0),
|
||||
R => '0'
|
||||
);
|
||||
\ramloop[0].ram.r\: entity work.data_1p5m_blk_mem_gen_prim_width
|
||||
port map (
|
||||
DOADO(0) => ram_douta,
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
clka => clka,
|
||||
ena => ena
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_top is
|
||||
port (
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_top : entity is "blk_mem_gen_top";
|
||||
end data_1p5m_blk_mem_gen_top;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_top is
|
||||
begin
|
||||
\valid.cstr\: entity work.data_1p5m_blk_mem_gen_generic_cstr
|
||||
port map (
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
clka => clka,
|
||||
douta(0) => douta(0),
|
||||
ena => ena
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_v8_4_3_synth is
|
||||
port (
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_v8_4_3_synth : entity is "blk_mem_gen_v8_4_3_synth";
|
||||
end data_1p5m_blk_mem_gen_v8_4_3_synth;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_v8_4_3_synth is
|
||||
begin
|
||||
\gnbram.gnativebmg.native_blk_mem_gen\: entity work.data_1p5m_blk_mem_gen_top
|
||||
port map (
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
clka => clka,
|
||||
douta(0) => douta(0),
|
||||
ena => ena
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m_blk_mem_gen_v8_4_3 is
|
||||
port (
|
||||
clka : in STD_LOGIC;
|
||||
rsta : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
regcea : in STD_LOGIC;
|
||||
wea : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
dina : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
clkb : in STD_LOGIC;
|
||||
rstb : in STD_LOGIC;
|
||||
enb : in STD_LOGIC;
|
||||
regceb : in STD_LOGIC;
|
||||
web : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
addrb : in STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
dinb : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
doutb : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
injectsbiterr : in STD_LOGIC;
|
||||
injectdbiterr : in STD_LOGIC;
|
||||
eccpipece : in STD_LOGIC;
|
||||
sbiterr : out STD_LOGIC;
|
||||
dbiterr : out STD_LOGIC;
|
||||
rdaddrecc : out STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
sleep : in STD_LOGIC;
|
||||
deepsleep : in STD_LOGIC;
|
||||
shutdown : in STD_LOGIC;
|
||||
rsta_busy : out STD_LOGIC;
|
||||
rstb_busy : out STD_LOGIC;
|
||||
s_aclk : in STD_LOGIC;
|
||||
s_aresetn : in STD_LOGIC;
|
||||
s_axi_awid : in STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
s_axi_awaddr : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
s_axi_awlen : in STD_LOGIC_VECTOR ( 7 downto 0 );
|
||||
s_axi_awsize : in STD_LOGIC_VECTOR ( 2 downto 0 );
|
||||
s_axi_awburst : in STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
s_axi_awvalid : in STD_LOGIC;
|
||||
s_axi_awready : out STD_LOGIC;
|
||||
s_axi_wdata : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
s_axi_wstrb : in STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
s_axi_wlast : in STD_LOGIC;
|
||||
s_axi_wvalid : in STD_LOGIC;
|
||||
s_axi_wready : out STD_LOGIC;
|
||||
s_axi_bid : out STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
s_axi_bresp : out STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
s_axi_bvalid : out STD_LOGIC;
|
||||
s_axi_bready : in STD_LOGIC;
|
||||
s_axi_arid : in STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
s_axi_araddr : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
s_axi_arlen : in STD_LOGIC_VECTOR ( 7 downto 0 );
|
||||
s_axi_arsize : in STD_LOGIC_VECTOR ( 2 downto 0 );
|
||||
s_axi_arburst : in STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
s_axi_arvalid : in STD_LOGIC;
|
||||
s_axi_arready : out STD_LOGIC;
|
||||
s_axi_rid : out STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
s_axi_rdata : out STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
s_axi_rresp : out STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
s_axi_rlast : out STD_LOGIC;
|
||||
s_axi_rvalid : out STD_LOGIC;
|
||||
s_axi_rready : in STD_LOGIC;
|
||||
s_axi_injectsbiterr : in STD_LOGIC;
|
||||
s_axi_injectdbiterr : in STD_LOGIC;
|
||||
s_axi_sbiterr : out STD_LOGIC;
|
||||
s_axi_dbiterr : out STD_LOGIC;
|
||||
s_axi_rdaddrecc : out STD_LOGIC_VECTOR ( 10 downto 0 )
|
||||
);
|
||||
attribute C_ADDRA_WIDTH : integer;
|
||||
attribute C_ADDRA_WIDTH of data_1p5m_blk_mem_gen_v8_4_3 : entity is 11;
|
||||
attribute C_ADDRB_WIDTH : integer;
|
||||
attribute C_ADDRB_WIDTH of data_1p5m_blk_mem_gen_v8_4_3 : entity is 11;
|
||||
attribute C_ALGORITHM : integer;
|
||||
attribute C_ALGORITHM of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_AXI_ID_WIDTH : integer;
|
||||
attribute C_AXI_ID_WIDTH of data_1p5m_blk_mem_gen_v8_4_3 : entity is 4;
|
||||
attribute C_AXI_SLAVE_TYPE : integer;
|
||||
attribute C_AXI_SLAVE_TYPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_AXI_TYPE : integer;
|
||||
attribute C_AXI_TYPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_BYTE_SIZE : integer;
|
||||
attribute C_BYTE_SIZE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 9;
|
||||
attribute C_COMMON_CLK : integer;
|
||||
attribute C_COMMON_CLK of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_COUNT_18K_BRAM : string;
|
||||
attribute C_COUNT_18K_BRAM of data_1p5m_blk_mem_gen_v8_4_3 : entity is "1";
|
||||
attribute C_COUNT_36K_BRAM : string;
|
||||
attribute C_COUNT_36K_BRAM of data_1p5m_blk_mem_gen_v8_4_3 : entity is "0";
|
||||
attribute C_CTRL_ECC_ALGO : string;
|
||||
attribute C_CTRL_ECC_ALGO of data_1p5m_blk_mem_gen_v8_4_3 : entity is "NONE";
|
||||
attribute C_DEFAULT_DATA : string;
|
||||
attribute C_DEFAULT_DATA of data_1p5m_blk_mem_gen_v8_4_3 : entity is "0";
|
||||
attribute C_DISABLE_WARN_BHV_COLL : integer;
|
||||
attribute C_DISABLE_WARN_BHV_COLL of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_DISABLE_WARN_BHV_RANGE : integer;
|
||||
attribute C_DISABLE_WARN_BHV_RANGE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_ELABORATION_DIR : string;
|
||||
attribute C_ELABORATION_DIR of data_1p5m_blk_mem_gen_v8_4_3 : entity is "./";
|
||||
attribute C_ENABLE_32BIT_ADDRESS : integer;
|
||||
attribute C_ENABLE_32BIT_ADDRESS of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_DEEPSLEEP_PIN : integer;
|
||||
attribute C_EN_DEEPSLEEP_PIN of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_ECC_PIPE : integer;
|
||||
attribute C_EN_ECC_PIPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_RDADDRA_CHG : integer;
|
||||
attribute C_EN_RDADDRA_CHG of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_RDADDRB_CHG : integer;
|
||||
attribute C_EN_RDADDRB_CHG of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_SAFETY_CKT : integer;
|
||||
attribute C_EN_SAFETY_CKT of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_SHUTDOWN_PIN : integer;
|
||||
attribute C_EN_SHUTDOWN_PIN of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EN_SLEEP_PIN : integer;
|
||||
attribute C_EN_SLEEP_PIN of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_EST_POWER_SUMMARY : string;
|
||||
attribute C_EST_POWER_SUMMARY of data_1p5m_blk_mem_gen_v8_4_3 : entity is "Estimated Power for IP : 0.990811 mW";
|
||||
attribute C_FAMILY : string;
|
||||
attribute C_FAMILY of data_1p5m_blk_mem_gen_v8_4_3 : entity is "kintex7";
|
||||
attribute C_HAS_AXI_ID : integer;
|
||||
attribute C_HAS_AXI_ID of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_ENA : integer;
|
||||
attribute C_HAS_ENA of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_HAS_ENB : integer;
|
||||
attribute C_HAS_ENB of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_INJECTERR : integer;
|
||||
attribute C_HAS_INJECTERR of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_A : integer;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_A : integer;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_REGCEA : integer;
|
||||
attribute C_HAS_REGCEA of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_REGCEB : integer;
|
||||
attribute C_HAS_REGCEB of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_RSTA : integer;
|
||||
attribute C_HAS_RSTA of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_RSTB : integer;
|
||||
attribute C_HAS_RSTB of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_SOFTECC_INPUT_REGS_A : integer;
|
||||
attribute C_HAS_SOFTECC_INPUT_REGS_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_HAS_SOFTECC_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_SOFTECC_OUTPUT_REGS_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_INITA_VAL : string;
|
||||
attribute C_INITA_VAL of data_1p5m_blk_mem_gen_v8_4_3 : entity is "0";
|
||||
attribute C_INITB_VAL : string;
|
||||
attribute C_INITB_VAL of data_1p5m_blk_mem_gen_v8_4_3 : entity is "0";
|
||||
attribute C_INIT_FILE : string;
|
||||
attribute C_INIT_FILE of data_1p5m_blk_mem_gen_v8_4_3 : entity is "data_1p5m.mem";
|
||||
attribute C_INIT_FILE_NAME : string;
|
||||
attribute C_INIT_FILE_NAME of data_1p5m_blk_mem_gen_v8_4_3 : entity is "data_1p5m.mif";
|
||||
attribute C_INTERFACE_TYPE : integer;
|
||||
attribute C_INTERFACE_TYPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_LOAD_INIT_FILE : integer;
|
||||
attribute C_LOAD_INIT_FILE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_MEM_TYPE : integer;
|
||||
attribute C_MEM_TYPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 3;
|
||||
attribute C_MUX_PIPELINE_STAGES : integer;
|
||||
attribute C_MUX_PIPELINE_STAGES of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_PRIM_TYPE : integer;
|
||||
attribute C_PRIM_TYPE of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_READ_DEPTH_A : integer;
|
||||
attribute C_READ_DEPTH_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 2048;
|
||||
attribute C_READ_DEPTH_B : integer;
|
||||
attribute C_READ_DEPTH_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 2048;
|
||||
attribute C_READ_LATENCY_A : integer;
|
||||
attribute C_READ_LATENCY_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_READ_LATENCY_B : integer;
|
||||
attribute C_READ_LATENCY_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_READ_WIDTH_A : integer;
|
||||
attribute C_READ_WIDTH_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_READ_WIDTH_B : integer;
|
||||
attribute C_READ_WIDTH_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_RSTRAM_A : integer;
|
||||
attribute C_RSTRAM_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_RSTRAM_B : integer;
|
||||
attribute C_RSTRAM_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_RST_PRIORITY_A : string;
|
||||
attribute C_RST_PRIORITY_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is "CE";
|
||||
attribute C_RST_PRIORITY_B : string;
|
||||
attribute C_RST_PRIORITY_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is "CE";
|
||||
attribute C_SIM_COLLISION_CHECK : string;
|
||||
attribute C_SIM_COLLISION_CHECK of data_1p5m_blk_mem_gen_v8_4_3 : entity is "ALL";
|
||||
attribute C_USE_BRAM_BLOCK : integer;
|
||||
attribute C_USE_BRAM_BLOCK of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_BYTE_WEA : integer;
|
||||
attribute C_USE_BYTE_WEA of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_BYTE_WEB : integer;
|
||||
attribute C_USE_BYTE_WEB of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_DEFAULT_DATA : integer;
|
||||
attribute C_USE_DEFAULT_DATA of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_ECC : integer;
|
||||
attribute C_USE_ECC of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_SOFTECC : integer;
|
||||
attribute C_USE_SOFTECC of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_USE_URAM : integer;
|
||||
attribute C_USE_URAM of data_1p5m_blk_mem_gen_v8_4_3 : entity is 0;
|
||||
attribute C_WEA_WIDTH : integer;
|
||||
attribute C_WEA_WIDTH of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_WEB_WIDTH : integer;
|
||||
attribute C_WEB_WIDTH of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_WRITE_DEPTH_A : integer;
|
||||
attribute C_WRITE_DEPTH_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 2048;
|
||||
attribute C_WRITE_DEPTH_B : integer;
|
||||
attribute C_WRITE_DEPTH_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 2048;
|
||||
attribute C_WRITE_MODE_A : string;
|
||||
attribute C_WRITE_MODE_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is "WRITE_FIRST";
|
||||
attribute C_WRITE_MODE_B : string;
|
||||
attribute C_WRITE_MODE_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is "WRITE_FIRST";
|
||||
attribute C_WRITE_WIDTH_A : integer;
|
||||
attribute C_WRITE_WIDTH_A of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_WRITE_WIDTH_B : integer;
|
||||
attribute C_WRITE_WIDTH_B of data_1p5m_blk_mem_gen_v8_4_3 : entity is 1;
|
||||
attribute C_XDEVICEFAMILY : string;
|
||||
attribute C_XDEVICEFAMILY of data_1p5m_blk_mem_gen_v8_4_3 : entity is "kintex7";
|
||||
attribute ORIG_REF_NAME : string;
|
||||
attribute ORIG_REF_NAME of data_1p5m_blk_mem_gen_v8_4_3 : entity is "blk_mem_gen_v8_4_3";
|
||||
attribute downgradeipidentifiedwarnings : string;
|
||||
attribute downgradeipidentifiedwarnings of data_1p5m_blk_mem_gen_v8_4_3 : entity is "yes";
|
||||
end data_1p5m_blk_mem_gen_v8_4_3;
|
||||
|
||||
architecture STRUCTURE of data_1p5m_blk_mem_gen_v8_4_3 is
|
||||
signal \<const0>\ : STD_LOGIC;
|
||||
begin
|
||||
dbiterr <= \<const0>\;
|
||||
doutb(0) <= \<const0>\;
|
||||
rdaddrecc(10) <= \<const0>\;
|
||||
rdaddrecc(9) <= \<const0>\;
|
||||
rdaddrecc(8) <= \<const0>\;
|
||||
rdaddrecc(7) <= \<const0>\;
|
||||
rdaddrecc(6) <= \<const0>\;
|
||||
rdaddrecc(5) <= \<const0>\;
|
||||
rdaddrecc(4) <= \<const0>\;
|
||||
rdaddrecc(3) <= \<const0>\;
|
||||
rdaddrecc(2) <= \<const0>\;
|
||||
rdaddrecc(1) <= \<const0>\;
|
||||
rdaddrecc(0) <= \<const0>\;
|
||||
rsta_busy <= \<const0>\;
|
||||
rstb_busy <= \<const0>\;
|
||||
s_axi_arready <= \<const0>\;
|
||||
s_axi_awready <= \<const0>\;
|
||||
s_axi_bid(3) <= \<const0>\;
|
||||
s_axi_bid(2) <= \<const0>\;
|
||||
s_axi_bid(1) <= \<const0>\;
|
||||
s_axi_bid(0) <= \<const0>\;
|
||||
s_axi_bresp(1) <= \<const0>\;
|
||||
s_axi_bresp(0) <= \<const0>\;
|
||||
s_axi_bvalid <= \<const0>\;
|
||||
s_axi_dbiterr <= \<const0>\;
|
||||
s_axi_rdaddrecc(10) <= \<const0>\;
|
||||
s_axi_rdaddrecc(9) <= \<const0>\;
|
||||
s_axi_rdaddrecc(8) <= \<const0>\;
|
||||
s_axi_rdaddrecc(7) <= \<const0>\;
|
||||
s_axi_rdaddrecc(6) <= \<const0>\;
|
||||
s_axi_rdaddrecc(5) <= \<const0>\;
|
||||
s_axi_rdaddrecc(4) <= \<const0>\;
|
||||
s_axi_rdaddrecc(3) <= \<const0>\;
|
||||
s_axi_rdaddrecc(2) <= \<const0>\;
|
||||
s_axi_rdaddrecc(1) <= \<const0>\;
|
||||
s_axi_rdaddrecc(0) <= \<const0>\;
|
||||
s_axi_rdata(0) <= \<const0>\;
|
||||
s_axi_rid(3) <= \<const0>\;
|
||||
s_axi_rid(2) <= \<const0>\;
|
||||
s_axi_rid(1) <= \<const0>\;
|
||||
s_axi_rid(0) <= \<const0>\;
|
||||
s_axi_rlast <= \<const0>\;
|
||||
s_axi_rresp(1) <= \<const0>\;
|
||||
s_axi_rresp(0) <= \<const0>\;
|
||||
s_axi_rvalid <= \<const0>\;
|
||||
s_axi_sbiterr <= \<const0>\;
|
||||
s_axi_wready <= \<const0>\;
|
||||
sbiterr <= \<const0>\;
|
||||
GND: unisim.vcomponents.GND
|
||||
port map (
|
||||
G => \<const0>\
|
||||
);
|
||||
inst_blk_mem_gen: entity work.data_1p5m_blk_mem_gen_v8_4_3_synth
|
||||
port map (
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
clka => clka,
|
||||
douta(0) => douta(0),
|
||||
ena => ena
|
||||
);
|
||||
end STRUCTURE;
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
library UNISIM;
|
||||
use UNISIM.VCOMPONENTS.ALL;
|
||||
entity data_1p5m is
|
||||
port (
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 )
|
||||
);
|
||||
attribute NotValidForBitStream : boolean;
|
||||
attribute NotValidForBitStream of data_1p5m : entity is true;
|
||||
attribute CHECK_LICENSE_TYPE : string;
|
||||
attribute CHECK_LICENSE_TYPE of data_1p5m : entity is "data_1p5m,blk_mem_gen_v8_4_3,{}";
|
||||
attribute downgradeipidentifiedwarnings : string;
|
||||
attribute downgradeipidentifiedwarnings of data_1p5m : entity is "yes";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of data_1p5m : entity is "blk_mem_gen_v8_4_3,Vivado 2019.1.3";
|
||||
end data_1p5m;
|
||||
|
||||
architecture STRUCTURE of data_1p5m is
|
||||
signal NLW_U0_dbiterr_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_rsta_busy_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_rstb_busy_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_arready_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_awready_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_bvalid_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_dbiterr_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_rlast_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_rvalid_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_sbiterr_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_s_axi_wready_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_sbiterr_UNCONNECTED : STD_LOGIC;
|
||||
signal NLW_U0_doutb_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
signal NLW_U0_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
signal NLW_U0_s_axi_bid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
signal NLW_U0_s_axi_bresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
signal NLW_U0_s_axi_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
signal NLW_U0_s_axi_rdata_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 );
|
||||
signal NLW_U0_s_axi_rid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
signal NLW_U0_s_axi_rresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 );
|
||||
attribute C_ADDRA_WIDTH : integer;
|
||||
attribute C_ADDRA_WIDTH of U0 : label is 11;
|
||||
attribute C_ADDRB_WIDTH : integer;
|
||||
attribute C_ADDRB_WIDTH of U0 : label is 11;
|
||||
attribute C_ALGORITHM : integer;
|
||||
attribute C_ALGORITHM of U0 : label is 1;
|
||||
attribute C_AXI_ID_WIDTH : integer;
|
||||
attribute C_AXI_ID_WIDTH of U0 : label is 4;
|
||||
attribute C_AXI_SLAVE_TYPE : integer;
|
||||
attribute C_AXI_SLAVE_TYPE of U0 : label is 0;
|
||||
attribute C_AXI_TYPE : integer;
|
||||
attribute C_AXI_TYPE of U0 : label is 1;
|
||||
attribute C_BYTE_SIZE : integer;
|
||||
attribute C_BYTE_SIZE of U0 : label is 9;
|
||||
attribute C_COMMON_CLK : integer;
|
||||
attribute C_COMMON_CLK of U0 : label is 0;
|
||||
attribute C_COUNT_18K_BRAM : string;
|
||||
attribute C_COUNT_18K_BRAM of U0 : label is "1";
|
||||
attribute C_COUNT_36K_BRAM : string;
|
||||
attribute C_COUNT_36K_BRAM of U0 : label is "0";
|
||||
attribute C_CTRL_ECC_ALGO : string;
|
||||
attribute C_CTRL_ECC_ALGO of U0 : label is "NONE";
|
||||
attribute C_DEFAULT_DATA : string;
|
||||
attribute C_DEFAULT_DATA of U0 : label is "0";
|
||||
attribute C_DISABLE_WARN_BHV_COLL : integer;
|
||||
attribute C_DISABLE_WARN_BHV_COLL of U0 : label is 0;
|
||||
attribute C_DISABLE_WARN_BHV_RANGE : integer;
|
||||
attribute C_DISABLE_WARN_BHV_RANGE of U0 : label is 0;
|
||||
attribute C_ELABORATION_DIR : string;
|
||||
attribute C_ELABORATION_DIR of U0 : label is "./";
|
||||
attribute C_ENABLE_32BIT_ADDRESS : integer;
|
||||
attribute C_ENABLE_32BIT_ADDRESS of U0 : label is 0;
|
||||
attribute C_EN_DEEPSLEEP_PIN : integer;
|
||||
attribute C_EN_DEEPSLEEP_PIN of U0 : label is 0;
|
||||
attribute C_EN_ECC_PIPE : integer;
|
||||
attribute C_EN_ECC_PIPE of U0 : label is 0;
|
||||
attribute C_EN_RDADDRA_CHG : integer;
|
||||
attribute C_EN_RDADDRA_CHG of U0 : label is 0;
|
||||
attribute C_EN_RDADDRB_CHG : integer;
|
||||
attribute C_EN_RDADDRB_CHG of U0 : label is 0;
|
||||
attribute C_EN_SAFETY_CKT : integer;
|
||||
attribute C_EN_SAFETY_CKT of U0 : label is 0;
|
||||
attribute C_EN_SHUTDOWN_PIN : integer;
|
||||
attribute C_EN_SHUTDOWN_PIN of U0 : label is 0;
|
||||
attribute C_EN_SLEEP_PIN : integer;
|
||||
attribute C_EN_SLEEP_PIN of U0 : label is 0;
|
||||
attribute C_EST_POWER_SUMMARY : string;
|
||||
attribute C_EST_POWER_SUMMARY of U0 : label is "Estimated Power for IP : 0.990811 mW";
|
||||
attribute C_FAMILY : string;
|
||||
attribute C_FAMILY of U0 : label is "kintex7";
|
||||
attribute C_HAS_AXI_ID : integer;
|
||||
attribute C_HAS_AXI_ID of U0 : label is 0;
|
||||
attribute C_HAS_ENA : integer;
|
||||
attribute C_HAS_ENA of U0 : label is 1;
|
||||
attribute C_HAS_ENB : integer;
|
||||
attribute C_HAS_ENB of U0 : label is 0;
|
||||
attribute C_HAS_INJECTERR : integer;
|
||||
attribute C_HAS_INJECTERR of U0 : label is 0;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_A : integer;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_A of U0 : label is 1;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_MEM_OUTPUT_REGS_B of U0 : label is 0;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_A : integer;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_A of U0 : label is 1;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_MUX_OUTPUT_REGS_B of U0 : label is 0;
|
||||
attribute C_HAS_REGCEA : integer;
|
||||
attribute C_HAS_REGCEA of U0 : label is 0;
|
||||
attribute C_HAS_REGCEB : integer;
|
||||
attribute C_HAS_REGCEB of U0 : label is 0;
|
||||
attribute C_HAS_RSTA : integer;
|
||||
attribute C_HAS_RSTA of U0 : label is 0;
|
||||
attribute C_HAS_RSTB : integer;
|
||||
attribute C_HAS_RSTB of U0 : label is 0;
|
||||
attribute C_HAS_SOFTECC_INPUT_REGS_A : integer;
|
||||
attribute C_HAS_SOFTECC_INPUT_REGS_A of U0 : label is 0;
|
||||
attribute C_HAS_SOFTECC_OUTPUT_REGS_B : integer;
|
||||
attribute C_HAS_SOFTECC_OUTPUT_REGS_B of U0 : label is 0;
|
||||
attribute C_INITA_VAL : string;
|
||||
attribute C_INITA_VAL of U0 : label is "0";
|
||||
attribute C_INITB_VAL : string;
|
||||
attribute C_INITB_VAL of U0 : label is "0";
|
||||
attribute C_INIT_FILE : string;
|
||||
attribute C_INIT_FILE of U0 : label is "data_1p5m.mem";
|
||||
attribute C_INIT_FILE_NAME : string;
|
||||
attribute C_INIT_FILE_NAME of U0 : label is "data_1p5m.mif";
|
||||
attribute C_INTERFACE_TYPE : integer;
|
||||
attribute C_INTERFACE_TYPE of U0 : label is 0;
|
||||
attribute C_LOAD_INIT_FILE : integer;
|
||||
attribute C_LOAD_INIT_FILE of U0 : label is 1;
|
||||
attribute C_MEM_TYPE : integer;
|
||||
attribute C_MEM_TYPE of U0 : label is 3;
|
||||
attribute C_MUX_PIPELINE_STAGES : integer;
|
||||
attribute C_MUX_PIPELINE_STAGES of U0 : label is 0;
|
||||
attribute C_PRIM_TYPE : integer;
|
||||
attribute C_PRIM_TYPE of U0 : label is 1;
|
||||
attribute C_READ_DEPTH_A : integer;
|
||||
attribute C_READ_DEPTH_A of U0 : label is 2048;
|
||||
attribute C_READ_DEPTH_B : integer;
|
||||
attribute C_READ_DEPTH_B of U0 : label is 2048;
|
||||
attribute C_READ_LATENCY_A : integer;
|
||||
attribute C_READ_LATENCY_A of U0 : label is 1;
|
||||
attribute C_READ_LATENCY_B : integer;
|
||||
attribute C_READ_LATENCY_B of U0 : label is 1;
|
||||
attribute C_READ_WIDTH_A : integer;
|
||||
attribute C_READ_WIDTH_A of U0 : label is 1;
|
||||
attribute C_READ_WIDTH_B : integer;
|
||||
attribute C_READ_WIDTH_B of U0 : label is 1;
|
||||
attribute C_RSTRAM_A : integer;
|
||||
attribute C_RSTRAM_A of U0 : label is 0;
|
||||
attribute C_RSTRAM_B : integer;
|
||||
attribute C_RSTRAM_B of U0 : label is 0;
|
||||
attribute C_RST_PRIORITY_A : string;
|
||||
attribute C_RST_PRIORITY_A of U0 : label is "CE";
|
||||
attribute C_RST_PRIORITY_B : string;
|
||||
attribute C_RST_PRIORITY_B of U0 : label is "CE";
|
||||
attribute C_SIM_COLLISION_CHECK : string;
|
||||
attribute C_SIM_COLLISION_CHECK of U0 : label is "ALL";
|
||||
attribute C_USE_BRAM_BLOCK : integer;
|
||||
attribute C_USE_BRAM_BLOCK of U0 : label is 0;
|
||||
attribute C_USE_BYTE_WEA : integer;
|
||||
attribute C_USE_BYTE_WEA of U0 : label is 0;
|
||||
attribute C_USE_BYTE_WEB : integer;
|
||||
attribute C_USE_BYTE_WEB of U0 : label is 0;
|
||||
attribute C_USE_DEFAULT_DATA : integer;
|
||||
attribute C_USE_DEFAULT_DATA of U0 : label is 0;
|
||||
attribute C_USE_ECC : integer;
|
||||
attribute C_USE_ECC of U0 : label is 0;
|
||||
attribute C_USE_SOFTECC : integer;
|
||||
attribute C_USE_SOFTECC of U0 : label is 0;
|
||||
attribute C_USE_URAM : integer;
|
||||
attribute C_USE_URAM of U0 : label is 0;
|
||||
attribute C_WEA_WIDTH : integer;
|
||||
attribute C_WEA_WIDTH of U0 : label is 1;
|
||||
attribute C_WEB_WIDTH : integer;
|
||||
attribute C_WEB_WIDTH of U0 : label is 1;
|
||||
attribute C_WRITE_DEPTH_A : integer;
|
||||
attribute C_WRITE_DEPTH_A of U0 : label is 2048;
|
||||
attribute C_WRITE_DEPTH_B : integer;
|
||||
attribute C_WRITE_DEPTH_B of U0 : label is 2048;
|
||||
attribute C_WRITE_MODE_A : string;
|
||||
attribute C_WRITE_MODE_A of U0 : label is "WRITE_FIRST";
|
||||
attribute C_WRITE_MODE_B : string;
|
||||
attribute C_WRITE_MODE_B of U0 : label is "WRITE_FIRST";
|
||||
attribute C_WRITE_WIDTH_A : integer;
|
||||
attribute C_WRITE_WIDTH_A of U0 : label is 1;
|
||||
attribute C_WRITE_WIDTH_B : integer;
|
||||
attribute C_WRITE_WIDTH_B of U0 : label is 1;
|
||||
attribute C_XDEVICEFAMILY : string;
|
||||
attribute C_XDEVICEFAMILY of U0 : label is "kintex7";
|
||||
attribute downgradeipidentifiedwarnings of U0 : label is "yes";
|
||||
attribute x_interface_info : string;
|
||||
attribute x_interface_info of clka : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK";
|
||||
attribute x_interface_parameter : string;
|
||||
attribute x_interface_parameter of clka : signal is "XIL_INTERFACENAME BRAM_PORTA, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1";
|
||||
attribute x_interface_info of ena : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA EN";
|
||||
attribute x_interface_info of addra : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR";
|
||||
attribute x_interface_info of douta : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT";
|
||||
begin
|
||||
U0: entity work.data_1p5m_blk_mem_gen_v8_4_3
|
||||
port map (
|
||||
addra(10 downto 0) => addra(10 downto 0),
|
||||
addrb(10 downto 0) => B"00000000000",
|
||||
clka => clka,
|
||||
clkb => '0',
|
||||
dbiterr => NLW_U0_dbiterr_UNCONNECTED,
|
||||
deepsleep => '0',
|
||||
dina(0) => '0',
|
||||
dinb(0) => '0',
|
||||
douta(0) => douta(0),
|
||||
doutb(0) => NLW_U0_doutb_UNCONNECTED(0),
|
||||
eccpipece => '0',
|
||||
ena => ena,
|
||||
enb => '0',
|
||||
injectdbiterr => '0',
|
||||
injectsbiterr => '0',
|
||||
rdaddrecc(10 downto 0) => NLW_U0_rdaddrecc_UNCONNECTED(10 downto 0),
|
||||
regcea => '0',
|
||||
regceb => '0',
|
||||
rsta => '0',
|
||||
rsta_busy => NLW_U0_rsta_busy_UNCONNECTED,
|
||||
rstb => '0',
|
||||
rstb_busy => NLW_U0_rstb_busy_UNCONNECTED,
|
||||
s_aclk => '0',
|
||||
s_aresetn => '0',
|
||||
s_axi_araddr(31 downto 0) => B"00000000000000000000000000000000",
|
||||
s_axi_arburst(1 downto 0) => B"00",
|
||||
s_axi_arid(3 downto 0) => B"0000",
|
||||
s_axi_arlen(7 downto 0) => B"00000000",
|
||||
s_axi_arready => NLW_U0_s_axi_arready_UNCONNECTED,
|
||||
s_axi_arsize(2 downto 0) => B"000",
|
||||
s_axi_arvalid => '0',
|
||||
s_axi_awaddr(31 downto 0) => B"00000000000000000000000000000000",
|
||||
s_axi_awburst(1 downto 0) => B"00",
|
||||
s_axi_awid(3 downto 0) => B"0000",
|
||||
s_axi_awlen(7 downto 0) => B"00000000",
|
||||
s_axi_awready => NLW_U0_s_axi_awready_UNCONNECTED,
|
||||
s_axi_awsize(2 downto 0) => B"000",
|
||||
s_axi_awvalid => '0',
|
||||
s_axi_bid(3 downto 0) => NLW_U0_s_axi_bid_UNCONNECTED(3 downto 0),
|
||||
s_axi_bready => '0',
|
||||
s_axi_bresp(1 downto 0) => NLW_U0_s_axi_bresp_UNCONNECTED(1 downto 0),
|
||||
s_axi_bvalid => NLW_U0_s_axi_bvalid_UNCONNECTED,
|
||||
s_axi_dbiterr => NLW_U0_s_axi_dbiterr_UNCONNECTED,
|
||||
s_axi_injectdbiterr => '0',
|
||||
s_axi_injectsbiterr => '0',
|
||||
s_axi_rdaddrecc(10 downto 0) => NLW_U0_s_axi_rdaddrecc_UNCONNECTED(10 downto 0),
|
||||
s_axi_rdata(0) => NLW_U0_s_axi_rdata_UNCONNECTED(0),
|
||||
s_axi_rid(3 downto 0) => NLW_U0_s_axi_rid_UNCONNECTED(3 downto 0),
|
||||
s_axi_rlast => NLW_U0_s_axi_rlast_UNCONNECTED,
|
||||
s_axi_rready => '0',
|
||||
s_axi_rresp(1 downto 0) => NLW_U0_s_axi_rresp_UNCONNECTED(1 downto 0),
|
||||
s_axi_rvalid => NLW_U0_s_axi_rvalid_UNCONNECTED,
|
||||
s_axi_sbiterr => NLW_U0_s_axi_sbiterr_UNCONNECTED,
|
||||
s_axi_wdata(0) => '0',
|
||||
s_axi_wlast => '0',
|
||||
s_axi_wready => NLW_U0_s_axi_wready_UNCONNECTED,
|
||||
s_axi_wstrb(0) => '0',
|
||||
s_axi_wvalid => '0',
|
||||
sbiterr => NLW_U0_sbiterr_UNCONNECTED,
|
||||
shutdown => '0',
|
||||
sleep => '0',
|
||||
wea(0) => '0',
|
||||
web(0) => '0'
|
||||
);
|
||||
end STRUCTURE;
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:34:17 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/data_1p5m_synth_1/data_1p5m_stub.v
|
||||
// Design : data_1p5m
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "blk_mem_gen_v8_4_3,Vivado 2019.1.3" *)
|
||||
module data_1p5m(clka, ena, addra, douta)
|
||||
/* synthesis syn_black_box black_box_pad_pin="clka,ena,addra[10:0],douta[0:0]" */;
|
||||
input clka;
|
||||
input ena;
|
||||
input [10:0]addra;
|
||||
output [0:0]douta;
|
||||
endmodule
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:34:17 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/projects/datalink_814/dl814_cmos/ip/managed_ip_project/managed_ip_project.runs/data_1p5m_synth_1/data_1p5m_stub.vhdl
|
||||
-- Design : data_1p5m
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity data_1p5m is
|
||||
Port (
|
||||
clka : in STD_LOGIC;
|
||||
ena : in STD_LOGIC;
|
||||
addra : in STD_LOGIC_VECTOR ( 10 downto 0 );
|
||||
douta : out STD_LOGIC_VECTOR ( 0 to 0 )
|
||||
);
|
||||
|
||||
end data_1p5m;
|
||||
|
||||
architecture stub of data_1p5m is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "clka,ena,addra[10:0],douta[0:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_3,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+214
@@ -0,0 +1,214 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 3
|
||||
|
||||
`timescale 1ns/1ps
|
||||
|
||||
(* DowngradeIPIdentifiedWarnings = "yes" *)
|
||||
module data_1p5m (
|
||||
clka,
|
||||
ena,
|
||||
addra,
|
||||
douta
|
||||
);
|
||||
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK" *)
|
||||
input wire clka;
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA EN" *)
|
||||
input wire ena;
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR" *)
|
||||
input wire [10 : 0] addra;
|
||||
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME BRAM_PORTA, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1" *)
|
||||
(* X_INTERFACE_INFO = "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT" *)
|
||||
output wire [0 : 0] douta;
|
||||
|
||||
blk_mem_gen_v8_4_3 #(
|
||||
.C_FAMILY("kintex7"),
|
||||
.C_XDEVICEFAMILY("kintex7"),
|
||||
.C_ELABORATION_DIR("./"),
|
||||
.C_INTERFACE_TYPE(0),
|
||||
.C_AXI_TYPE(1),
|
||||
.C_AXI_SLAVE_TYPE(0),
|
||||
.C_USE_BRAM_BLOCK(0),
|
||||
.C_ENABLE_32BIT_ADDRESS(0),
|
||||
.C_CTRL_ECC_ALGO("NONE"),
|
||||
.C_HAS_AXI_ID(0),
|
||||
.C_AXI_ID_WIDTH(4),
|
||||
.C_MEM_TYPE(3),
|
||||
.C_BYTE_SIZE(9),
|
||||
.C_ALGORITHM(1),
|
||||
.C_PRIM_TYPE(1),
|
||||
.C_LOAD_INIT_FILE(1),
|
||||
.C_INIT_FILE_NAME("data_1p5m.mif"),
|
||||
.C_INIT_FILE("data_1p5m.mem"),
|
||||
.C_USE_DEFAULT_DATA(0),
|
||||
.C_DEFAULT_DATA("0"),
|
||||
.C_HAS_RSTA(0),
|
||||
.C_RST_PRIORITY_A("CE"),
|
||||
.C_RSTRAM_A(0),
|
||||
.C_INITA_VAL("0"),
|
||||
.C_HAS_ENA(1),
|
||||
.C_HAS_REGCEA(0),
|
||||
.C_USE_BYTE_WEA(0),
|
||||
.C_WEA_WIDTH(1),
|
||||
.C_WRITE_MODE_A("WRITE_FIRST"),
|
||||
.C_WRITE_WIDTH_A(1),
|
||||
.C_READ_WIDTH_A(1),
|
||||
.C_WRITE_DEPTH_A(2048),
|
||||
.C_READ_DEPTH_A(2048),
|
||||
.C_ADDRA_WIDTH(11),
|
||||
.C_HAS_RSTB(0),
|
||||
.C_RST_PRIORITY_B("CE"),
|
||||
.C_RSTRAM_B(0),
|
||||
.C_INITB_VAL("0"),
|
||||
.C_HAS_ENB(0),
|
||||
.C_HAS_REGCEB(0),
|
||||
.C_USE_BYTE_WEB(0),
|
||||
.C_WEB_WIDTH(1),
|
||||
.C_WRITE_MODE_B("WRITE_FIRST"),
|
||||
.C_WRITE_WIDTH_B(1),
|
||||
.C_READ_WIDTH_B(1),
|
||||
.C_WRITE_DEPTH_B(2048),
|
||||
.C_READ_DEPTH_B(2048),
|
||||
.C_ADDRB_WIDTH(11),
|
||||
.C_HAS_MEM_OUTPUT_REGS_A(1),
|
||||
.C_HAS_MEM_OUTPUT_REGS_B(0),
|
||||
.C_HAS_MUX_OUTPUT_REGS_A(1),
|
||||
.C_HAS_MUX_OUTPUT_REGS_B(0),
|
||||
.C_MUX_PIPELINE_STAGES(0),
|
||||
.C_HAS_SOFTECC_INPUT_REGS_A(0),
|
||||
.C_HAS_SOFTECC_OUTPUT_REGS_B(0),
|
||||
.C_USE_SOFTECC(0),
|
||||
.C_USE_ECC(0),
|
||||
.C_EN_ECC_PIPE(0),
|
||||
.C_READ_LATENCY_A(1),
|
||||
.C_READ_LATENCY_B(1),
|
||||
.C_HAS_INJECTERR(0),
|
||||
.C_SIM_COLLISION_CHECK("ALL"),
|
||||
.C_COMMON_CLK(0),
|
||||
.C_DISABLE_WARN_BHV_COLL(0),
|
||||
.C_EN_SLEEP_PIN(0),
|
||||
.C_USE_URAM(0),
|
||||
.C_EN_RDADDRA_CHG(0),
|
||||
.C_EN_RDADDRB_CHG(0),
|
||||
.C_EN_DEEPSLEEP_PIN(0),
|
||||
.C_EN_SHUTDOWN_PIN(0),
|
||||
.C_EN_SAFETY_CKT(0),
|
||||
.C_DISABLE_WARN_BHV_RANGE(0),
|
||||
.C_COUNT_36K_BRAM("0"),
|
||||
.C_COUNT_18K_BRAM("1"),
|
||||
.C_EST_POWER_SUMMARY("Estimated Power for IP : 0.990811 mW")
|
||||
) inst (
|
||||
.clka(clka),
|
||||
.rsta(1'D0),
|
||||
.ena(ena),
|
||||
.regcea(1'D0),
|
||||
.wea(1'B0),
|
||||
.addra(addra),
|
||||
.dina(1'B0),
|
||||
.douta(douta),
|
||||
.clkb(1'D0),
|
||||
.rstb(1'D0),
|
||||
.enb(1'D0),
|
||||
.regceb(1'D0),
|
||||
.web(1'B0),
|
||||
.addrb(11'B0),
|
||||
.dinb(1'B0),
|
||||
.doutb(),
|
||||
.injectsbiterr(1'D0),
|
||||
.injectdbiterr(1'D0),
|
||||
.eccpipece(1'D0),
|
||||
.sbiterr(),
|
||||
.dbiterr(),
|
||||
.rdaddrecc(),
|
||||
.sleep(1'D0),
|
||||
.deepsleep(1'D0),
|
||||
.shutdown(1'D0),
|
||||
.rsta_busy(),
|
||||
.rstb_busy(),
|
||||
.s_aclk(1'H0),
|
||||
.s_aresetn(1'D0),
|
||||
.s_axi_awid(4'B0),
|
||||
.s_axi_awaddr(32'B0),
|
||||
.s_axi_awlen(8'B0),
|
||||
.s_axi_awsize(3'B0),
|
||||
.s_axi_awburst(2'B0),
|
||||
.s_axi_awvalid(1'D0),
|
||||
.s_axi_awready(),
|
||||
.s_axi_wdata(1'B0),
|
||||
.s_axi_wstrb(1'B0),
|
||||
.s_axi_wlast(1'D0),
|
||||
.s_axi_wvalid(1'D0),
|
||||
.s_axi_wready(),
|
||||
.s_axi_bid(),
|
||||
.s_axi_bresp(),
|
||||
.s_axi_bvalid(),
|
||||
.s_axi_bready(1'D0),
|
||||
.s_axi_arid(4'B0),
|
||||
.s_axi_araddr(32'B0),
|
||||
.s_axi_arlen(8'B0),
|
||||
.s_axi_arsize(3'B0),
|
||||
.s_axi_arburst(2'B0),
|
||||
.s_axi_arvalid(1'D0),
|
||||
.s_axi_arready(),
|
||||
.s_axi_rid(),
|
||||
.s_axi_rdata(),
|
||||
.s_axi_rresp(),
|
||||
.s_axi_rlast(),
|
||||
.s_axi_rvalid(),
|
||||
.s_axi_rready(1'D0),
|
||||
.s_axi_injectsbiterr(1'D0),
|
||||
.s_axi_injectdbiterr(1'D0),
|
||||
.s_axi_sbiterr(),
|
||||
.s_axi_dbiterr(),
|
||||
.s_axi_rdaddrecc()
|
||||
);
|
||||
endmodule
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
// (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:fifo_generator:13.2
|
||||
// IP Revision: 4
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
fifo_AntCtrl your_instance_name (
|
||||
.rst(rst), // input wire rst
|
||||
.wr_clk(wr_clk), // input wire wr_clk
|
||||
.rd_clk(rd_clk), // input wire rd_clk
|
||||
.din(din), // input wire [3 : 0] din
|
||||
.wr_en(wr_en), // input wire wr_en
|
||||
.rd_en(rd_en), // input wire rd_en
|
||||
.dout(dout), // output wire [3 : 0] dout
|
||||
.full(full), // output wire full
|
||||
.empty(empty) // output wire empty
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file fifo_AntCtrl.v when simulating
|
||||
// the core, fifo_AntCtrl. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
-- (c) Copyright 1995-2023 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--
|
||||
-- DO NOT MODIFY THIS FILE.
|
||||
|
||||
-- IP VLNV: xilinx.com:ip:fifo_generator:13.2
|
||||
-- IP Revision: 4
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT fifo_AntCtrl
|
||||
PORT (
|
||||
rst : IN STD_LOGIC;
|
||||
wr_clk : IN STD_LOGIC;
|
||||
rd_clk : IN STD_LOGIC;
|
||||
din : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
|
||||
wr_en : IN STD_LOGIC;
|
||||
rd_en : IN STD_LOGIC;
|
||||
dout : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
|
||||
full : OUT STD_LOGIC;
|
||||
empty : OUT STD_LOGIC
|
||||
);
|
||||
END COMPONENT;
|
||||
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
|
||||
|
||||
-- The following code must appear in the VHDL architecture
|
||||
-- body. Substitute your own instance name and net names.
|
||||
|
||||
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
|
||||
your_instance_name : fifo_AntCtrl
|
||||
PORT MAP (
|
||||
rst => rst,
|
||||
wr_clk => wr_clk,
|
||||
rd_clk => rd_clk,
|
||||
din => din,
|
||||
wr_en => wr_en,
|
||||
rd_en => rd_en,
|
||||
dout => dout,
|
||||
full => full,
|
||||
empty => empty
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file fifo_AntCtrl.vhd when simulating
|
||||
-- the core, fifo_AntCtrl. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
+6210
File diff suppressed because it is too large
Load Diff
+7340
File diff suppressed because it is too large
Load Diff
+29
@@ -0,0 +1,29 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sat Mar 18 23:33:46 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub -rename_top fifo_AntCtrl -prefix
|
||||
// fifo_AntCtrl_ fifo_AntCtrl_stub.v
|
||||
// Design : fifo_AntCtrl
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
|
||||
// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
|
||||
// Please paste the declaration into a Verilog source file or add the file as an additional source.
|
||||
(* x_core_info = "fifo_generator_v13_2_4,Vivado 2019.1.3" *)
|
||||
module fifo_AntCtrl(rst, wr_clk, rd_clk, din, wr_en, rd_en, dout, full,
|
||||
empty)
|
||||
/* synthesis syn_black_box black_box_pad_pin="rst,wr_clk,rd_clk,din[3:0],wr_en,rd_en,dout[3:0],full,empty" */;
|
||||
input rst;
|
||||
input wr_clk;
|
||||
input rd_clk;
|
||||
input [3:0]din;
|
||||
input wr_en;
|
||||
input rd_en;
|
||||
output [3:0]dout;
|
||||
output full;
|
||||
output empty;
|
||||
endmodule
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sat Mar 18 23:33:46 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub -rename_top fifo_AntCtrl -prefix
|
||||
-- fifo_AntCtrl_ fifo_AntCtrl_stub.vhdl
|
||||
-- Design : fifo_AntCtrl
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity fifo_AntCtrl is
|
||||
Port (
|
||||
rst : in STD_LOGIC;
|
||||
wr_clk : in STD_LOGIC;
|
||||
rd_clk : in STD_LOGIC;
|
||||
din : in STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
wr_en : in STD_LOGIC;
|
||||
rd_en : in STD_LOGIC;
|
||||
dout : out STD_LOGIC_VECTOR ( 3 downto 0 );
|
||||
full : out STD_LOGIC;
|
||||
empty : out STD_LOGIC
|
||||
);
|
||||
|
||||
end fifo_AntCtrl;
|
||||
|
||||
architecture stub of fifo_AntCtrl is
|
||||
attribute syn_black_box : boolean;
|
||||
attribute black_box_pad_pin : string;
|
||||
attribute syn_black_box of stub : architecture is true;
|
||||
attribute black_box_pad_pin of stub : architecture is "rst,wr_clk,rd_clk,din[3:0],wr_en,rd_en,dout[3:0],full,empty";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "fifo_generator_v13_2_4,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user