mirror of https://github.com/YosysHQ/yosys.git
Added "yosys -D ALL"
This commit is contained in:
parent
09ffebb995
commit
9aa4b3309c
|
@ -216,6 +216,7 @@ int main(int argc, char **argv)
|
||||||
printf(" -D <header_id>[:<filename>]\n");
|
printf(" -D <header_id>[:<filename>]\n");
|
||||||
printf(" dump the design when printing the specified log header to a file.\n");
|
printf(" dump the design when printing the specified log header to a file.\n");
|
||||||
printf(" yosys_dump_<header_id>.il is used as filename if none is specified.\n");
|
printf(" yosys_dump_<header_id>.il is used as filename if none is specified.\n");
|
||||||
|
printf(" Use 'ALL' as <header_id> to dump at every header.\n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf(" -V\n");
|
printf(" -V\n");
|
||||||
printf(" print version information and exit\n");
|
printf(" print version information and exit\n");
|
||||||
|
@ -322,13 +323,23 @@ int main(int argc, char **argv)
|
||||||
case 'D':
|
case 'D':
|
||||||
{
|
{
|
||||||
auto args = split_tokens(optarg, ":");
|
auto args = split_tokens(optarg, ":");
|
||||||
if (GetSize(args) == 1)
|
if (!args.empty() && args[0] == "ALL") {
|
||||||
args.push_back("yosys_dump_" + args[0] + ".il");
|
if (GetSize(args) != 1) {
|
||||||
if (GetSize(args) != 2) {
|
fprintf(stderr, "Invalid number of tokens in -D ALL.\n");
|
||||||
fprintf(stderr, "Invalid number of tokens in -D.\n");
|
exit(1);
|
||||||
exit(1);
|
}
|
||||||
|
log_hdump_all = true;
|
||||||
|
} else {
|
||||||
|
if (!args.empty() && !args[0].empty() && args[0].back() == '.')
|
||||||
|
args[0].pop_back();
|
||||||
|
if (GetSize(args) == 1)
|
||||||
|
args.push_back("yosys_dump_" + args[0] + ".il");
|
||||||
|
if (GetSize(args) != 2) {
|
||||||
|
fprintf(stderr, "Invalid number of tokens in -D.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
log_hdump[args[0]].insert(args[1]);
|
||||||
}
|
}
|
||||||
log_hdump[args[0]].insert(args[1]);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -41,6 +41,7 @@ YOSYS_NAMESPACE_BEGIN
|
||||||
std::vector<FILE*> log_files;
|
std::vector<FILE*> log_files;
|
||||||
std::vector<std::ostream*> log_streams;
|
std::vector<std::ostream*> log_streams;
|
||||||
std::map<std::string, std::set<std::string>> log_hdump;
|
std::map<std::string, std::set<std::string>> log_hdump;
|
||||||
|
bool log_hdump_all = false;
|
||||||
FILE *log_errfile = NULL;
|
FILE *log_errfile = NULL;
|
||||||
SHA1 *log_hasher = NULL;
|
SHA1 *log_hasher = NULL;
|
||||||
|
|
||||||
|
@ -159,6 +160,9 @@ void logv_header(RTLIL::Design *design, const char *format, va_list ap)
|
||||||
logv(format, ap);
|
logv(format, ap);
|
||||||
log_flush();
|
log_flush();
|
||||||
|
|
||||||
|
if (log_hdump_all)
|
||||||
|
log_hdump[header_id].insert("yosys_dump_" + header_id + ".il");
|
||||||
|
|
||||||
if (log_hdump.count(header_id) && design != nullptr)
|
if (log_hdump.count(header_id) && design != nullptr)
|
||||||
for (auto &filename : log_hdump.at(header_id)) {
|
for (auto &filename : log_hdump.at(header_id)) {
|
||||||
log("Dumping current design to '%s'.\n", filename.c_str());
|
log("Dumping current design to '%s'.\n", filename.c_str());
|
||||||
|
|
|
@ -48,6 +48,7 @@ struct log_cmd_error_exception { };
|
||||||
extern std::vector<FILE*> log_files;
|
extern std::vector<FILE*> log_files;
|
||||||
extern std::vector<std::ostream*> log_streams;
|
extern std::vector<std::ostream*> log_streams;
|
||||||
extern std::map<std::string, std::set<std::string>> log_hdump;
|
extern std::map<std::string, std::set<std::string>> log_hdump;
|
||||||
|
extern bool log_hdump_all;
|
||||||
extern FILE *log_errfile;
|
extern FILE *log_errfile;
|
||||||
extern SHA1 *log_hasher;
|
extern SHA1 *log_hasher;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue