2022-10-06 19:08:50 -05:00
|
|
|
#ifndef VERILOG_API_H
|
|
|
|
#define VERILOG_API_H
|
2020-02-15 16:03:00 -06:00
|
|
|
|
|
|
|
/********************************************************************
|
|
|
|
* Include header files that are required by function declaration
|
|
|
|
*******************************************************************/
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
2022-10-06 19:08:50 -05:00
|
|
|
|
|
|
|
#include "bitstream_manager.h"
|
|
|
|
#include "bus_group.h"
|
2020-02-15 16:03:00 -06:00
|
|
|
#include "circuit_library.h"
|
2020-09-23 21:27:52 -05:00
|
|
|
#include "config_protocol.h"
|
2022-10-06 19:08:50 -05:00
|
|
|
#include "decoder_library.h"
|
2020-02-15 16:03:00 -06:00
|
|
|
#include "device_rr_gsb.h"
|
2020-05-27 16:53:40 -05:00
|
|
|
#include "fabric_bitstream.h"
|
2020-11-10 20:07:28 -06:00
|
|
|
#include "fabric_global_port_info.h"
|
2020-02-27 13:33:09 -06:00
|
|
|
#include "fabric_verilog_options.h"
|
2022-10-06 19:08:50 -05:00
|
|
|
#include "io_location_map.h"
|
2023-06-25 17:29:27 -05:00
|
|
|
#include "io_name_map.h"
|
2022-10-06 19:08:50 -05:00
|
|
|
#include "memory_bank_shift_register_banks.h"
|
|
|
|
#include "module_manager.h"
|
|
|
|
#include "mux_library.h"
|
|
|
|
#include "netlist_manager.h"
|
|
|
|
#include "pin_constraints.h"
|
|
|
|
#include "simulation_setting.h"
|
2020-02-27 13:33:09 -06:00
|
|
|
#include "verilog_testbench_options.h"
|
2022-10-06 19:08:50 -05:00
|
|
|
#include "vpr_context.h"
|
|
|
|
#include "vpr_device_annotation.h"
|
|
|
|
#include "vpr_netlist_annotation.h"
|
2020-02-15 16:03:00 -06:00
|
|
|
|
|
|
|
/********************************************************************
|
|
|
|
* Function declaration
|
|
|
|
*******************************************************************/
|
|
|
|
|
|
|
|
/* begin namespace openfpga */
|
|
|
|
namespace openfpga {
|
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
void fpga_fabric_verilog(
|
|
|
|
ModuleManager& module_manager, NetlistManager& netlist_manager,
|
|
|
|
const MemoryBankShiftRegisterBanks& blwl_sr_banks,
|
|
|
|
const CircuitLibrary& circuit_lib, const MuxLibrary& mux_lib,
|
|
|
|
const DecoderLibrary& decoder_lib, const DeviceContext& device_ctx,
|
|
|
|
const VprDeviceAnnotation& device_annotation,
|
|
|
|
const DeviceRRGSB& device_rr_gsb, const FabricVerilogOption& options);
|
2020-02-15 16:03:00 -06:00
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
int fpga_verilog_full_testbench(
|
|
|
|
const ModuleManager& module_manager,
|
|
|
|
const BitstreamManager& bitstream_manager,
|
|
|
|
const FabricBitstream& fabric_bitstream,
|
|
|
|
const MemoryBankShiftRegisterBanks& blwl_sr_banks,
|
|
|
|
const AtomContext& atom_ctx, const PlacementContext& place_ctx,
|
|
|
|
const PinConstraints& pin_constraints, const BusGroup& bus_group,
|
|
|
|
const std::string& bitstream_file, const IoLocationMap& io_location_map,
|
2023-06-25 17:29:27 -05:00
|
|
|
const IoNameMap& io_name_map,
|
2022-10-06 19:08:50 -05:00
|
|
|
const FabricGlobalPortInfo& fabric_global_port_info,
|
|
|
|
const VprNetlistAnnotation& netlist_annotation,
|
|
|
|
const CircuitLibrary& circuit_lib,
|
|
|
|
const SimulationSetting& simulation_parameters,
|
|
|
|
const ConfigProtocol& config_protocol, const VerilogTestbenchOption& options);
|
2020-02-27 13:33:09 -06:00
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
int fpga_verilog_preconfigured_fabric_wrapper(
|
|
|
|
const ModuleManager& module_manager,
|
|
|
|
const BitstreamManager& bitstream_manager, const AtomContext& atom_ctx,
|
|
|
|
const PlacementContext& place_ctx, const PinConstraints& pin_constraints,
|
|
|
|
const BusGroup& bus_group, const IoLocationMap& io_location_map,
|
2023-06-25 17:29:27 -05:00
|
|
|
const IoNameMap& io_name_map,
|
2023-05-25 21:50:39 -05:00
|
|
|
const FabricGlobalPortInfo& fabric_global_port_info,
|
|
|
|
const VprNetlistAnnotation& netlist_annotation,
|
|
|
|
const CircuitLibrary& circuit_lib, const ConfigProtocol& config_protocol,
|
|
|
|
const VerilogTestbenchOption& options);
|
|
|
|
|
|
|
|
int fpga_verilog_mock_fpga_wrapper(
|
2023-05-26 20:49:57 -05:00
|
|
|
const ModuleManager& module_manager, const AtomContext& atom_ctx,
|
2023-05-25 21:50:39 -05:00
|
|
|
const PlacementContext& place_ctx, const PinConstraints& pin_constraints,
|
|
|
|
const BusGroup& bus_group, const IoLocationMap& io_location_map,
|
2022-10-06 19:08:50 -05:00
|
|
|
const FabricGlobalPortInfo& fabric_global_port_info,
|
|
|
|
const VprNetlistAnnotation& netlist_annotation,
|
|
|
|
const VerilogTestbenchOption& options);
|
2021-06-08 22:28:16 -05:00
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
int fpga_verilog_preconfigured_testbench(
|
|
|
|
const ModuleManager& module_manager, const AtomContext& atom_ctx,
|
|
|
|
const PinConstraints& pin_constraints, const BusGroup& bus_group,
|
|
|
|
const FabricGlobalPortInfo& fabric_global_port_info,
|
|
|
|
const VprNetlistAnnotation& netlist_annotation,
|
|
|
|
const SimulationSetting& simulation_setting,
|
|
|
|
const VerilogTestbenchOption& options);
|
2021-06-08 22:28:16 -05:00
|
|
|
|
2022-10-06 19:08:50 -05:00
|
|
|
int fpga_verilog_simulation_task_info(
|
|
|
|
const ModuleManager& module_manager,
|
|
|
|
const BitstreamManager& bitstream_manager, const AtomContext& atom_ctx,
|
|
|
|
const PlacementContext& place_ctx, const IoLocationMap& io_location_map,
|
|
|
|
const SimulationSetting& simulation_setting,
|
|
|
|
const ConfigProtocol& config_protocol, const VerilogTestbenchOption& options);
|
2021-06-08 23:10:02 -05:00
|
|
|
|
2020-02-15 16:03:00 -06:00
|
|
|
} /* end namespace openfpga */
|
|
|
|
|
|
|
|
#endif
|