Merge branch 'refactoring' into dev
This commit is contained in:
commit
7befcaba57
|
@ -11,6 +11,88 @@
|
|||
/* begin namespace openfpga */
|
||||
namespace openfpga {
|
||||
|
||||
/********************************************************************
|
||||
* - Add a command to Shell environment: repack
|
||||
* - Add associated options
|
||||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
ShellCommandId add_openfpga_repack_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("repack");
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'repack' to the Shell */
|
||||
ShellCommandId shell_cmd_id = shell.add_command(shell_cmd, "Pack physical programmable logic blocks");
|
||||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, repack);
|
||||
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* - Add a command to Shell environment: build_architecture_bitstream
|
||||
* - Add associated options
|
||||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
ShellCommandId add_openfpga_arch_bitstream_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("build_architecture_bitstream");
|
||||
|
||||
/* Add an option '--file' in short '-f'*/
|
||||
CommandOptionId opt_file = shell_cmd.add_option("file", true, "file path to output the bitstream database");
|
||||
shell_cmd.set_option_short_name(opt_file, "f");
|
||||
shell_cmd.set_option_require_value(opt_file, openfpga::OPT_STRING);
|
||||
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'build_architecture_bitstream' to the Shell */
|
||||
ShellCommandId shell_cmd_id = shell.add_command(shell_cmd, "Build fabric-independent bitstream database");
|
||||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, fpga_bitstream);
|
||||
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* - Add a command to Shell environment: build_fabric_bitstream
|
||||
* - Add associated options
|
||||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
ShellCommandId add_openfpga_fabric_bitstream_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("build_fabric_bitstream");
|
||||
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'fabric_bitstream' to the Shell */
|
||||
ShellCommandId shell_cmd_id = shell.add_command(shell_cmd, "Reorganize the fabric-independent bitstream for the FPGA fabric created by FPGA-Verilog");
|
||||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, build_fabric_bitstream);
|
||||
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* Top-level function to add all the commands related to FPGA-Bitstream
|
||||
*******************************************************************/
|
||||
void add_openfpga_bitstream_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
||||
/* Get the unique id of 'build_fabric' command which is to be used in creating the dependency graph */
|
||||
const ShellCommandId& shell_cmd_build_fabric_id = shell.command(std::string("build_fabric"));
|
||||
|
@ -21,58 +103,26 @@ void add_openfpga_bitstream_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'repack'
|
||||
*/
|
||||
Command shell_cmd_repack("repack");
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd_repack.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'repack' to the Shell */
|
||||
ShellCommandId shell_cmd_repack_id = shell.add_command(shell_cmd_repack, "Pack physical programmable logic blocks");
|
||||
shell.set_command_class(shell_cmd_repack_id, openfpga_bitstream_cmd_class);
|
||||
shell.set_command_execute_function(shell_cmd_repack_id, repack);
|
||||
|
||||
/* The 'repack' command should NOT be executed before 'build_fabric' */
|
||||
std::vector<ShellCommandId> cmd_dependency_repack;
|
||||
cmd_dependency_repack.push_back(shell_cmd_build_fabric_id);
|
||||
shell.set_command_dependency(shell_cmd_repack_id, cmd_dependency_repack);
|
||||
ShellCommandId shell_cmd_repack_id = add_openfpga_repack_command(shell, openfpga_bitstream_cmd_class, cmd_dependency_repack);
|
||||
|
||||
/********************************
|
||||
* Command 'fpga_bitstream'
|
||||
* Command 'build_architecture_bitstream'
|
||||
*/
|
||||
Command shell_cmd_fpga_bitstream("fpga_bitstream");
|
||||
|
||||
/* Add an option '--file' in short '-f'*/
|
||||
CommandOptionId fpga_bitstream_opt_file = shell_cmd_fpga_bitstream.add_option("file", true, "file path to output the bitstream database");
|
||||
shell_cmd_fpga_bitstream.set_option_short_name(fpga_bitstream_opt_file, "f");
|
||||
shell_cmd_fpga_bitstream.set_option_require_value(fpga_bitstream_opt_file, openfpga::OPT_STRING);
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd_fpga_bitstream.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'fpga_bitstream' to the Shell */
|
||||
ShellCommandId shell_cmd_fpga_bitstream_id = shell.add_command(shell_cmd_fpga_bitstream, "Build bitstream database");
|
||||
shell.set_command_class(shell_cmd_fpga_bitstream_id, openfpga_bitstream_cmd_class);
|
||||
shell.set_command_execute_function(shell_cmd_fpga_bitstream_id, fpga_bitstream);
|
||||
|
||||
/* The 'fpga_bitstream' command should NOT be executed before 'repack' */
|
||||
std::vector<ShellCommandId> cmd_dependency_fpga_bitstream;
|
||||
cmd_dependency_fpga_bitstream.push_back(shell_cmd_repack_id);
|
||||
shell.set_command_dependency(shell_cmd_fpga_bitstream_id, cmd_dependency_fpga_bitstream);
|
||||
/* The 'build_architecture_bitstream' command should NOT be executed before 'repack' */
|
||||
std::vector<ShellCommandId> cmd_dependency_arch_bitstream;
|
||||
cmd_dependency_arch_bitstream.push_back(shell_cmd_repack_id);
|
||||
ShellCommandId shell_cmd_arch_bitstream_id = add_openfpga_arch_bitstream_command(shell, openfpga_bitstream_cmd_class, cmd_dependency_arch_bitstream);
|
||||
|
||||
/********************************
|
||||
* Command 'build_fabric_bitstream'
|
||||
*/
|
||||
Command shell_cmd_fabric_bitstream("build_fabric_bitstream");
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd_fabric_bitstream.add_option("verbose", false, "Enable verbose output");
|
||||
|
||||
/* Add command 'fabric_bitstream' to the Shell */
|
||||
ShellCommandId shell_cmd_fabric_bitstream_id = shell.add_command(shell_cmd_fabric_bitstream, "Reorganize the fabric-independent bitstream for the FPGA fabric created by FPGA-Verilog");
|
||||
shell.set_command_class(shell_cmd_fabric_bitstream_id, openfpga_bitstream_cmd_class);
|
||||
shell.set_command_execute_function(shell_cmd_fabric_bitstream_id, build_fabric_bitstream);
|
||||
|
||||
/* The 'fabric_bitstream' command should NOT be executed before 'fpga_bitstream' */
|
||||
/* The 'build_fabric_bitstream' command should NOT be executed before 'build_architecture_bitstream' */
|
||||
std::vector<ShellCommandId> cmd_dependency_fabric_bitstream;
|
||||
cmd_dependency_fabric_bitstream.push_back(shell_cmd_fpga_bitstream_id);
|
||||
shell.set_command_dependency(shell_cmd_fabric_bitstream_id, cmd_dependency_fabric_bitstream);
|
||||
cmd_dependency_fabric_bitstream.push_back(shell_cmd_arch_bitstream_id);
|
||||
add_openfpga_fabric_bitstream_command(shell, openfpga_bitstream_cmd_class, cmd_dependency_fabric_bitstream);
|
||||
}
|
||||
|
||||
} /* end namespace openfpga */
|
||||
|
|
|
@ -16,9 +16,9 @@ namespace openfpga {
|
|||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
void add_openfpga_write_pnr_sdc_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
ShellCommandId add_openfpga_write_pnr_sdc_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const ShellCommandId& shell_cmd_build_fabric_id) {
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("write_pnr_sdc");
|
||||
|
||||
/* Add an option '--file' in short '-f'*/
|
||||
|
@ -55,25 +55,28 @@ void add_openfpga_write_pnr_sdc_command(openfpga::Shell<OpenfpgaContext>& shell,
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, write_pnr_sdc);
|
||||
|
||||
/* The 'build_fabric' command should NOT be executed before 'link_openfpga_arch' */
|
||||
std::vector<ShellCommandId> cmd_dependency;
|
||||
cmd_dependency.push_back(shell_cmd_build_fabric_id);
|
||||
shell.set_command_dependency(shell_cmd_id, cmd_dependency);
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
void add_openfpga_sdc_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
||||
/* Get the unique id of 'build_fabric' command which is to be used in creating the dependency graph */
|
||||
const ShellCommandId& shell_cmd_build_fabric_id = shell.command(std::string("build_fabric"));
|
||||
const ShellCommandId& build_fabric_id = shell.command(std::string("build_fabric"));
|
||||
|
||||
/* Add a new class of commands */
|
||||
ShellCommandClassId openfpga_sdc_cmd_class = shell.add_command_class("FPGA-SDC");
|
||||
|
||||
/********************************
|
||||
* Command 'write_fabric_verilog'
|
||||
* Command 'write_pnr_sdc'
|
||||
*/
|
||||
/* The 'write_pnr_sdc' command should NOT be executed before 'build_fabric' */
|
||||
std::vector<ShellCommandId> pnr_sdc_cmd_dependency;
|
||||
pnr_sdc_cmd_dependency.push_back(build_fabric_id);
|
||||
add_openfpga_write_pnr_sdc_command(shell,
|
||||
openfpga_sdc_cmd_class,
|
||||
shell_cmd_build_fabric_id);
|
||||
pnr_sdc_cmd_dependency);
|
||||
}
|
||||
|
||||
} /* end namespace openfpga */
|
||||
|
|
|
@ -57,7 +57,7 @@ ShellCommandId add_openfpga_write_arch_command(openfpga::Shell<OpenfpgaContext>&
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_const_execute_function(shell_cmd_id, write_arch);
|
||||
|
||||
/* The 'write_openfpga_arch' command should NOT be executed before 'read_openfpga_arch' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -86,7 +86,7 @@ ShellCommandId add_openfpga_link_arch_command(openfpga::Shell<OpenfpgaContext>&
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, link_arch);
|
||||
|
||||
/* The 'link_openfpga_arch' command should NOT be executed before 'read_openfpga_arch' and 'vpr' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -116,7 +116,7 @@ ShellCommandId add_openfpga_check_netlist_naming_conflict_command(openfpga::Shel
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, check_netlist_naming_conflict);
|
||||
|
||||
/* The 'link_openfpga_arch' command should NOT be executed before 'vpr' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -133,6 +133,7 @@ ShellCommandId add_openfpga_pb_pin_fixup_command(openfpga::Shell<OpenfpgaContext
|
|||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
|
||||
Command shell_cmd("pb_pin_fixup");
|
||||
|
||||
/* Add an option '--verbose' */
|
||||
shell_cmd.add_option("verbose", false, "Show verbose outputs");
|
||||
|
||||
|
@ -141,7 +142,7 @@ ShellCommandId add_openfpga_pb_pin_fixup_command(openfpga::Shell<OpenfpgaContext
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, pb_pin_fixup);
|
||||
|
||||
/* The 'pb_pin_fixup' command should NOT be executed before 'read_openfpga_arch' and 'vpr' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -166,7 +167,7 @@ ShellCommandId add_openfpga_lut_truth_table_fixup_command(openfpga::Shell<Openfp
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, lut_truth_table_fixup);
|
||||
|
||||
/* The 'lut_truth_table_fixup' command should NOT be executed before 'read_openfpga_arch' and 'vpr' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -198,7 +199,7 @@ ShellCommandId add_openfpga_build_fabric_command(openfpga::Shell<OpenfpgaContext
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, build_fabric);
|
||||
|
||||
/* The 'build_fabric' command should NOT be executed before 'link_openfpga_arch' */
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
|
@ -220,6 +221,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'write_openfpga_arch'
|
||||
*/
|
||||
/* The 'write_openfpga_arch' command should NOT be executed before 'read_openfpga_arch' */
|
||||
std::vector<ShellCommandId> write_arch_dependent_cmds(1, read_arch_cmd_id);
|
||||
add_openfpga_write_arch_command(shell,
|
||||
openfpga_setup_cmd_class,
|
||||
|
@ -228,6 +230,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'link_openfpga_arch'
|
||||
*/
|
||||
/* The 'link_openfpga_arch' command should NOT be executed before 'vpr' */
|
||||
std::vector<ShellCommandId> link_arch_dependent_cmds;
|
||||
link_arch_dependent_cmds.push_back(read_arch_cmd_id);
|
||||
link_arch_dependent_cmds.push_back(vpr_cmd_id);
|
||||
|
@ -237,6 +240,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/*******************************************
|
||||
* Command 'check_netlist_naming_conflict'
|
||||
*/
|
||||
/* The 'check_netlist_naming_conflict' command should NOT be executed before 'vpr' */
|
||||
std::vector<ShellCommandId> nlist_naming_dependent_cmds;
|
||||
nlist_naming_dependent_cmds.push_back(vpr_cmd_id);
|
||||
add_openfpga_check_netlist_naming_conflict_command(shell,
|
||||
|
@ -246,6 +250,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'pb_pin_fixup'
|
||||
*/
|
||||
/* The 'pb_pin_fixup' command should NOT be executed before 'read_openfpga_arch' and 'vpr' */
|
||||
std::vector<ShellCommandId> pb_pin_fixup_dependent_cmds;
|
||||
pb_pin_fixup_dependent_cmds.push_back(read_arch_cmd_id);
|
||||
pb_pin_fixup_dependent_cmds.push_back(vpr_cmd_id);
|
||||
|
@ -256,6 +261,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'lut_truth_table_fixup'
|
||||
*/
|
||||
/* The 'lut_truth_table_fixup' command should NOT be executed before 'read_openfpga_arch' and 'vpr' */
|
||||
std::vector<ShellCommandId> lut_tt_fixup_dependent_cmds;
|
||||
lut_tt_fixup_dependent_cmds.push_back(read_arch_cmd_id);
|
||||
lut_tt_fixup_dependent_cmds.push_back(vpr_cmd_id);
|
||||
|
@ -265,6 +271,7 @@ void add_openfpga_setup_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'build_fabric'
|
||||
*/
|
||||
/* The 'build_fabric' command should NOT be executed before 'link_openfpga_arch' */
|
||||
std::vector<ShellCommandId> build_fabric_dependent_cmds;
|
||||
build_fabric_dependent_cmds.push_back(link_arch_cmd_id);
|
||||
add_openfpga_build_fabric_command(shell,
|
||||
|
|
|
@ -17,9 +17,9 @@ namespace openfpga {
|
|||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
void add_openfpga_write_fabric_verilog_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
ShellCommandId add_openfpga_write_fabric_verilog_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const ShellCommandId& shell_cmd_build_fabric_id) {
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("write_fabric_verilog");
|
||||
|
||||
/* Add an option '--file' in short '-f'*/
|
||||
|
@ -50,10 +50,10 @@ void add_openfpga_write_fabric_verilog_command(openfpga::Shell<OpenfpgaContext>&
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, write_fabric_verilog);
|
||||
|
||||
/* The 'build_fabric' command should NOT be executed before 'link_openfpga_arch' */
|
||||
std::vector<ShellCommandId> cmd_dependency;
|
||||
cmd_dependency.push_back(shell_cmd_build_fabric_id);
|
||||
shell.set_command_dependency(shell_cmd_id, cmd_dependency);
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
|
@ -62,9 +62,9 @@ void add_openfpga_write_fabric_verilog_command(openfpga::Shell<OpenfpgaContext>&
|
|||
* - Add command dependency
|
||||
*******************************************************************/
|
||||
static
|
||||
void add_openfpga_write_verilog_testbench_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
ShellCommandId add_openfpga_write_verilog_testbench_command(openfpga::Shell<OpenfpgaContext>& shell,
|
||||
const ShellCommandClassId& cmd_class_id,
|
||||
const ShellCommandId& shell_cmd_build_fabric_id) {
|
||||
const std::vector<ShellCommandId>& dependent_cmds) {
|
||||
Command shell_cmd("write_verilog_testbench");
|
||||
|
||||
/* Add an option '--file' in short '-f'*/
|
||||
|
@ -97,15 +97,15 @@ void add_openfpga_write_verilog_testbench_command(openfpga::Shell<OpenfpgaContex
|
|||
shell.set_command_class(shell_cmd_id, cmd_class_id);
|
||||
shell.set_command_execute_function(shell_cmd_id, write_verilog_testbench);
|
||||
|
||||
/* The command should NOT be executed before 'build_fabric' */
|
||||
std::vector<ShellCommandId> cmd_dependency;
|
||||
cmd_dependency.push_back(shell_cmd_build_fabric_id);
|
||||
shell.set_command_dependency(shell_cmd_id, cmd_dependency);
|
||||
/* Add command dependency to the Shell */
|
||||
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
|
||||
|
||||
return shell_cmd_id;
|
||||
}
|
||||
|
||||
void add_openfpga_verilog_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
||||
/* Get the unique id of 'build_fabric' command which is to be used in creating the dependency graph */
|
||||
const ShellCommandId& shell_cmd_build_fabric_id = shell.command(std::string("build_fabric"));
|
||||
const ShellCommandId& build_fabric_cmd_id = shell.command(std::string("build_fabric"));
|
||||
|
||||
/* Add a new class of commands */
|
||||
ShellCommandClassId openfpga_verilog_cmd_class = shell.add_command_class("FPGA-Verilog");
|
||||
|
@ -113,16 +113,22 @@ void add_openfpga_verilog_commands(openfpga::Shell<OpenfpgaContext>& shell) {
|
|||
/********************************
|
||||
* Command 'write_fabric_verilog'
|
||||
*/
|
||||
/* The 'write_fabric_verilog' command should NOT be executed before 'build_fabric' */
|
||||
std::vector<ShellCommandId> fabric_verilog_dependent_cmds;
|
||||
fabric_verilog_dependent_cmds.push_back(build_fabric_cmd_id);
|
||||
add_openfpga_write_fabric_verilog_command(shell,
|
||||
openfpga_verilog_cmd_class,
|
||||
shell_cmd_build_fabric_id);
|
||||
fabric_verilog_dependent_cmds);
|
||||
|
||||
/********************************
|
||||
* Command 'write_verilog_testbench'
|
||||
*/
|
||||
/* The command 'write_verilog_testbench' should NOT be executed before 'build_fabric' */
|
||||
std::vector<ShellCommandId> verilog_testbench_dependent_cmds;
|
||||
verilog_testbench_dependent_cmds.push_back(build_fabric_cmd_id);
|
||||
add_openfpga_write_verilog_testbench_command(shell,
|
||||
openfpga_verilog_cmd_class,
|
||||
shell_cmd_build_fabric_id);
|
||||
verilog_testbench_dependent_cmds);
|
||||
}
|
||||
|
||||
} /* end namespace openfpga */
|
||||
|
|
|
@ -31,7 +31,10 @@ repack #--verbose
|
|||
|
||||
# Build the bitstream
|
||||
# - Output the fabric-independent bitstream to a file
|
||||
fpga_bitstream --verbose --file /var/tmp/xtang/openfpga_test_src/fabric_indepenent_bitstream.xml
|
||||
build_architecture_bitstream --verbose --file /var/tmp/xtang/openfpga_test_src/fabric_indepenent_bitstream.xml
|
||||
|
||||
# Build fabric-dependent bitstream
|
||||
build_fabric_bitstream --verbose
|
||||
|
||||
# Write the Verilog netlist for FPGA fabric
|
||||
# - Enable the use of explicit port mapping in Verilog netlist
|
||||
|
|
Loading…
Reference in New Issue