Error out if no top module given before 'sim'
authorEddie Hung <eddie@fpgeh.com>
Wed, 5 Jun 2019 21:16:24 +0000 (14:16 -0700)
committerEddie Hung <eddie@fpgeh.com>
Wed, 5 Jun 2019 21:16:24 +0000 (14:16 -0700)
passes/sat/sim.cc

index 53e248adf578d576ca883ddd32dc303f5fc77ada..4c3022c709d451d7a48d5f63800209025fb178ac 100644 (file)
@@ -88,6 +88,8 @@ struct SimInstance
        SimInstance(SimShared *shared, Module *module, Cell *instance = nullptr, SimInstance *parent = nullptr) :
                        shared(shared), module(module), instance(instance), parent(parent), sigmap(module)
        {
+               log_assert(module);
+
                if (parent) {
                        log_assert(parent->children.count(instance) == 0);
                        parent->children[instance] = this;
@@ -848,6 +850,9 @@ struct SimPass : public Pass {
 
                if (design->full_selection()) {
                        top_mod = design->top_module();
+
+                       if (!top_mod)
+                               log_cmd_error("Design has no top module, use the 'hierarchy' command to specify one.\n");
                } else {
                        auto mods = design->selected_whole_modules();
                        if (GetSize(mods) != 1)