R
Ron
Guest
I just recently completed my first sizable Verilog design, and following
the advice of the Verilog books I have, made everything nicely
modularized and hierarchical, etc., so that it was very easy to read and
understand. Now I realize that my modular hierarchical design created
multiple instances of the lower level modules (multiply, divide, etc)
even though they are invoked sequentially rather than running in
parallel. I had sort of expected this to happen, but figured there would
be enough LUTs that it wouldn't matter - ha!
Now I'm in the process of "flattening" out my design so that it will
consist of a single huge top level module with only one layer of
hierarchy (ie; no module nesting except for the top level and one level
beneath that), and it's turning out to be just a messy as I expected.
I have two questions:
1. Is there any type of design methodology that addresses this problem
of duplicated modules? Should I toss my books out and do my next design
from the bottom-up and use only one level of hierarchy, or is there a
better approach?
2. Any advice or suggested books, articles, etc., on how best to flatten
my design without going crazy in the process from the complexity of it?
Its about 2000 lines of Verilog code.
Thanks,
Ron
the advice of the Verilog books I have, made everything nicely
modularized and hierarchical, etc., so that it was very easy to read and
understand. Now I realize that my modular hierarchical design created
multiple instances of the lower level modules (multiply, divide, etc)
even though they are invoked sequentially rather than running in
parallel. I had sort of expected this to happen, but figured there would
be enough LUTs that it wouldn't matter - ha!
Now I'm in the process of "flattening" out my design so that it will
consist of a single huge top level module with only one layer of
hierarchy (ie; no module nesting except for the top level and one level
beneath that), and it's turning out to be just a messy as I expected.
I have two questions:
1. Is there any type of design methodology that addresses this problem
of duplicated modules? Should I toss my books out and do my next design
from the bottom-up and use only one level of hierarchy, or is there a
better approach?
2. Any advice or suggested books, articles, etc., on how best to flatten
my design without going crazy in the process from the complexity of it?
Its about 2000 lines of Verilog code.
Thanks,
Ron