diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/ip/ad9361_fifo/ad9361_fifo.xci b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/ip/ad9361_fifo/ad9361_fifo.xci new file mode 100644 index 00000000..6f5eb26d --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/ip/ad9361_fifo/ad9361_fifo.xci @@ -0,0 +1,479 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "ad9361_fifo", + "component_reference": "xilinx.com:ip:fifo_generator:13.2", + "ip_revision": "9", + "gen_directory": "../../../../ad9361_mapping.gen/sources_1/ip/ad9361_fifo", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "ad9361_fifo", "resolve_type": "user", "usage": "all" } ], + "Fifo_Implementation": [ { "value": "Independent_Clocks_Distributed_RAM", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "synchronization_stages": [ { "value": "3", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "synchronization_stages_axi": [ { "value": "2", "resolve_type": "user", "format": "long", "usage": "all" } ], + "INTERFACE_TYPE": [ { "value": "Native", "resolve_type": "user", "usage": "all" } ], + "Performance_Options": [ { "value": "Standard_FIFO", "resolve_type": "user", "usage": "all" } ], + "asymmetric_port_width": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Data_Width": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Input_Depth": [ { "value": "16", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Output_Data_Width": [ { "value": "12", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Output_Depth": [ { "value": "16", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Enable_ECC": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Use_Embedded_Registers": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Reset_Pin": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Enable_Reset_Synchronization": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Type": [ { "value": "Asynchronous_Reset", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Flags_Reset_Value": [ { "value": "1", "resolve_type": "user", "usage": "all" } ], + "Use_Dout_Reset": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Dout_Reset_Value": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "dynamic_power_saving": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Almost_Full_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Almost_Empty_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Valid_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Valid_Sense": [ { "value": "Active_High", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Underflow_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Underflow_Sense": [ { "value": "Active_High", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Write_Acknowledge_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Write_Acknowledge_Sense": [ { "value": "Active_High", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Overflow_Flag": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Overflow_Sense": [ { "value": "Active_High", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "ecc_pipeline_reg": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Use_Extra_Logic": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Data_Count": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Data_Count_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Write_Data_Count": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Write_Data_Count_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Read_Data_Count": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Read_Data_Count_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Disable_Timing_Violations": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Read_Clock_Frequency": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Write_Clock_Frequency": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "usage": "all" } ], + "Full_Threshold_Assert_Value": [ { "value": "13", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Full_Threshold_Negate_Value": [ { "value": "12", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "usage": "all" } ], + "Empty_Threshold_Assert_Value": [ { "value": "2", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Negate_Value": [ { "value": "3", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "PROTOCOL": [ { "value": "AXI4", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Clock_Type_AXI": [ { "value": "Common_Clock", "resolve_type": "user", "usage": "all" } ], + "HAS_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Clock_Enable_Type": [ { "value": "Slave_Interface_Clock_Enable", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "READ_WRITE_MODE": [ { "value": "READ_WRITE", "resolve_type": "user", "usage": "all" } ], + "ID_WIDTH": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "ADDRESS_WIDTH": [ { "value": "32", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "DATA_WIDTH": [ { "value": "64", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "AWUSER_Width": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "WUSER_Width": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "BUSER_Width": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "ARUSER_Width": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "RUSER_Width": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "TDATA_NUM_BYTES": [ { "value": "1", "resolve_type": "user", "usage": "all" } ], + "TID_WIDTH": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "TDEST_WIDTH": [ { "value": "0", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "TUSER_WIDTH": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Enable_TREADY": [ { "value": "true", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Enable_TLAST": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "HAS_TSTRB": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "TSTRB_WIDTH": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "HAS_TKEEP": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "TKEEP_WIDTH": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "wach_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_wach": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_wach": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_wach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_wach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_wach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_wach": [ { "value": "16", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_wach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_wach": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_wach": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_wach": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_wach": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "wdch_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_wdch": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_wdch": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_wdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_wdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_wdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_wdch": [ { "value": "1024", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_wdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_wdch": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_wdch": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_wdch": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_wdch": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "wrch_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_wrch": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_wrch": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_wrch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_wrch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_wrch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_wrch": [ { "value": "16", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_wrch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_wrch": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_wrch": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_wrch": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_wrch": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "rach_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_rach": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_rach": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_rach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_rach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_rach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_rach": [ { "value": "16", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_rach": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_rach": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_rach": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_rach": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_rach": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "rdch_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_rdch": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_rdch": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_rdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_rdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_rdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_rdch": [ { "value": "1024", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_rdch": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_rdch": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_rdch": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_rdch": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_rdch": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "axis_type": [ { "value": "FIFO", "resolve_type": "user", "usage": "all" } ], + "FIFO_Implementation_axis": [ { "value": "Common_Clock_Block_RAM", "resolve_type": "user", "usage": "all" } ], + "FIFO_Application_Type_axis": [ { "value": "Data_FIFO", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_ECC_axis": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Sbit_Error_axis": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Inject_Dbit_Error_axis": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Input_Depth_axis": [ { "value": "1024", "resolve_type": "user", "usage": "all" } ], + "Enable_Data_Counts_axis": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Programmable_Full_Type_axis": [ { "value": "No_Programmable_Full_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Full_Threshold_Assert_Value_axis": [ { "value": "1023", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Programmable_Empty_Type_axis": [ { "value": "No_Programmable_Empty_Threshold", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Empty_Threshold_Assert_Value_axis": [ { "value": "1022", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Register_Slice_Mode_wach": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Register_Slice_Mode_wdch": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Register_Slice_Mode_wrch": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Register_Slice_Mode_rach": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Register_Slice_Mode_rdch": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Register_Slice_Mode_axis": [ { "value": "Fully_Registered", "resolve_type": "user", "usage": "all" } ], + "Underflow_Flag_AXI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Underflow_Sense_AXI": [ { "value": "Active_High", "resolve_type": "user", "usage": "all" } ], + "Overflow_Flag_AXI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Overflow_Sense_AXI": [ { "value": "Active_High", "resolve_type": "user", "usage": "all" } ], + "Disable_Timing_Violations_AXI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Add_NGC_Constraint_AXI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Enable_Common_Underflow": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Enable_Common_Overflow": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "enable_read_pointer_increment_by2": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Use_Embedded_Registers_axis": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "enable_low_latency": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "use_dout_register": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Master_interface_Clock_enable_memory_mapped": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Slave_interface_Clock_enable_memory_mapped": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Output_Register_Type": [ { "value": "Embedded_Reg", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_Safety_Circuit": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Enable_ECC_Type": [ { "value": "Hard_ECC", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "C_SELECT_XPM": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "all" } ] + }, + "model_parameters": { + "C_COMMON_CLOCK": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SELECT_XPM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COUNT_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_COUNT_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DEFAULT_VALUE": [ { "value": "BlankString", "resolve_type": "generated", "usage": "all" } ], + "C_DIN_WIDTH": [ { "value": "12", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DOUT_RST_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_DOUT_WIDTH": [ { "value": "12", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_RLOCS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_FULL_FLAGS_RST_VAL": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ALMOST_EMPTY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ALMOST_FULL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_BACKUP": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_INT_CLK": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MEMINIT_FILE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_OVERFLOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_RD_DATA_COUNT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_RD_RST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_RST": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_SRST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_UNDERFLOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_VALID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_WR_ACK": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_WR_DATA_COUNT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_WR_RST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INIT_WR_PNTR_VAL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEMORY_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MIF_FILE_NAME": [ { "value": "BlankString", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMIZATION_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OVERFLOW_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRELOAD_LATENCY": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRELOAD_REGS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIM_FIFO_TYPE": [ { "value": "512x36", "resolve_type": "generated", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_NEGATE_VAL": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL": [ { "value": "13", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_NEGATE_VAL": [ { "value": "12", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RD_DATA_COUNT_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RD_DEPTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RD_FREQ": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RD_PNTR_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_UNDERFLOW_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_DOUT_RST": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_EMBEDDED_REG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_PIPELINE_REG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_POWER_SAVING_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_FIFO16_FLAGS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_FWFT_DATA_COUNT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_VALID_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_ACK_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DATA_COUNT_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_FREQ": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_RESPONSE_LATENCY": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MSGON_VAL": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_RST_SYNC": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_SAFETY_CKT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SYNCHRONIZER_STAGE": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERFACE_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_TYPE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_WR_CHANNEL": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_RD_CHANNEL": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_SLAVE_CE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MASTER_CE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ADD_NGC_CONSTRAINT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_COMMON_OVERFLOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_COMMON_UNDERFLOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_DEFAULT_SETTINGS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ID_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ADDR_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_DATA_WIDTH": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_LEN_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_LOCK_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_ID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_AWUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_WUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_BUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_ARUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXI_RUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ARUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_AWUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_WUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_BUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_RUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TDATA": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TDEST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TUSER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TREADY": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TSTRB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_AXIS_TKEEP": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TID_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TDEST_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TUSER_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TSTRB_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TKEEP_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WACH_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WDCH_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WRCH_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RACH_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RDCH_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXIS_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_WACH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_WDCH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_WRCH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_RACH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_RDCH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IMPLEMENTATION_TYPE_AXIS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_APPLICATION_TYPE_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_WACH": [ { "value": "512x36", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_WDCH": [ { "value": "1kx36", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_WRCH": [ { "value": "512x36", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_RACH": [ { "value": "512x36", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_RDCH": [ { "value": "1kx36", "resolve_type": "generated", "usage": "all" } ], + "C_PRIM_FIFO_TYPE_AXIS": [ { "value": "1kx18", "resolve_type": "generated", "usage": "all" } ], + "C_USE_ECC_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ERROR_INJECTION_TYPE_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_WACH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_WDCH": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_WRCH": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_RACH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_RDCH": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DIN_WIDTH_AXIS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_WACH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_WDCH": [ { "value": "1024", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_WRCH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_RACH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_RDCH": [ { "value": "1024", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_DEPTH_AXIS": [ { "value": "1024", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_WACH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_WDCH": [ { "value": "10", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_WRCH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_RACH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_RDCH": [ { "value": "10", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WR_PNTR_WIDTH_AXIS": [ { "value": "10", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_DATA_COUNTS_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PROG_FLAGS_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_TYPE_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_WACH": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_WDCH": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_WRCH": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_RACH": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_RDCH": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_FULL_THRESH_ASSERT_VAL_AXIS": [ { "value": "1023", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_TYPE_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS": [ { "value": "1022", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_WACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_WDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_WRCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_RACH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_RDCH": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_REG_SLICE_MODE_AXIS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z100" } ], + "PACKAGE": [ { "value": "ffg900" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "9" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../ad9361_mapping.gen/sources_1/ip/ad9361_fifo" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "rst": [ { "direction": "in", "driver_value": "0" } ], + "wr_clk": [ { "direction": "in", "driver_value": "0" } ], + "rd_clk": [ { "direction": "in", "driver_value": "0" } ], + "din": [ { "direction": "in", "size_left": "11", "size_right": "0", "driver_value": "0" } ], + "wr_en": [ { "direction": "in", "driver_value": "0" } ], + "rd_en": [ { "direction": "in", "driver_value": "0" } ], + "dout": [ { "direction": "out", "size_left": "11", "size_right": "0", "driver_value": "0" } ], + "full": [ { "direction": "out", "driver_value": "0x0" } ], + "empty": [ { "direction": "out", "driver_value": "0x1" } ] + }, + "interfaces": { + "write_clk": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "wr_clk" } ] + } + }, + "read_clk": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "rd_clk" } ] + } + }, + "FIFO_WRITE": { + "vlnv": "xilinx.com:interface:fifo_write:1.0", + "abstraction_type": "xilinx.com:interface:fifo_write_rtl:1.0", + "mode": "slave", + "port_maps": { + "FULL": [ { "physical_name": "full" } ], + "WR_DATA": [ { "physical_name": "din" } ], + "WR_EN": [ { "physical_name": "wr_en" } ] + } + }, + "FIFO_READ": { + "vlnv": "xilinx.com:interface:fifo_read:1.0", + "abstraction_type": "xilinx.com:interface:fifo_read_rtl:1.0", + "mode": "slave", + "port_maps": { + "EMPTY": [ { "physical_name": "empty" } ], + "RD_DATA": [ { "physical_name": "dout" } ], + "RD_EN": [ { "physical_name": "rd_en" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_dual.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_dual.v new file mode 100644 index 00000000..5e308fa1 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_dual.v @@ -0,0 +1,196 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/07/01 17:37:27 +// Last Modified Date: 2023/03/06 11:26 +// Design Name: +// Module Name: ad9361_rx_map_cmos_dual +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_rx_map_cmos_dual +( + input clk_2x_in , + input clk_in_rst , + + input rx_data_clk , // sync to output data + input rx_data_clk_rst , + + input rx_fifo_rst , // async fifo reset + + input rx_frame , + input [11:0] rx_data , + + output [11:0] rx_ch1_i , + output [11:0] rx_ch1_q , + output [11:0] rx_ch2_i , + output [11:0] rx_ch2_q +); + +genvar m; + +// rx data +wire [11:0] rx_data_i, rx_data_q; + +generate +for (m=0; m<12; m=m+1) begin : rx_data_iddr + +IDDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT_Q1 (1'b0 ), + .INIT_Q2 (1'b0 ), + .SRTYPE ("ASYNC" ) +) i_rx_data_iddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_2x_in ), + .D (rx_data[m] ), + .Q1 (rx_data_q[m] ), + .Q2 (rx_data_i[m] ) +); + +end +endgenerate + +// rx frame +wire rx_frame_i; +wire rx_frame_q; + +IDDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT_Q1 (1'b0 ), + .INIT_Q2 (1'b0 ), + .SRTYPE ("ASYNC" ) +) i_rx_frame_iddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_2x_in ), + .D (rx_frame ), + .Q1 (rx_frame_q ), + .Q2 (rx_frame_i ) +); + +// divide rx_data to dual channel +reg [11:0] rx1_data_i = 'b0; +reg [11:0] rx1_data_q = 'b0; +reg [11:0] rx2_data_i = 'b0; +reg [11:0] rx2_data_q = 'b0; + +wire rx_fifo_wr_en; +reg rx_fifo_rd_en = 'b0; + +wire rx_fifo_empty_1; +wire rx_fifo_empty_2; +wire rx_fifo_empty_3; +wire rx_fifo_empty_4; + +assign rx_fifo_wr_en = rx_frame_i; // align data & write enable + +always @ (posedge clk_2x_in) begin + if (clk_in_rst) begin + rx1_data_i <= 'b0; + rx2_data_i <= 'b0; + end + else if(rx_frame_i) begin + rx1_data_i <= rx_data_i; + end + else begin + rx2_data_i <= rx_data_i; + end +end + +always @ (posedge clk_2x_in) begin + if (clk_in_rst) begin + rx1_data_q <= 'b0; + rx2_data_q <= 'b0; + end + else if(rx_frame_q) begin + rx1_data_q <= rx_data_q; + end + else begin + rx2_data_q <= rx_data_q; + end +end + +always @(posedge rx_data_clk) begin + if (rx_data_clk_rst) begin + rx_fifo_rd_en <= 'b0; + end + else begin + rx_fifo_rd_en <= &{~rx_fifo_empty_1, ~rx_fifo_empty_2, ~rx_fifo_empty_3, ~rx_fifo_empty_4}; + end +end + +ad9361_fifo u_rx_fifo_ch1_i +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_2x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx1_data_i ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_ch1_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_1) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch1_q +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_2x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx1_data_q ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_ch1_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_2) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch2_i +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_2x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx2_data_i ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_ch2_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_3) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch2_q +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_2x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx2_data_q ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_ch2_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_4) // output wire empty +); + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_single.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_single.v new file mode 100644 index 00000000..c5bb387a --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_cmos_single.v @@ -0,0 +1,124 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/07/01 17:37:27 +// Last Modified Date: 2023/03/03 13:01 +// Design Name: +// Module Name: ad9361_rx_map_cmos_single +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_rx_map_cmos_single +( + input clk_in , + input clk_in_rst , + + input rx_data_clk , + input rx_data_clk_rst , + + input rx_fifo_rst , + + input rx_frame , + input [11:0] rx_data , + + output [11:0] rx_data_i , + output [11:0] rx_data_q +); + +genvar m; + +// rx data +wire [11:0] rx_raw_i, rx_raw_q; + +generate +for (m=0; m<12; m=m+1) begin : rx_data_iddr + +IDDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT_Q1 (1'b0 ), + .INIT_Q2 (1'b0 ), + .SRTYPE ("ASYNC" ) +) i_rx_data_iddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_in ), + .D (rx_data[m] ), + .Q1 (rx_raw_q[m] ), + .Q2 (rx_raw_i[m] ) +); + +end +endgenerate + + +// divide rx_data to dual channel +reg rx_fifo_wr_en = 1'b0; +reg rx_fifo_rd_en = 'b0; + +wire rx_fifo_empty_1; +wire rx_fifo_empty_2; + +always @(posedge clk_in) begin + if (clk_in_rst) begin + rx_fifo_wr_en <= 1'b0; + end + else begin + rx_fifo_wr_en <= 1'b1; + end +end + +always @(posedge rx_data_clk) begin + if (rx_data_clk_rst) begin + rx_fifo_rd_en <= 'b0; + end + else begin + rx_fifo_rd_en <= &{~rx_fifo_empty_1, ~rx_fifo_empty_2}; + end +end + +ad9361_fifo u_rx_fifo_i +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx_raw_i ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_data_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_1) // output wire empty +); + +ad9361_fifo u_rx_fifo_q +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx_raw_q ), // input wire [11 : 0] din + .wr_en (rx_fifo_wr_en ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (rx_data_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_2) // output wire empty +); + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_lvds_dual.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_lvds_dual.v new file mode 100644 index 00000000..026330d0 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_rx_map_lvds_dual.v @@ -0,0 +1,277 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/07/01 17:37:27 +// Last Modified Date: 2023/03/06 10:54 +// Design Name: +// Module Name: ad9361_rx_mapping_dual +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_rx_map_lvds_dual +( + input clk_4x_in , // sync to input data + input clk_in_rst , + + input rx_data_clk , // sync to output data + input rx_data_clk_rst , + + input rx_fifo_rst , // async fifo reset + + input rx_frame_p , + input rx_frame_n , + input [ 5:0] rx_data_p , // data from ad9361 p1 port + input [ 5:0] rx_data_n , + + output [11:0] rx_ch1_i , + output [11:0] rx_ch1_q , + output [11:0] rx_ch2_i , + output [11:0] rx_ch2_q +); + +genvar m; + +// rx data +wire [5:0] rx_data; +wire [5:0] rx_data_i, rx_data_q; + +generate +for (m=0; m<6; m=m+1) begin : rx_data_iddr + +IBUFDS #( + .DIFF_TERM ("TRUE" ) +) u_ibufds_rx_data +( + .I (rx_data_p[m] ), + .IB (rx_data_n[m] ), + .O (rx_data[m] ) +); + +IDDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT_Q1 (1'b0 ), + .INIT_Q2 (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_rx_data_iddr ( + .CE (1'b1 ), // clock enable + .R (1'b0 ), // iddr reset + .S (1'b0 ), // iddr set + .C (clk_4x_in ), // iddr clock + .D (rx_data[m] ), // ddr data + .Q1 (rx_data_q[m] ), // sdr data at rising edge + .Q2 (rx_data_i[m] ) // sdr data at falling edge +); + +end +endgenerate + +// rx frame +wire rx_frame; +wire rx_frame_i; +wire rx_frame_q; + +IBUFDS #( + .DIFF_TERM ("TRUE" ) +) u_ibufds_rx_frame +( + .I (rx_frame_p ), + .IB (rx_frame_n ), + .O (rx_frame ) +); + +IDDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT_Q1 (1'b0 ), + .INIT_Q2 (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_rx_frame_iddr ( + .CE (1'b1 ), // clock enable + .R (1'b0 ), // iddr reset + .S (1'b0 ), // iddr set + .C (clk_4x_in ), // iddr clock + .D (rx_frame ), // ddr data + .Q1 (rx_frame_q ), // sdr data at rising edge + .Q2 (rx_frame_i ) // sdr data at falling edge +); + +// unpack rx frame & data +reg rx_frame_i_d1 = 'b0; +reg [ 5:0] rx_data_i_d1 = 'b0; +reg [ 5:0] rx_data_q_d1 = 'b0; +reg rx_flag = 'b0; // rx frame rising edge indicator +reg [ 1:0] rx_cnt = 'b0; // unpack stage counter + +always @(posedge clk_4x_in) begin + // wait for [rx_flag] + rx_frame_i_d1 <= rx_frame_i; + rx_data_i_d1 <= rx_data_i; + rx_data_q_d1 <= rx_data_q; +end + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + rx_flag <= 'b0; + end + else if (~rx_frame_i_d1 & rx_frame_i) begin + // assert when rising edge of rx frame is detected + rx_flag <= 'b1; + end + else begin + rx_flag <= rx_flag; + end +end + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + rx_cnt <= 'b0; + end + else begin + rx_cnt <= (rx_flag) ? rx_cnt + 1'b1 : rx_cnt; + end +end + +reg [11:0] rx1_data_i = 'b0; +reg [11:0] rx1_data_q = 'b0; +reg [11:0] rx2_data_i = 'b0; +reg [11:0] rx2_data_q = 'b0; + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + rx1_data_i <= 'b0; + rx1_data_q <= 'b0; + rx2_data_i <= 'b0; + rx2_data_q <= 'b0; + end + else begin + case (rx_cnt) + 3'd0: begin + // 1st clock cycle: upper 6-bit of rx ch1 inphase/quadrature data + rx1_data_i[11:6] <= rx_data_i_d1; + rx1_data_q[11:6] <= rx_data_q_d1; + end + 3'd1: begin + // 2nd clock cycle: lower 6-bit of rx ch1 inphase/quadrature data + rx1_data_i[ 5:0] <= rx_data_i_d1; + rx1_data_q[ 5:0] <= rx_data_q_d1; + end + 3'd2: begin + // 3rd clock cycle: upper 6-bit of rx ch2 inphase/quadrature data + rx2_data_i[11:6] <= rx_data_i_d1; + rx2_data_q[11:6] <= rx_data_q_d1; + end + 3'd3: begin + // 4th clock cycle: lower 6-bit of rx ch2 inphase/quadrature data + rx2_data_i[ 5:0] <= rx_data_i_d1; + rx2_data_q[ 5:0] <= rx_data_q_d1; + end + default: begin + rx1_data_i <= 'b0; + rx1_data_q <= 'b0; + rx2_data_i <= 'b0; + rx2_data_q <= 'b0; + end + endcase + end +end + +// write fifo when rx1/2_data_i/q are all prepared with 192MHz clock +// read fifo at every clock cycle with 48MHz clock +reg fifo_wr_en = 'b0; +reg fifo_rd_en = 'b0; +wire rx_fifo_empty_1; +wire rx_fifo_empty_2; +wire rx_fifo_empty_3; +wire rx_fifo_empty_4; + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + fifo_wr_en <= 'b0; + end + else if (rx_cnt == 2'd3) begin + fifo_wr_en <= 1'b1; + end + else begin + fifo_wr_en <= 'b0; + end +end + +always @(posedge rx_data_clk) begin + if (rx_data_clk_rst) begin + fifo_rd_en <= 1'b0; + end + else begin + fifo_rd_en <= &{~rx_fifo_empty_1, ~rx_fifo_empty_2, ~rx_fifo_empty_3, ~rx_fifo_empty_4}; + end +end + +ad9361_fifo u_rx_fifo_ch1_i +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_4x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx1_data_i ), // input wire [11 : 0] din + .wr_en (fifo_wr_en ), // input wire wr_en + .rd_en (fifo_rd_en ), // input wire rd_en + .dout (rx_ch1_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_1) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch1_q +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_4x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx1_data_q ), // input wire [11 : 0] din + .wr_en (fifo_wr_en ), // input wire wr_en + .rd_en (fifo_rd_en ), // input wire rd_en + .dout (rx_ch1_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_2) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch2_i +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_4x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx2_data_i ), // input wire [11 : 0] din + .wr_en (fifo_wr_en ), // input wire wr_en + .rd_en (fifo_rd_en ), // input wire rd_en + .dout (rx_ch2_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_3) // output wire empty +); + +ad9361_fifo u_rx_fifo_ch2_q +( + .rst (rx_fifo_rst ), // input wire rst + .wr_clk (clk_4x_in ), // input wire wr_clk + .rd_clk (rx_data_clk ), // input wire rd_clk + .din (rx2_data_q ), // input wire [11 : 0] din + .wr_en (fifo_wr_en ), // input wire wr_en + .rd_en (fifo_rd_en ), // input wire rd_en + .dout (rx_ch2_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty (rx_fifo_empty_4) // output wire empty +); + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_dual.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_dual.v new file mode 100644 index 00000000..7fb0b8a8 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_dual.v @@ -0,0 +1,183 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/07/01 16:39:19 +// Last Modified Date: 2023/03/06 11:45 +// Design Name: +// Module Name: ad9361_tx_map_cmos_dual +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_tx_map_cmos_dual +( + input clk_2x_in , + input clk_in_rst , + + input tx_data_clk , + input tx_data_clk_rst , + + input [11:0] tx_ch1_i , + input [11:0] tx_ch1_q , + input [11:0] tx_ch2_i , + input [11:0] tx_ch2_q , + + output clk_out , + output tx_frame , + output [11:0] tx_data +); + +genvar m; + +// input data fifo +reg rx_fifo_rd_en = 'b0; +wire [11:0] tx_fifo_ch1_i; +wire [11:0] tx_fifo_ch1_q; +wire [11:0] tx_fifo_ch2_i; +wire [11:0] tx_fifo_ch2_q; + +always @(posedge clk_2x_in) begin + if (clk_in_rst) begin + rx_fifo_rd_en <= 'b0; + end + else begin + rx_fifo_rd_en <= ~rx_fifo_rd_en; + end +end + +ad9361_fifo u_tx_fifo_ch1_i +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_2x_in ), // input wire rd_clk + .din (tx_ch1_i ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch1_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch1_q +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_2x_in ), // input wire rd_clk + .din (tx_ch1_q ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch1_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch2_i +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_2x_in ), // input wire rd_clk + .din (tx_ch2_i ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch2_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch2_q +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_2x_in ), // input wire rd_clk + .din (tx_ch2_q ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch2_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +// frame and data control +reg tx_frame_i = 'b0; +reg tx_frame_q = 'b0; +reg [11:0] tx_data_i = 'b0; +reg [11:0] tx_data_q = 'b0; + +always @(posedge clk_2x_in) begin + if (clk_in_rst) begin + tx_frame_i <= 'b0; + tx_frame_q <= 'b0; + tx_data_i <= 'b0; + tx_data_q <= 'b0; + end + else if (rx_fifo_rd_en == 1'b0) begin + tx_frame_i <= 1'b1; + tx_frame_q <= 1'b1; + tx_data_i <= tx_fifo_ch1_i; + tx_data_q <= tx_fifo_ch1_q; + end + else begin + tx_frame_i <= 1'b0; + tx_frame_q <= 1'b0; + tx_data_i <= tx_fifo_ch2_i; + tx_data_q <= tx_fifo_ch2_q; + end +end + +// output clock to port +assign clk_out = clk_2x_in; + +// output tx frame to port +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_frame_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_2x_in ), + .D1 (tx_frame_i ), + .D2 (tx_frame_q ), + .Q (tx_frame ) +); + +// output tx data to port +generate +for (m=0; m<12; m=m+1) begin: tx_data_oddr + +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_data_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_2x_in ), + .D1 (tx_data_i[m] ), + .D2 (tx_data_q[m] ), + .Q (tx_data[m] ) +); + +end +endgenerate + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_single.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_single.v new file mode 100644 index 00000000..ad614384 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_cmos_single.v @@ -0,0 +1,119 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/07/01 16:39:19 +// Design Name: +// Module Name: ad9361_tx_mapping_single +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_tx_map_cmos_single +( + input clk_in , + input clk_in_rst , + + input tx_data_clk , + input tx_data_clk_rst , + + input [11:0] tx_data_i , + input [11:0] tx_data_q , + + output clk_out , + output tx_frame , + output [11:0] tx_data +); + +genvar m; + +// inout data fifo +wire [11:0] tx_fifo_i; +wire [11:0] tx_fifo_q; + +ad9361_fifo u_tx_fifo_i +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_in ), // input wire rd_clk + .din (tx_data_i ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (1'b1 ), // input wire rd_en + .dout (tx_fifo_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_q +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_in ), // input wire rd_clk + .din (tx_data_q ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (1'b1 ), // input wire rd_en + .dout (tx_fifo_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +// frame and data control +assign tx_frame_i = 1'b1; +assign tx_frame_q = 1'b0; + +// output clock to port +assign clk_out = clk_in; + +// output tx frame to port +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_frame_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_in ), + .D1 (tx_frame_i ), + .D2 (tx_frame_q ), + .Q (tx_frame ) +); + +// output tx data to port +generate +for (m=0; m<12; m=m+1) begin: tx_data_oddr + +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_data_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_in ), + .D1 (tx_fifo_i[m] ), + .D2 (tx_fifo_q[m] ), + .Q (tx_data[m] ) +); + +end +endgenerate + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_lvds_dual.v b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_lvds_dual.v new file mode 100644 index 00000000..0775eb88 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.srcs/sources_1/new/ad9361_tx_map_lvds_dual.v @@ -0,0 +1,246 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2023/03/05 23:21:27 +// Last Modified Date: 2023/03/06 11:01 +// Design Name: +// Module Name: ad9361_tx_map_lvds_dual +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module ad9361_tx_map_lvds_dual +( + input clk_4x_in , + input clk_in_rst , + + input tx_data_clk , + input tx_data_clk_rst , + + input [11:0] tx_ch1_i , + input [11:0] tx_ch1_q , + input [11:0] tx_ch2_i , + input [11:0] tx_ch2_q , + + output clk_out_p , + output clk_out_n , + output tx_frame_p , + output tx_frame_n , + output [ 5:0] tx_data_p , + output [ 5:0] tx_data_n +); + +genvar m; + +// input data fifo +reg [1:0] tx_control_cnt = 'b0; +reg rx_fifo_rd_en = 'b0; +wire [11:0] tx_fifo_ch1_i; +wire [11:0] tx_fifo_ch1_q; +wire [11:0] tx_fifo_ch2_i; +wire [11:0] tx_fifo_ch2_q; + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + tx_control_cnt <= 'b0; + end + else begin + tx_control_cnt <= tx_control_cnt + 1'b1; + end +end + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + rx_fifo_rd_en <= 'b0; + end + else if (tx_control_cnt == 2'd2) begin + rx_fifo_rd_en <= 1'b1; + end + else begin + rx_fifo_rd_en <= 'b0; + end +end + +ad9361_fifo u_tx_fifo_ch1_i +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_4x_in ), // input wire rd_clk + .din (tx_ch1_i ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch1_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch1_q +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_4x_in ), // input wire rd_clk + .din (tx_ch1_q ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch1_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch2_i +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_4x_in ), // input wire rd_clk + .din (tx_ch2_i ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch2_i ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + +ad9361_fifo u_tx_fifo_ch2_q +( + .rst (clk_in_rst ), // input wire rst + .wr_clk (tx_data_clk ), // input wire wr_clk + .rd_clk (clk_4x_in ), // input wire rd_clk + .din (tx_ch2_q ), // input wire [11 : 0] din + .wr_en (1'b1 ), // input wire wr_en + .rd_en (rx_fifo_rd_en ), // input wire rd_en + .dout (tx_fifo_ch2_q ), // output wire [11 : 0] dout + .full ( ), // output wire full + .empty ( ) // output wire empty +); + + +// frame and data control +reg tx_frame_r = 'b0; // rising edge data +reg tx_frame_f = 'b0; // falling edge data +reg [5:0] tx_data_r = 'b0; +reg [5:0] tx_data_f = 'b0; + +always @(posedge clk_4x_in) begin + if (clk_in_rst) begin + tx_frame_r <= 'b0; + tx_frame_f <= 'b0; + tx_data_r <= 'b0; + tx_data_f <= 'b0; + end + else begin + case (tx_control_cnt) + 2'd0: begin + tx_frame_r <= 1'b1; + tx_frame_f <= 1'b1; + tx_data_r <= tx_fifo_ch1_i[11: 6]; + tx_data_f <= tx_fifo_ch1_q[11: 6]; + end + 2'd1: begin + tx_frame_r <= 1'b1; + tx_frame_f <= 1'b1; + tx_data_r <= tx_fifo_ch1_i[5:0]; + tx_data_f <= tx_fifo_ch1_q[5:0]; + end + 2'd2: begin + tx_frame_r <= 1'b0; + tx_frame_f <= 1'b0; + tx_data_r <= tx_fifo_ch2_i[11:6]; + tx_data_f <= tx_fifo_ch2_q[11:6]; + end + 2'd3: begin + tx_frame_r <= 1'b0; + tx_frame_f <= 1'b0; + tx_data_r <= tx_fifo_ch2_i[5:0]; + tx_data_f <= tx_fifo_ch2_q[5:0]; + end + default: begin + tx_frame_r <= 'b0; + tx_frame_f <= 'b0; + tx_data_r <= 'b0; + tx_data_f <= 'b0; + end + endcase + end +end + +// output clock to port +wire clk_out; +assign clk_out = clk_4x_in; + +OBUFDS u_obufds_clk_out +( + .I (clk_out ), + .O (clk_out_p ), + .OB (clk_out_n ) +); + +// output tx frame to port +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_frame_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_4x_in ), + .D1 (tx_frame_r ), + .D2 (tx_frame_f ), + .Q (tx_frame ) +); + +OBUFDS u_obufds_tx_frame +( + .I (tx_frame ), + .O (tx_frame_p ), + .OB (tx_frame_n ) +); + +// output tx data to port +wire [5:0] tx_data; + +generate +for (m=0; m<6; m=m+1) begin: tx_data_oddr + +ODDR #( + .DDR_CLK_EDGE ("SAME_EDGE" ), + .INIT (1'b0 ), + .SRTYPE ("ASYNC" ) +) u_tx_data_oddr ( + .CE (1'b1 ), + .R (1'b0 ), + .S (1'b0 ), + .C (clk_4x_in ), + .D1 (tx_data_r[m] ), + .D2 (tx_data_f[m] ), + .Q (tx_data[m] ) +); + +OBUFDS u_obufds_tx_data +( + .I (tx_data[m] ), + .O (tx_data_p[m] ), + .OB (tx_data_n[m] ) +); + +end +endgenerate + +endmodule diff --git a/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.xpr b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.xpr new file mode 100644 index 00000000..ab7f5d95 --- /dev/null +++ b/modules/xc7z100ffg900-2/ad9361_mapping/ad9361_mapping.xpr @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default_dashboard + + + diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/cmpy_18x8/cmpy_18x8.xci b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/cmpy_18x8/cmpy_18x8.xci new file mode 100644 index 00000000..bc2adb7a --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/cmpy_18x8/cmpy_18x8.xci @@ -0,0 +1,212 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "cmpy_18x8", + "component_reference": "xilinx.com:ip:cmpy:6.0", + "ip_revision": "22", + "gen_directory": "../../../../tx_qpsk.gen/sources_1/ip/cmpy_18x8", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "cmpy_18x8", "resolve_type": "user", "usage": "all" } ], + "APortWidth": [ { "value": "18", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "HasATLAST": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "HasATUSER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ATUSERWidth": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BPortWidth": [ { "value": "8", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "HasBTLAST": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "HasBTUSER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "BTUSERWidth": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "MultType": [ { "value": "Use_LUTs", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "OptimizeGoal": [ { "value": "Resources", "resolve_type": "user", "usage": "all" } ], + "FlowControl": [ { "value": "NonBlocking", "resolve_type": "user", "usage": "all" } ], + "RoundMode": [ { "value": "Truncate", "resolve_type": "user", "usage": "all" } ], + "OutputWidth": [ { "value": "27", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "HasCTRLTLAST": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "HasCTRLTUSER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "CTRLTUSERWidth": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "OutTLASTBehv": [ { "value": "Null", "resolve_type": "user", "usage": "all" } ], + "LatencyConfig": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "MinimumLatency": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ARESETN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ] + }, + "model_parameters": { + "C_VERBOSITY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_XDEVICEFAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_XDEVICE": [ { "value": "xc7z100", "resolve_type": "generated", "usage": "all" } ], + "C_A_WIDTH": [ { "value": "18", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_B_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUT_WIDTH": [ { "value": "27", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MULT_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPTIMIZE_GOAL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "HAS_NEGATE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "SINGLE_OUTPUT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "ROUND": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "USE_DSP_CASCADES": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_THROTTLE_SCHEME": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_A_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_A_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_B_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_B_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_CTRL_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_AXIS_CTRL_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_TLAST_RESOLUTION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_A_TDATA_WIDTH": [ { "value": "48", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_A_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_B_TDATA_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_B_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_CTRL_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_AXIS_CTRL_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_AXIS_DOUT_TDATA_WIDTH": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_AXIS_DOUT_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z100" } ], + "PACKAGE": [ { "value": "ffg900" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "22" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk.gen/sources_1/ip/cmpy_18x8" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_a_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_a_tdata": [ { "direction": "in", "size_left": "47", "size_right": "0", "driver_value": "0" } ], + "s_axis_b_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_b_tdata": [ { "direction": "in", "size_left": "15", "size_right": "0", "driver_value": "0" } ], + "m_axis_dout_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_dout_tdata": [ { "direction": "out", "size_left": "63", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "M_AXIS_DOUT": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "8", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_dout_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_dout_tvalid" } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S_AXIS_CTRL:S_AXIS_B:S_AXIS_A:M_AXIS_DOUT", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "10000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "S_AXIS_A": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "6", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_a_tdata" } ], + "TVALID": [ { "physical_name": "s_axis_a_tvalid" } ] + } + }, + "S_AXIS_B": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "2", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_b_tdata" } ], + "TVALID": [ { "physical_name": "s_axis_b_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/hrc_64_12_025.coe b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/hrc_64_12_025.coe new file mode 100644 index 00000000..64167ba1 --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/hrc_64_12_025.coe @@ -0,0 +1,771 @@ +RADIX = 10; +COEFDATA = +-47, +-30, +-13, +4, +21, +38, +56, +73, +89, +106, +122, +138, +153, +168, +182, +196, +209, +221, +232, +243, +252, +261, +268, +275, +281, +285, +289, +291, +292, +292, +291, +288, +285, +280, +274, +267, +259, +249, +239, +228, +215, +202, +187, +172, +156, +139, +122, +104, +85, +66, +46, +26, +5, +-15, +-36, +-56, +-77, +-98, +-118, +-138, +-158, +-177, +-195, +-213, +-231, +-247, +-263, +-277, +-291, +-303, +-314, +-325, +-333, +-341, +-347, +-351, +-354, +-356, +-356, +-354, +-351, +-346, +-340, +-332, +-322, +-311, +-298, +-284, +-268, +-250, +-231, +-211, +-189, +-166, +-142, +-117, +-90, +-63, +-35, +-6, +24, +54, +85, +116, +147, +179, +210, +242, +273, +304, +334, +363, +392, +420, +447, +473, +497, +520, +542, +562, +580, +596, +611, +623, +633, +641, +647, +650, +650, +649, +644, +637, +627, +615, +600, +582, +562, +538, +513, +484, +453, +419, +383, +345, +304, +261, +216, +169, +119, +69, +16, +-38, +-93, +-150, +-207, +-265, +-324, +-383, +-443, +-502, +-562, +-621, +-679, +-736, +-793, +-848, +-902, +-954, +-1004, +-1052, +-1097, +-1140, +-1181, +-1218, +-1252, +-1283, +-1310, +-1333, +-1353, +-1369, +-1380, +-1387, +-1389, +-1387, +-1381, +-1369, +-1353, +-1332, +-1306, +-1274, +-1238, +-1197, +-1151, +-1100, +-1044, +-983, +-918, +-848, +-773, +-694, +-611, +-524, +-432, +-337, +-239, +-137, +-33, +74, +184, +296, +410, +525, +642, +759, +877, +995, +1113, +1230, +1346, +1461, +1575, +1686, +1794, +1900, +2002, +2101, +2195, +2285, +2371, +2451, +2525, +2593, +2655, +2711, +2759, +2800, +2833, +2859, +2876, +2885, +2886, +2877, +2860, +2833, +2798, +2752, +2698, +2633, +2559, +2476, +2382, +2280, +2168, +2046, +1915, +1775, +1627, +1469, +1304, +1130, +948, +759, +563, +360, +151, +-64, +-284, +-509, +-739, +-972, +-1208, +-1447, +-1687, +-1929, +-2172, +-2414, +-2656, +-2896, +-3133, +-3368, +-3600, +-3826, +-4048, +-4263, +-4472, +-4673, +-4866, +-5050, +-5224, +-5387, +-5539, +-5679, +-5807, +-5920, +-6020, +-6104, +-6173, +-6226, +-6262, +-6281, +-6282, +-6264, +-6228, +-6171, +-6096, +-5999, +-5882, +-5745, +-5585, +-5405, +-5203, +-4978, +-4732, +-4464, +-4174, +-3861, +-3527, +-3170, +-2792, +-2392, +-1971, +-1529, +-1066, +-582, +-79, +444, +985, +1545, +2123, +2717, +3328, +3955, +4597, +5253, +5921, +6603, +7295, +7998, +8711, +9432, +10160, +10895, +11635, +12379, +13126, +13875, +14624, +15374, +16121, +16866, +17607, +18342, +19071, +19793, +20505, +21208, +21900, +22579, +23245, +23896, +24532, +25151, +25752, +26334, +26896, +27438, +27957, +28455, +28928, +29377, +29801, +30200, +30571, +30915, +31232, +31520, +31779, +32009, +32209, +32379, +32518, +32627, +32704, +32751, +32767, +32751, +32704, +32627, +32518, +32379, +32209, +32009, +31779, +31520, +31232, +30915, +30571, +30200, +29801, +29377, +28928, +28455, +27957, +27438, +26896, +26334, +25752, +25151, +24532, +23896, +23245, +22579, +21900, +21208, +20505, +19793, +19071, +18342, +17607, +16866, +16121, +15374, +14624, +13875, +13126, +12379, +11635, +10895, +10160, +9432, +8711, +7998, +7295, +6603, +5921, +5253, +4597, +3955, +3328, +2717, +2123, +1545, +985, +444, +-79, +-582, +-1066, +-1529, +-1971, +-2392, +-2792, +-3170, +-3527, +-3861, +-4174, +-4464, +-4732, +-4978, +-5203, +-5405, +-5585, +-5745, +-5882, +-5999, +-6096, +-6171, +-6228, +-6264, +-6282, +-6281, +-6262, +-6226, +-6173, +-6104, +-6020, +-5920, +-5807, +-5679, +-5539, +-5387, +-5224, +-5050, +-4866, +-4673, +-4472, +-4263, +-4048, +-3826, +-3600, +-3368, +-3133, +-2896, +-2656, +-2414, +-2172, +-1929, +-1687, +-1447, +-1208, +-972, +-739, +-509, +-284, +-64, +151, +360, +563, +759, +948, +1130, +1304, +1469, +1627, +1775, +1915, +2046, +2168, +2280, +2382, +2476, +2559, +2633, +2698, +2752, +2798, +2833, +2860, +2877, +2886, +2885, +2876, +2859, +2833, +2800, +2759, +2711, +2655, +2593, +2525, +2451, +2371, +2285, +2195, +2101, +2002, +1900, +1794, +1686, +1575, +1461, +1346, +1230, +1113, +995, +877, +759, +642, +525, +410, +296, +184, +74, +-33, +-137, +-239, +-337, +-432, +-524, +-611, +-694, +-773, +-848, +-918, +-983, +-1044, +-1100, +-1151, +-1197, +-1238, +-1274, +-1306, +-1332, +-1353, +-1369, +-1381, +-1387, +-1389, +-1387, +-1380, +-1369, +-1353, +-1333, +-1310, +-1283, +-1252, +-1218, +-1181, +-1140, +-1097, +-1052, +-1004, +-954, +-902, +-848, +-793, +-736, +-679, +-621, +-562, +-502, +-443, +-383, +-324, +-265, +-207, +-150, +-93, +-38, +16, +69, +119, +169, +216, +261, +304, +345, +383, +419, +453, +484, +513, +538, +562, +582, +600, +615, +627, +637, +644, +649, +650, +650, +647, +641, +633, +623, +611, +596, +580, +562, +542, +520, +497, +473, +447, +420, +392, +363, +334, +304, +273, +242, +210, +179, +147, +116, +85, +54, +24, +-6, +-35, +-63, +-90, +-117, +-142, +-166, +-189, +-211, +-231, +-250, +-268, +-284, +-298, +-311, +-322, +-332, +-340, +-346, +-351, +-354, +-356, +-356, +-354, +-351, +-347, +-341, +-333, +-325, +-314, +-303, +-291, +-277, +-263, +-247, +-231, +-213, +-195, +-177, +-158, +-138, +-118, +-98, +-77, +-56, +-36, +-15, +5, +26, +46, +66, +85, +104, +122, +139, +156, +172, +187, +202, +215, +228, +239, +249, +259, +267, +274, +280, +285, +288, +291, +292, +292, +291, +289, +285, +281, +275, +268, +261, +252, +243, +232, +221, +209, +196, +182, +168, +153, +138, +122, +106, +89, +73, +56, +38, +21, +4, +-13, +-30, +-47; diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/sweep_freq.coe b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/sweep_freq.coe new file mode 100644 index 00000000..e6b436de --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/coe/sweep_freq.coe @@ -0,0 +1,258 @@ +MEMORY_INITIALIZATION_RADIX = 10; +MEMORY_INITIALIZATION_VECTOR = +-2147483647, +-2130640638, +-2113797629, +-2096954620, +-2080111611, +-2063268602, +-2046425593, +-2029582584, +-2012739575, +-1995896566, +-1979053557, +-1962210548, +-1945367539, +-1928524530, +-1911681521, +-1894838512, +-1877995503, +-1861152494, +-1844309485, +-1827466476, +-1810623467, +-1793780458, +-1776937449, +-1760094440, +-1743251431, +-1726408422, +-1709565413, +-1692722404, +-1675879395, +-1659036386, +-1642193377, +-1625350368, +-1608507359, +-1591664350, +-1574821341, +-1557978332, +-1541135323, +-1524292314, +-1507449305, +-1490606296, +-1473763287, +-1456920278, +-1440077269, +-1423234260, +-1406391251, +-1389548242, +-1372705233, +-1355862224, +-1339019215, +-1322176206, +-1305333197, +-1288490188, +-1271647179, +-1254804170, +-1237961161, +-1221118152, +-1204275143, +-1187432134, +-1170589125, +-1153746116, +-1136903107, +-1120060098, +-1103217089, +-1086374080, +-1069531071, +-1052688062, +-1035845053, +-1019002044, +-1002159035, +-985316026, +-968473017, +-951630008, +-934786999, +-917943990, +-901100981, +-884257972, +-867414963, +-850571954, +-833728945, +-816885936, +-800042927, +-783199918, +-766356909, +-749513900, +-732670891, +-715827882, +-698984873, +-682141864, +-665298855, +-648455846, +-631612837, +-614769828, +-597926819, +-581083810, +-564240801, +-547397792, +-530554783, +-513711774, +-496868765, +-480025756, +-463182747, +-446339738, +-429496729, +-412653720, +-395810711, +-378967702, +-362124693, +-345281684, +-328438675, +-311595666, +-294752657, +-277909648, +-261066639, +-244223630, +-227380621, +-210537612, +-193694603, +-176851594, +-160008585, +-143165576, +-126322567, +-109479558, +-92636549, +-75793540, +-58950531, +-42107522, +-25264513, +-8421504, +8421504, +25264513, +42107522, +58950531, +75793540, +92636549, +109479558, +126322567, +143165576, +160008585, +176851594, +193694603, +210537612, +227380621, +244223630, +261066639, +277909648, +294752657, +311595666, +328438675, +345281684, +362124693, +378967702, +395810711, +412653720, +429496729, +446339738, +463182747, +480025756, +496868765, +513711774, +530554783, +547397792, +564240801, +581083810, +597926819, +614769828, +631612837, +648455846, +665298855, +682141864, +698984873, +715827882, +732670891, +749513900, +766356909, +783199918, +800042927, +816885936, +833728945, +850571954, +867414963, +884257972, +901100981, +917943990, +934786999, +951630008, +968473017, +985316026, +1002159035, +1019002044, +1035845053, +1052688062, +1069531071, +1086374080, +1103217089, +1120060098, +1136903107, +1153746116, +1170589125, +1187432134, +1204275143, +1221118152, +1237961161, +1254804170, +1271647179, +1288490188, +1305333197, +1322176206, +1339019215, +1355862224, +1372705233, +1389548242, +1406391251, +1423234260, +1440077269, +1456920278, +1473763287, +1490606296, +1507449305, +1524292314, +1541135323, +1557978332, +1574821341, +1591664350, +1608507359, +1625350368, +1642193377, +1659036386, +1675879395, +1692722404, +1709565413, +1726408422, +1743251431, +1760094440, +1776937449, +1793780458, +1810623467, +1827466476, +1844309485, +1861152494, +1877995503, +1894838512, +1911681521, +1928524530, +1945367539, +1962210548, +1979053557, +1995896566, +2012739575, +2029582584, +2046425593, +2063268602, +2080111611, +2096954620, +2113797629, +2130640638, +2147483647; diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/dds_32b_8b/dds_32b_8b.xci b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/dds_32b_8b/dds_32b_8b.xci new file mode 100644 index 00000000..28c011f9 --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/dds_32b_8b/dds_32b_8b.xci @@ -0,0 +1,355 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "dds_32b_8b", + "component_reference": "xilinx.com:ip:dds_compiler:6.0", + "ip_revision": "23", + "gen_directory": "../../../../tx_qpsk.gen/sources_1/ip/dds_32b_8b", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "dds_32b_8b", "resolve_type": "user", "usage": "all" } ], + "PartsPresent": [ { "value": "Phase_Generator_and_SIN_COS_LUT", "resolve_type": "user", "usage": "all" } ], + "DDS_Clock_Rate": [ { "value": "100", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Channels": [ { "value": "1", "resolve_type": "user", "usage": "all" } ], + "Mode_of_Operation": [ { "value": "Standard", "resolve_type": "user", "usage": "all" } ], + "Modulus": [ { "value": "9", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Parameter_Entry": [ { "value": "Hardware_Parameters", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Spurious_Free_Dynamic_Range": [ { "value": "45", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Frequency_Resolution": [ { "value": "0.4", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Noise_Shaping": [ { "value": "None", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Phase_Width": [ { "value": "32", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Output_Width": [ { "value": "8", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Phase_Increment": [ { "value": "Programmable", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Resync": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Phase_offset": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Output_Selection": [ { "value": "Sine_and_Cosine", "resolve_type": "user", "usage": "all" } ], + "Negative_Sine": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Negative_Cosine": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Amplitude_Mode": [ { "value": "Full_Range", "resolve_type": "user", "usage": "all" } ], + "Memory_Type": [ { "value": "Auto", "resolve_type": "user", "usage": "all" } ], + "Optimization_Goal": [ { "value": "Auto", "resolve_type": "user", "usage": "all" } ], + "DSP48_Use": [ { "value": "Minimal", "resolve_type": "user", "usage": "all" } ], + "Has_Phase_Out": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "DATA_Has_TLAST": [ { "value": "Not_Required", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Has_TREADY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_PHASE_Has_TUSER": [ { "value": "Not_Required", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "S_PHASE_TUSER_Width": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "M_DATA_Has_TUSER": [ { "value": "Not_Required", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "M_PHASE_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "S_CONFIG_Sync_Mode": [ { "value": "On_Vector", "resolve_type": "user", "usage": "all" } ], + "OUTPUT_FORM": [ { "value": "Twos_Complement", "resolve_type": "user", "usage": "all" } ], + "Latency_Configuration": [ { "value": "Auto", "resolve_type": "user", "usage": "all" } ], + "Latency": [ { "value": "3", "resolve_type": "user", "usage": "all" } ], + "Has_ARESETn": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Has_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Output_Frequency1": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC1": [ { "value": "1101000110110111", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles1": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF1": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency2": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC2": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles2": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF2": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency3": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC3": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles3": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF3": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency4": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC4": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles4": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF4": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency5": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC5": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles5": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF5": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency6": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC6": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles6": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF6": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency7": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC7": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles7": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF7": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency8": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC8": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles8": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF8": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency9": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC9": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles9": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF9": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency10": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC10": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles10": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF10": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency11": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC11": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles11": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF11": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency12": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC12": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles12": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF12": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency13": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC13": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles13": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF13": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency14": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC14": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles14": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF14": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency15": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC15": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles15": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF15": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Output_Frequency16": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "PINC16": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "Phase_Offset_Angles16": [ { "value": "0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "POFF16": [ { "value": "0", "resolve_type": "user", "usage": "all" } ], + "POR_mode": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "GUI_Behaviour": [ { "value": "Coregen", "resolve_type": "user", "usage": "all" } ], + "explicit_period": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "period": [ { "value": "1", "resolve_type": "user", "format": "float", "usage": "all" } ] + }, + "model_parameters": { + "C_XDEVICEFAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_MODE_OF_OPERATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MODULUS": [ { "value": "9", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ACCUMULATOR_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHANNELS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PHASE_OUT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_PHASEGEN": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_SINCOS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_TYPE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NEGATIVE_COSINE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NEGATIVE_SINE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NOISE_SHAPING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUTS_REQUIRED": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_FORM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PHASE_ANGLE_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PHASE_INCREMENT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PHASE_INCREMENT_VALUE": [ { "value": "1101000110110111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_RESYNC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PHASE_OFFSET": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PHASE_OFFSET_VALUE": [ { "value": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMISE_GOAL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_DSP48": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_POR_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AMPLITUDE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_TREADY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_PHASE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_PHASE_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_PHASE_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_PHASE_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_S_CONFIG": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_CONFIG_SYNC_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_CONFIG_TDATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_M_DATA": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TDATA_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_M_PHASE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_PHASE_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_PHASE_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_PHASE_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DEBUG_INTERFACE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHAN_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z100" } ], + "PACKAGE": [ { "value": "ffg900" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "23" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk.gen/sources_1/ip/dds_32b_8b" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_config_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_config_tdata": [ { "direction": "in", "size_left": "31", "size_right": "0", "driver_value": "0" } ], + "m_axis_data_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_data_tdata": [ { "direction": "out", "size_left": "15", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "event_pinc_invalid_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_poff_invalid_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_phase_in_invalid_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_phase_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_phase_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_phase_chanid_incorrect_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "M_AXIS_PHASE:S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_PHASE", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "M_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "2", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_data_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_data_tvalid" } ] + } + }, + "S_AXIS_CONFIG": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "4", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_config_tdata" } ], + "TVALID": [ { "physical_name": "s_axis_config_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hop_rom/hop_rom.xci b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hop_rom/hop_rom.xci new file mode 100644 index 00000000..769bab6c --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hop_rom/hop_rom.xci @@ -0,0 +1,252 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "hop_rom", + "component_reference": "xilinx.com:ip:blk_mem_gen:8.4", + "ip_revision": "7", + "gen_directory": "../../../../tx_qpsk.gen/sources_1/ip/hop_rom", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "hop_rom", "resolve_type": "user", "usage": "all" } ], + "Interface_Type": [ { "value": "Native", "resolve_type": "user", "usage": "all" } ], + "AXI_Type": [ { "value": "AXI4_Full", "resolve_type": "user", "usage": "all" } ], + "AXI_Slave_Type": [ { "value": "Memory_Slave", "resolve_type": "user", "usage": "all" } ], + "Use_AXI_ID": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "AXI_ID_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "Memory_Type": [ { "value": "Single_Port_ROM", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_32bit_Address": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "ecctype": [ { "value": "No_ECC", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "ECC": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "EN_SLEEP_PIN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "EN_DEEPSLEEP_PIN": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "EN_SHUTDOWN_PIN": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "EN_ECC_PIPE": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "RD_ADDR_CHNG_A": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "RD_ADDR_CHNG_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Use_Error_Injection_Pins": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Error_Injection_Type": [ { "value": "Single_Bit_Error_Injection", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Use_Byte_Write_Enable": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Byte_Size": [ { "value": "9", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Algorithm": [ { "value": "Minimum_Area", "resolve_type": "user", "usage": "all" } ], + "Primitive": [ { "value": "8kx2", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Assume_Synchronous_Clk": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Write_Width_A": [ { "value": "32", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Write_Depth_A": [ { "value": "256", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Read_Width_A": [ { "value": "32", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Operating_Mode_A": [ { "value": "WRITE_FIRST", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_A": [ { "value": "Always_Enabled", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Write_Width_B": [ { "value": "32", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Read_Width_B": [ { "value": "32", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Operating_Mode_B": [ { "value": "WRITE_FIRST", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Enable_B": [ { "value": "Always_Enabled", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Register_PortA_Output_of_Memory_Primitives": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Register_PortA_Output_of_Memory_Core": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Use_REGCEA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Register_PortB_Output_of_Memory_Primitives": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Register_PortB_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "register_porta_input_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "register_portb_output_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Pipeline_Stages": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Load_Init_File": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coe_File": [ { "value": "../coe/sweep_freq.coe", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Fill_Remaining_Memory_Locations": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Remaining_Memory_Locations": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Use_RSTA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Memory_Latch_A": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Reset_Priority_A": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Output_Reset_Value_A": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Use_RSTB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Reset_Type": [ { "value": "SYNC", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Additional_Inputs_for_Power_Estimation": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Port_A_Clock": [ { "value": "100", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Port_A_Write_Rate": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Port_B_Clock": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Port_B_Write_Rate": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Port_A_Enable_Rate": [ { "value": "100", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Port_B_Enable_Rate": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Collision_Warnings": [ { "value": "ALL", "resolve_type": "user", "enabled": false, "usage": "all" } ], + "Disable_Collision_Warnings": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Disable_Out_of_Range_Warnings": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "use_bram_block": [ { "value": "Stand_Alone", "resolve_type": "user", "usage": "all" } ], + "MEM_FILE": [ { "value": "no_mem_loaded", "resolve_type": "user", "usage": "all" } ], + "CTRL_ECC_ALGO": [ { "value": "NONE", "resolve_type": "user", "usage": "all" } ], + "EN_SAFETY_CKT": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ], + "READ_LATENCY_A": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ], + "READ_LATENCY_B": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ] + }, + "model_parameters": { + "C_FAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_XDEVICEFAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_ELABORATION_DIR": [ { "value": "./", "resolve_type": "generated", "usage": "all" } ], + "C_INTERFACE_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_TYPE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_SLAVE_TYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_BRAM_BLOCK": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ENABLE_32BIT_ADDRESS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CTRL_ECC_ALGO": [ { "value": "NONE", "resolve_type": "generated", "usage": "all" } ], + "C_HAS_AXI_ID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_AXI_ID_WIDTH": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_TYPE": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_BYTE_SIZE": [ { "value": "9", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ALGORITHM": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_PRIM_TYPE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LOAD_INIT_FILE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INIT_FILE_NAME": [ { "value": "hop_rom.mif", "resolve_type": "generated", "usage": "all" } ], + "C_INIT_FILE": [ { "value": "hop_rom.mem", "resolve_type": "generated", "usage": "all" } ], + "C_USE_DEFAULT_DATA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DEFAULT_DATA": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_HAS_RSTA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RST_PRIORITY_A": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ], + "C_RSTRAM_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INITA_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_HAS_ENA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_REGCEA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_BYTE_WEA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WEA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WRITE_MODE_A": [ { "value": "WRITE_FIRST", "resolve_type": "generated", "usage": "all" } ], + "C_WRITE_WIDTH_A": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_WIDTH_A": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WRITE_DEPTH_A": [ { "value": "256", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_DEPTH_A": [ { "value": "256", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ADDRA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_RSTB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RST_PRIORITY_B": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ], + "C_RSTRAM_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INITB_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_HAS_ENB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_REGCEB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_BYTE_WEB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WEB_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WRITE_MODE_B": [ { "value": "WRITE_FIRST", "resolve_type": "generated", "usage": "all" } ], + "C_WRITE_WIDTH_B": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_WIDTH_B": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_WRITE_DEPTH_B": [ { "value": "256", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_DEPTH_B": [ { "value": "256", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ADDRB_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MEM_OUTPUT_REGS_A": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MUX_OUTPUT_REGS_A": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_MUX_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MUX_PIPELINE_STAGES": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_SOFTECC_INPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_SOFTECC_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_SOFTECC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_ECC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_ECC_PIPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_LATENCY_A": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_READ_LATENCY_B": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_INJECTERR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SIM_COLLISION_CHECK": [ { "value": "ALL", "resolve_type": "generated", "usage": "all" } ], + "C_COMMON_CLK": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DISABLE_WARN_BHV_COLL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_SLEEP_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_USE_URAM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_RDADDRA_CHG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_RDADDRB_CHG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_DEEPSLEEP_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_SHUTDOWN_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_EN_SAFETY_CKT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DISABLE_WARN_BHV_RANGE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COUNT_36K_BRAM": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_COUNT_18K_BRAM": [ { "value": "1", "resolve_type": "generated", "usage": "all" } ], + "C_EST_POWER_SUMMARY": [ { "value": "Estimated Power for IP : 3.375199 mW", "resolve_type": "generated", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z100" } ], + "PACKAGE": [ { "value": "ffg900" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "7" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk.gen/sources_1/ip/hop_rom" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "clka": [ { "direction": "in", "driver_value": "0" } ], + "addra": [ { "direction": "in", "size_left": "7", "size_right": "0", "driver_value": "0" } ], + "douta": [ { "direction": "out", "size_left": "31", "size_right": "0" } ] + }, + "interfaces": { + "CLK.ACLK": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "s_aresetn", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "RST.ARESETN": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "BRAM_PORTA": { + "vlnv": "xilinx.com:interface:bram:1.0", + "abstraction_type": "xilinx.com:interface:bram_rtl:1.0", + "mode": "slave", + "parameters": { + "MEM_SIZE": [ { "value": "8192", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "MEM_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "MEM_ECC": [ { "value": "NONE", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "MASTER_TYPE": [ { "value": "OTHER", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "READ_WRITE_MODE": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "READ_LATENCY": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "ADDR": [ { "physical_name": "addra" } ], + "CLK": [ { "physical_name": "clka" } ], + "DOUT": [ { "physical_name": "douta" } ] + } + } + }, + "memory_maps": { + "S_1": { + "address_blocks": { + "Mem0": { + "base_address": "0", + "range": "4096", + "usage": "memory", + "access": "read-write", + "parameters": { + "OFFSET_BASE_PARAM": [ { "value": "C_BASEADDR" } ], + "OFFSET_HIGH_PARAM": [ { "value": "C_HIGHADDR" } ] + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci new file mode 100644 index 00000000..9305237f --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci @@ -0,0 +1,349 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "hrc_64_12_025", + "component_reference": "xilinx.com:ip:fir_compiler:7.2", + "ip_revision": "20", + "gen_directory": "../../../../tx_qpsk.gen/sources_1/ip/hrc_64_12_025", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "hrc_64_12_025", "resolve_type": "user", "usage": "all" } ], + "GUI_Behaviour": [ { "value": "Coregen", "resolve_type": "user", "usage": "all" } ], + "CoefficientSource": [ { "value": "COE_File", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "CoefficientVector": [ { "value": "6,0,-4,-3,5,6,-6,-13,7,44,64,44,7,-13,-6,6,5,-3,-4,0,6", "resolve_type": "user", "usage": "all" } ], + "Coefficient_File": [ { "value": "../coe/hrc_64_12_025.coe", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Sets": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Reload": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Filter_Type": [ { "value": "Interpolation", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Rate_Change_Type": [ { "value": "Integer", "resolve_type": "user", "usage": "all" } ], + "Interpolation_Rate": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Decimation_Rate": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Zero_Pack_Factor": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Channel_Sequence": [ { "value": "Basic", "resolve_type": "user", "usage": "all" } ], + "Number_Channels": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Select_Pattern": [ { "value": "All", "resolve_type": "user", "usage": "all" } ], + "Pattern_List": [ { "value": "P4-0,P4-1,P4-2,P4-3,P4-4", "resolve_type": "user", "usage": "all" } ], + "Number_Paths": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "RateSpecification": [ { "value": "Input_Sample_Period", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "HardwareOversamplingRate": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "SamplePeriod": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Sample_Frequency": [ { "value": "0.001", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Clock_Frequency": [ { "value": "300.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Coefficient_Sign": [ { "value": "Signed", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Quantization": [ { "value": "Integer_Coefficients", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Width": [ { "value": "16", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BestPrecision": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Structure": [ { "value": "Inferred", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Data_Sign": [ { "value": "Signed", "resolve_type": "user", "usage": "all" } ], + "Data_Width": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Data_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Output_Rounding_Mode": [ { "value": "Full_Precision", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Output_Width": [ { "value": "18", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Filter_Architecture": [ { "value": "Systolic_Multiply_Accumulate", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Optimization_Goal": [ { "value": "Area", "resolve_type": "user", "usage": "all" } ], + "Optimization_Selection": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Pre_Adder_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Column_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Broadcast_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_LUT_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_BRAM_Read_First_Mode": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimal_Column_Lengths": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Data_Path_Broadcast": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Disable_Half_Band_Centre_Tap": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_SRL_Attributes": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Other": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimization_List": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Input_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Output_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Preference_For_Other_Storage": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Multi_Column_Support": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Inter_Column_Pipe_Length": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ColumnConfig": [ { "value": "7", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "DATA_Has_TLAST": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TREADY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_FIFO": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "DATA_TUSER_Width": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "S_CONFIG_Sync_Mode": [ { "value": "On_Vector", "resolve_type": "user", "usage": "all" } ], + "S_CONFIG_Method": [ { "value": "Single", "resolve_type": "user", "usage": "all" } ], + "Num_Reload_Slots": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Has_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Has_ARESETn": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Data_Vector": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Blank_Output": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_Spec": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_COE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reload_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "usage": "all" } ], + "Gen_MIF_Files": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "DisplayReloadOrder": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Passband_Min": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Passband_Max": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Min": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Max": [ { "value": "1.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Filter_Selection": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ] + }, + "model_parameters": { + "C_XDEVICEFAMILY": [ { "value": "zynq", "resolve_type": "generated", "usage": "all" } ], + "C_ELABORATION_DIR": [ { "value": "./", "resolve_type": "generated", "usage": "all" } ], + "C_COMPONENT_NAME": [ { "value": "hrc_64_12_025", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE": [ { "value": "hrc_64_12_025.mif", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE_LINES": [ { "value": "448", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTER_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERP_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DECIM_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ZERO_PACKING_FACTOR": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SYMMETRY": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_FILTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_TAPS": [ { "value": "769", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_CHANNELS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHANNEL_PATTERN": [ { "value": "fixed", "resolve_type": "generated", "usage": "all" } ], + "C_ROUND_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_RELOAD": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_RELOAD_SLOTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_MODE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_PIPE_LEN": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_CONFIG": [ { "value": "7", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMIZATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_IP_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PX_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_WIDTH": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_PATH_WIDTHS": [ { "value": "17", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_PX_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_SIGN": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SIGN": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_PATH_WIDTHS": [ { "value": "19", "resolve_type": "generated", "usage": "all" } ], + "C_OUTPUT_WIDTH": [ { "value": "18", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_PATH_WIDTHS": [ { "value": "18", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_OP_PATH_WIDTHS": [ { "value": "18", "resolve_type": "generated", "usage": "all" } ], + "C_EXT_MULT_CNFG": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_PSAMP_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_OP_PATH_PSAMP_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_NUM_MADDS": [ { "value": "7", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPT_MADDS": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_OVERSAMPLING_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INPUT_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPBUFF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATAPATH_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_ARRANGEMENT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTS_PACKED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "17", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETn": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_FIFO": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TREADY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TDATA_WIDTH": [ { "value": "24", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_CONFIG_CHANNEL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_SYNC_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_PACKET_SIZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RELOAD_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynq" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xc7z100" } ], + "PACKAGE": [ { "value": "ffg900" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "20" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk.gen/sources_1/ip/hrc_64_12_025" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in" } ], + "s_axis_data_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_data_tready": [ { "direction": "out", "driver_value": "0x1" } ], + "s_axis_data_tdata": [ { "direction": "in", "size_left": "7", "size_right": "0", "driver_value": "0" } ], + "m_axis_data_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_data_tdata": [ { "direction": "out", "size_left": "23", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "event_s_data_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_chanid_incorrect_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "S_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "1", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_data_tdata" } ], + "TREADY": [ { "physical_name": "s_axis_data_tready" } ], + "TVALID": [ { "physical_name": "s_axis_data_tvalid" } ] + } + }, + "M_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "3", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_data_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_data_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/new/tx_qpsk.v b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/new/tx_qpsk.v new file mode 100644 index 00000000..d757ea01 --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.srcs/sources_1/new/tx_qpsk.v @@ -0,0 +1,539 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/03/23 20:17:56 +// Last Modified Date: 2023/03/10 15:41 +// Design Name: +// Module Name: tx_qpsk +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// 20230228-1541 - 修改不扫频、无基带频偏时 [baseband_i/q] 的数据输出,原来从 +// 乘法器引出,会导致频率为 0 时输出数据错误,现在直接从基带数据引出。 +// 20230310-1542 - 增加输入参数,发送数据更改为直接由参数输入,发送方波改为 8 +// 倍过采样,发送双音信号中 1MHz 信号的频率控制字可以根据参数中的时钟频率计 +// 算得出。 +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module tx_qpsk +#( + parameter DATA_WIDTH = 12, // need to be <= 16 + parameter BIT_DATA = 128'b00000011000010100011110010001011001110101001111101000011100010010011011010110111101100011010010111011100110010101011111110000001, // inverse pseudorandom bit sequence, [0,flip(PRSB7)] + parameter BIT_DATA_LEN = 128, + parameter SQUARE_INTERP = 8, + parameter CLK_FREQ = 245760000 // in Hertz +) +( + input clk , + input rst , + output [DATA_WIDTH-1:0] tx_data_i , + output [DATA_WIDTH-1:0] tx_data_q , + // debug ports + input [ 1:0] waveform_sel , + input sweep_on , + input [31:0] freq_set , + input [ 1:0] iq_sel , + input [ 3:0] bb_rshift +); + +localparam RCOS_INTERP = 64; +localparam INTERP = (RCOS_INTERP > SQUARE_INTERP) ? RCOS_INTERP : SQUARE_INTERP; +localparam FREQ_WORD_1M = 64'd2**64'd32*64'd1000000/CLK_FREQ; + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// Data Counter ///////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// symbol & interpolation counter +reg [$clog2(INTERP*BIT_DATA_LEN)-1 : 0] cnt = 'b0; + +always @(posedge clk) begin + if (rst) begin + cnt <= 'b0; + end + else begin + cnt <= (cnt == INTERP*BIT_DATA_LEN - 1) ? 'b0 : cnt + 16'b1; + end +end + +//////////////////////////////////////////////////////////////////////////////// +////////////////////// Root-Rasied Cosine Shaping Filter /////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// address +reg [$clog2(BIT_DATA_LEN)-1 : 0] hrc_data_addr_i = 'b0; +reg [$clog2(BIT_DATA_LEN)-1 : 0] hrc_data_addr_q = 'b1; + +always @(posedge clk) begin + if (rst) begin + hrc_data_addr_i <= 'b0; + hrc_data_addr_q <= 'b1; + end + else begin + hrc_data_addr_i <= {cnt[$clog2(RCOS_INTERP) +: ($clog2(BIT_DATA_LEN)-1)],1'b0}; + hrc_data_addr_q <= {cnt[$clog2(RCOS_INTERP) +: ($clog2(BIT_DATA_LEN)-1)],1'b1}; + end +end + +// bit data +reg hrc_data_i = 'b0; +reg hrc_data_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + hrc_data_i <= 'b0; + hrc_data_q <= 'b0; + end + else begin + hrc_data_i <= BIT_DATA[hrc_data_addr_i]; + hrc_data_q <= BIT_DATA[hrc_data_addr_q]; + end +end + +// polarization +wire [ 7:0] hrc_data_polar_i; +wire [ 7:0] hrc_data_polar_q; + +assign hrc_data_polar_i = {{7{hrc_data_i}},1'b1}; +assign hrc_data_polar_q = {{7{hrc_data_q}},1'b1}; + +// root raised cosine shaping-filter +wire [23:0] hrc_wave_i; +wire [23:0] hrc_wave_q; + +hrc_64_12_025 u_hrc_i ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_i ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_i ) // output wire [23 : 0] m_axis_data_tdata +); + +hrc_64_12_025 u_hrc_q ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_q ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_q ) // output wire [23 : 0] m_axis_data_tdata +); + + +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Square Shaping Filter ///////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// address +reg [$clog2(BIT_DATA_LEN)-1 : 0] hsq_data_addr = 'b0; + +always @(posedge clk) begin + if (rst) begin + hsq_data_addr <= 'b0; + end + else + hsq_data_addr <= {cnt[$clog2(SQUARE_INTERP) +: $clog2(BIT_DATA_LEN)]}; +end + +// bit data +reg hsq_data = 'b0; + +always @(posedge clk) begin + if (rst) begin + hsq_data <= 'b0; + end + else begin + hsq_data <= BIT_DATA[hsq_data_addr]; + end +end + +// square shaping-filter +reg [17:0] hsq_wave_i ='b0; +reg [17:0] hsq_wave_q ='b0; + +always @(posedge clk) begin + if (rst) begin + hsq_wave_i <= 'b0; + hsq_wave_q <= 'b0; + end + else begin + hsq_wave_i <= hsq_data ? 18'b01_1111_1111_1111_1111 : 18'b10_0000_0000_0000_0001; + hsq_wave_q <= hsq_data ? 18'b10_0000_0000_0000_0001 : 18'b01_1111_1111_1111_1111; + end +end + + +//////////////////////////////////////////////////////////////////////////////// +/////////////////////////////// Two Tone Siganl //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// cosine wave with freq of 1 MHz +wire signed [7:0] cos_1m; +wire signed [7:0] sin_1m; + +dds_32b_8b u_dds_1m +( + .aclk (clk ), // input wire aclk + .s_axis_config_tvalid (1'b1 ), // input wire s_axis_config_tvalid + .s_axis_config_tdata (FREQ_WORD_1M[31:0] ), // input wire [31 : 0] s_axis_config_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata ({sin_1m,cos_1m} ) // output wire [15 : 0] m_axis_data_tdata +); + +// two-tone signal +reg signed [16:0] two_tone_wave_i = 'b0; +reg signed [16:0] two_tone_wave_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + two_tone_wave_i <= 'b0; + two_tone_wave_q <= 'b0; + end + else begin + two_tone_wave_i <= 17'b0_0111_1111_1111_1111 + {cos_1m[7],cos_1m,8'd0}; + two_tone_wave_q <= 17'b0 + {sin_1m[7],sin_1m,8'd0}; + end +end + + +//////////////////////////////////////////////////////////////////////////////// +///////////////////// Waveform Selection & Hopping Control ///////////////////// +//////////////////////////////////////////////////////////////////////////////// +// baseband signal select +reg [17:0] baseband_sel_i = 'b0; +reg [17:0] baseband_sel_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + baseband_sel_i <= 'b0; + baseband_sel_q <= 'b0; + end + else begin + case (waveform_sel[1:0]) + 2'd0: begin + baseband_sel_i <= {hrc_wave_i[16:0],1'b0}; + baseband_sel_q <= {hrc_wave_q[16:0],1'b0}; + end + 2'd1: begin + baseband_sel_i <= hsq_wave_i[17:0]; + baseband_sel_q <= hsq_wave_q[17:0]; + end + 2'd2: begin + baseband_sel_i <= 18'b01_1111_1111_1111_1111; + baseband_sel_q <= 18'b0; + end + 2'd3: begin + baseband_sel_i <= {two_tone_wave_i[16:0],1'b0}; + baseband_sel_q <= {two_tone_wave_q[16:0],1'b0}; + end + default: begin + baseband_sel_i <= {hrc_wave_i[16:0],1'b0}; + baseband_sel_q <= {hrc_wave_q[16:0],1'b0}; + end + endcase + end +end + +// hopping control, 3750hop/s +reg [23:0] sweep_rom_addr = 'b0; +wire [31:0] freq_sweep; + +always @(posedge clk) begin + if (rst) begin + sweep_rom_addr <= 'b0; + end + else if (sweep_on) begin + sweep_rom_addr <= sweep_rom_addr + 24'b1; + end + else begin + sweep_rom_addr <= 'b0; + end +end + +hop_rom u_sweep_rom +( + .clka (clk ), // input wire clka + .addra (sweep_rom_addr[23:16] ), // input wire [7 : 0] addra + .douta (freq_sweep ) // output wire [31 : 0] douta +); + +// choose the actual frequency word +reg [31:0] freq_word = 'b0; + +always @(posedge clk) begin + if (rst) begin + freq_word <= 'b0; + end + else if (sweep_on) begin + // frequency sweep + freq_word <= freq_sweep; + end + else begin + // normal operation + freq_word <= freq_set; + end +end + +// baseband frequency shift carrier generation +wire [ 7:0] cos_dds; +wire [ 7:0] sin_dds; +reg [ 7:0] cos = 'b0; +reg [ 7:0] sin = 'b0; + +dds_32b_8b u_dds_bb_shift ( + .aclk (clk ), // input wire aclk + .s_axis_config_tvalid (~rst ), // input wire s_axis_config_tvalid + .s_axis_config_tdata (freq_word ), // input wire [31 : 0] s_axis_config_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata ({sin_dds,cos_dds}) // output wire [31 : 0] m_axis_data_tdata +); + +always @(posedge clk) begin + if (rst) begin + cos <= 'b0; + sin <= 'b0; + end + else if (freq_word == 'b0) begin + // to make sure the carriers stay at the right position when freq = 0 + cos <= 8'b0111_1111; + sin <= 8'b0111_1111; + end + else begin + cos <= cos_dds; + sin <= sin_dds; + end +end + +// baseband frequency shift modulation +wire [47:0] mod_cmpy_a; +wire [15:0] mod_cmpy_b; +wire [63:0] mod_cmpy_out; + +wire [26:0] baseband_mult_i; +wire [26:0] baseband_mult_q; + +assign mod_cmpy_a = {6'b0,baseband_sel_q,6'b0,baseband_sel_i}; +assign mod_cmpy_b = {-sin,cos}; + +assign baseband_mult_i = mod_cmpy_out[58:32]; +assign baseband_mult_q = mod_cmpy_out[26: 0]; + +cmpy_18x8 u_cmpy_18x8 +( + .aclk (clk ), // input wire aclk + .s_axis_a_tvalid (1'b1 ), // input wire s_axis_a_tvalid + .s_axis_a_tdata (mod_cmpy_a ), // input wire [47 : 0] s_axis_a_tdata + .s_axis_b_tvalid (1'b1 ), // input wire s_axis_b_tvalid + .s_axis_b_tdata (mod_cmpy_b ), // input wire [15 : 0] s_axis_b_tdata + .m_axis_dout_tvalid ( ), // output wire m_axis_dout_tvalid + .m_axis_dout_tdata (mod_cmpy_out ) // output wire [63 : 0] m_axis_dout_tdata +); + +// truncate to 16-bit +reg signed [15:0] baseband_i = 'b0; +reg signed [15:0] baseband_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + baseband_i <= 'b0; + baseband_q <= 'b0; + end + else begin + case (waveform_sel[1:0]) + 2'd0: begin + // scale rasied-cosine-shaped bpsk signal by 1.125 or 1.625 + baseband_i <= (sweep_on == 0 && freq_set == 0) ? (baseband_sel_i[17 -: 16] + {{3{baseband_sel_i[17]}},baseband_sel_i[17 -: 13]}) : (baseband_mult_i[25:10] + {baseband_mult_i[25],baseband_mult_i[25:11]} + {{3{baseband_mult_i[25]}},baseband_mult_i[25:13]}); + baseband_q <= (sweep_on == 0 && freq_set == 0) ? (baseband_sel_q[17 -: 16] + {{3{baseband_sel_q[17]}},baseband_sel_q[17 -: 13]}) : (baseband_mult_q[25:10] + {baseband_mult_q[25],baseband_mult_q[25:11]} + {{3{baseband_mult_q[25]}},baseband_mult_q[25:13]}); + end + 2'd1: begin + baseband_i <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_i[17 -: 16] : (baseband_mult_i[25:10] + {{2{baseband_mult_i[25]}},baseband_mult_i[25:12]}); + baseband_q <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_q[17 -: 16] : (baseband_mult_q[25:10] + {{2{baseband_mult_q[25]}},baseband_mult_q[25:12]}); + end + 2'd2: begin + baseband_i <= baseband_mult_i[24:9]; + baseband_q <= baseband_mult_q[24:9]; + end + 2'd3: begin + baseband_i <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_i[17 -: 16] : baseband_mult_i[24:9]; + baseband_q <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_q[17 -: 16] : baseband_mult_q[24:9]; + end + default: begin + // scale rasied-cosine-shaped bpsk signal by 1.125 + baseband_i <= baseband_mult_i[25:10] + {{3{baseband_mult_i[25]}},baseband_mult_i[25:13]}; + baseband_q <= baseband_mult_q[25:10] + {{3{baseband_mult_q[25]}},baseband_mult_q[25:13]}; + end + endcase + end +end + +// iq selection & baseband right shift +reg signed [15:0] baseband_data_i = 'b0; +reg signed [15:0] baseband_data_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + baseband_data_i <= 'b0; + baseband_data_q <= 'b0; + end + else begin + // inphase selection + if (iq_sel[1]) begin + baseband_data_i <= baseband_i >>> bb_rshift; + end + else begin + baseband_data_i <= 'b0; + end + // quadrature selection + if (iq_sel[0]) begin + baseband_data_q <= baseband_q >>> bb_rshift; + end + else begin + baseband_data_q <= 'b0; + end + end +end + +// output data to ports +assign tx_data_i = baseband_data_i[15 -: DATA_WIDTH]; +assign tx_data_q = baseband_data_q[15 -: DATA_WIDTH]; + +endmodule + + +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 2020/12/08 12:43:46 +// Design Name: +// Module Name: tb_tx_qpsk +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +// module tb_tx_qpsk; + +// reg clk = 1'b0 ; +// reg rst = 1'b1 ; +// reg tx_on = 1'b1 ; +// reg [31:0] freq_set ; +// reg [ 1:0] waveform_sel = 2'b00; +// reg [ 1:0] iq_sel = 2'b11 ; +// wire [11:0] tx_data_i ; +// wire [11:0] tx_data_q ; +// reg [ 3:0] bb_rshift = 5'b0 ; + +// tx_qpsk u_tx_qpsk +// ( +// .clk (clk ), +// .rst (rst ), +// .tx_data_i (tx_data_i ), +// .tx_data_q (tx_data_q ), +// .waveform_sel (waveform_sel ), +// .sweep_on (1'b0 ), +// // .freq_set (32'd447392426 ), +// .freq_set (32'd0 ), +// .iq_sel (iq_sel ), +// .bb_rshift (bb_rshift ) +// ); + +// initial begin +// #102 +// rst = 1'b0; +// // freq_set = 32'd873813333; +// // waveform_sel = 2'b00; +// // bb_rshift = 5'd0; +// // #5000 +// // bb_rshift = 5'd1; +// // #5000 +// // bb_rshift = 5'd2; +// // #5000 +// // bb_rshift = 5'd3; +// // #5000 +// // bb_rshift = 5'd4; +// // #5000 +// // bb_rshift = 5'd5; +// // #5000 +// // bb_rshift = 5'd6; +// // #5000 +// // bb_rshift = 5'd7; +// // #5000 +// // bb_rshift = 5'd8; +// // #5000 +// // bb_rshift = 5'd9; +// // #5000 +// // bb_rshift = 5'd14; +// // #5000 +// // bb_rshift = 5'd15; +// // #5000 +// // bb_rshift = 5'd16; +// // freq_set = 32'd0; +// // func_sel = 3'b010; +// // #7777 +// // freq_set = 32'd536870912; +// // func_sel = 3'b100; +// // #7777 +// // freq_set = 32'd0; +// // func_sel = 3'b100; +// // #7777 +// // freq_set = 32'd536870912; +// // func_sel = 3'b010; +// // #7777 +// // freq_set = 32'd0; +// // func_sel = 3'b010; +// // freq_set = 32'd536870912; +// // iq_sel = 2'b00; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b01; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b10; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b11; +// end + +// always #5 clk = ~clk; + +// // integer i; +// // integer w_file; + +// // initial begin +// // w_file = $fopen("D:\\qpsk_josh.txt","w"); +// // for (i = 0; i <= 35000; i = i + 1) begin +// // wait(clk); +// // #10; +// // $fdisplay(w_file,"%d %d",$signed(tx_data_i), +// // $signed(tx_data_q)); +// // if (i == 35000) begin +// // $fclose(w_file); +// // $stop; +// // end +// // end +// // end + +// endmodule diff --git a/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.xpr b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.xpr new file mode 100644 index 00000000..cff23427 --- /dev/null +++ b/modules/xc7z100ffg900-2/tx_qpsk/tx_qpsk.xpr @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default_dashboard + + +