Giter Site home page Giter Site logo

Yosys assertion error on shift_reg about serv HOT 4 CLOSED

olofk avatar olofk commented on May 22, 2024
Yosys assertion error on shift_reg

from serv.

Comments (4)

olofk avatar olofk commented on May 22, 2024

I think I know the problem. yosys evaluates all verilog modules with their default parameter values first, and since the default value of LEN is 0, it fails.

In my opinion, the yosys behavior is a bit shifty since it's not uncommon to set default values to something that requires setting an explicit value (verilog requires a default value unlike VHDL).

In FuseSoC I have worked around this by setting

verilog_defaults -push
verilog_defaults -add -defer

before the read_verilog statements and then

verilog_defaults -pop

afterwards. I think that reads in the whole design top-down which sets the values correctly. Maybe @cliffordwolf can explain this better

from serv.

cliffordwolf avatar cliffordwolf commented on May 22, 2024

-defer defers elaboration of the module until hierarchy is executed. The default behavior is to always elaborate a module with its default parameters right away.

from serv.

nturley avatar nturley commented on May 22, 2024

That was it, I changed a default value parameter LEN = 2 and now it works fine.

from serv.

olofk avatar olofk commented on May 22, 2024

Closing this.

from serv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.