2018-07-26 12:28:21 -05:00
|
|
|
/***********************************/
|
|
|
|
/* Synthesizable Verilog Dumping */
|
|
|
|
/* Xifan TANG, EPFL/LSI */
|
|
|
|
/***********************************/
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "spice_types.h"
|
|
|
|
#include "linkedlist.h"
|
|
|
|
#include "fpga_spice_globals.h"
|
|
|
|
#include "verilog_global.h"
|
|
|
|
|
2018-08-10 14:46:00 -05:00
|
|
|
char* verilog_netlist_file_postfix = ".v";
|
2018-12-04 18:32:09 -06:00
|
|
|
float verilog_sim_timescale = 1e-9; // Verilog Simulation time scale (minimum time unit) : 1ns
|
|
|
|
char* verilog_timing_preproc_flag = "ENABLE_TIMING"; // the flag to enable timing definition during compilation
|
|
|
|
char* verilog_init_sim_preproc_flag = "INITIALIZATION"; // the flag to enable initialization during simulation
|
2018-08-10 14:46:00 -05:00
|
|
|
|
2018-12-05 10:20:47 -06:00
|
|
|
char* default_verilog_dir_name = "syn_verilogs/";
|
|
|
|
char* default_lb_dir_name = "lb/";
|
|
|
|
char* default_rr_dir_name = "routing/";
|
|
|
|
char* default_submodule_dir_name = "sub_module/";
|
|
|
|
char* default_modelsim_dir_name = "msim_projects/";
|
|
|
|
|
|
|
|
char* modelsim_project_name_postfix = "_fpga_msim";
|
|
|
|
char* modelsim_proc_script_name_postfix = "_proc.tcl";
|
|
|
|
char* modelsim_top_script_name_postfix = "_runsim.tcl";
|
|
|
|
char* modelsim_testbench_module_postfix = "_top_tb";
|
2018-12-08 23:57:54 -06:00
|
|
|
char* modelsim_auto_testbench_module_postfix = "_top_auto_tb";
|
2018-12-11 15:44:13 -06:00
|
|
|
char* modelsim_auto_preconf_testbench_module_postfix = "_top_auto_preconf_tb";
|
2018-12-13 23:46:40 -06:00
|
|
|
char* modelsim_simulation_time_unit = "ns";
|
2018-12-05 10:20:47 -06:00
|
|
|
|
2018-07-26 12:28:21 -05:00
|
|
|
char* verilog_top_postfix = "_top.v";
|
|
|
|
char* bitstream_verilog_file_postfix = ".bitstream";
|
2018-12-11 15:44:13 -06:00
|
|
|
char* hex_verilog_file_postfix = ".hex";
|
2018-07-26 12:28:21 -05:00
|
|
|
char* top_testbench_verilog_file_postfix = "_top_tb.v";
|
2018-12-08 18:19:12 -06:00
|
|
|
char* top_auto_testbench_verilog_file_postfix = "_top_auto_tb.v";
|
2018-12-11 15:44:13 -06:00
|
|
|
char* top_auto_preconf_testbench_verilog_file_postfix = "_top_auto_preconf_tb.v";
|
2018-07-26 12:28:21 -05:00
|
|
|
char* blif_testbench_verilog_file_postfix = "_blif_tb.v";
|
2018-12-05 10:20:47 -06:00
|
|
|
char* submodule_verilog_file_name = "sub_module.v";
|
2018-07-26 12:28:21 -05:00
|
|
|
char* logic_block_verilog_file_name = "logic_blocks.v";
|
|
|
|
char* luts_verilog_file_name = "luts.v";
|
|
|
|
char* routing_verilog_file_name = "routing.v";
|
2018-12-04 19:42:47 -06:00
|
|
|
char* sub_module_verilog_file_name = "sub_module.v";
|
2018-07-26 12:28:21 -05:00
|
|
|
char* muxes_verilog_file_name = "muxes.v";
|
|
|
|
char* wires_verilog_file_name = "wires.v";
|
|
|
|
char* essentials_verilog_file_name = "inv_buf_passgate.v";
|
|
|
|
char* decoders_verilog_file_name = "decoders.v";
|
|
|
|
|
|
|
|
char* verilog_mux_basis_posfix = "_basis";
|
|
|
|
char* verilog_mux_special_basis_posfix = "_special_basis";
|
|
|
|
|
2018-08-10 14:46:00 -05:00
|
|
|
/* Prefix for subckt Verilog netlists */
|
|
|
|
char* grid_verilog_file_name_prefix = "grid_";
|
|
|
|
char* chanx_verilog_file_name_prefix = "chanx_";
|
|
|
|
char* chany_verilog_file_name_prefix = "chany_";
|
|
|
|
char* sb_verilog_file_name_prefix = "sb_";
|
|
|
|
char* cbx_verilog_file_name_prefix = "cbx_";
|
|
|
|
char* cby_verilog_file_name_prefix = "cby_";
|
|
|
|
|
2018-07-26 12:28:21 -05:00
|
|
|
/* SRAM SPICE MODEL should be set as global*/
|
|
|
|
t_spice_model* sram_verilog_model = NULL;
|
|
|
|
enum e_sram_orgz sram_verilog_orgz_type = SPICE_SRAM_STANDALONE;
|
|
|
|
t_sram_orgz_info* sram_verilog_orgz_info = NULL;
|
|
|
|
|
|
|
|
/* Input and Output Pad spice model. should be set as global */
|
|
|
|
t_spice_model* iopad_verilog_model = NULL;
|
|
|
|
|
|
|
|
/* Linked-list that stores all the configuration bits */
|
|
|
|
t_llist* conf_bits_head = NULL;
|
|
|
|
|
2018-08-10 14:46:00 -05:00
|
|
|
/* Linked-list that stores submodule Verilog file mames */
|
|
|
|
t_llist* grid_verilog_subckt_file_path_head = NULL;
|
|
|
|
t_llist* routing_verilog_subckt_file_path_head = NULL;
|
2018-12-04 19:42:47 -06:00
|
|
|
t_llist* submodule_verilog_subckt_file_path_head = NULL;
|
|
|
|
|
2018-08-10 14:46:00 -05:00
|
|
|
|
2018-07-26 12:28:21 -05:00
|
|
|
int verilog_default_signal_init_value = 0;
|