J
Jeremy Ralph
Guest
Correct me if I'm wrong, but I think the above looping constructs are
synthesizable provided N and THE_BASE are constant.
synthesizable provided N and THE_BASE are constant.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Sorry Steve, no cigar (and I get to keep my eye-teeth, Ha). AccordingWhat you are looking for is a generate statement. I believe that
the Xilinx xst synthesizer supports it, and the latest snapshots
of Icarus Verilog have recently added support for generate loops.
You might want to try it out and maybe send a few bug reports
before sending me your eye-teeth. Also, cash may be more sanitary.
Stephen Williams wrote:
What you are looking for is a generate statement. I believe that
the Xilinx xst synthesizer supports it, and the latest snapshots
of Icarus Verilog have recently added support for generate loops.
You might want to try it out and maybe send a few bug reports
before sending me your eye-teeth. Also, cash may be more sanitary.
Sorry Steve, no cigar (and I get to keep my eye-teeth, Ha). According
to:
http://www.synplicity.com/literature/pdf/Verilog_%202001.pdf
"Verilog 2001 has a new construct called generate that provides the
capability of creating MULTIPLE INSTANCES of the object within a
module"
This isn't what I want. I would like the compiler to generate a
simple two or three state FSM that loops over the same chunk of
verilog code rather than generating multiple copies of the code. Ah
well, maybe someday.
Hi,
I am trying to write a tool that shall process synthesizable HDL. I
wish to do this in a way such that I can support both Verilog and VHDL
without too much extra effort. (I don't really care about the
simulation specific syntactic structures of the languages, the
synthesizable subset is good enough.)
Does anybody know of any good open-source parsers for verilog and vhdl
that produce a common dataflow tree, that I might use as my starting
point?
Thanks.
Nikhil
Under the assumption that the designer is a lazy weasel, yes you're right.Unless this diagram though is taken as something to design to it becomes
obsolete and out of date real quickly though since it doesn't get
maintained.
100% agreed.If it IS something that will be designed to then it should be
part of the design specification.
Yet another format: yes, OK. Proprietary: no, I wouldn't have thought so.For timing diagrams I have a neat web-based tool I wrote myself...
Yet another proprietary format!!! (Sorry, couldn't resist, even if you do
have a wonderful tool)
Under the assumption that the designer is a lazy weasel, yes you're right.Unless this diagram though is taken as something to design to it becomes
obsolete and out of date real quickly though since it doesn't get
maintained.
100% agreed.If it IS something that will be designed to then it should be
part of the design specification.
Yet another format: yes, OK. Proprietary: no, I wouldn't have thought so.For timing diagrams I have a neat web-based tool I wrote myself...
Yet another proprietary format!!! (Sorry, couldn't resist, even if you do
have a wonderful tool)
Under the assumption that the designer is a lazy weasel, yes you're right.Unless this diagram though is taken as something to design to it becomes
obsolete and out of date real quickly though since it doesn't get
maintained.
100% agreed.If it IS something that will be designed to then it should be
part of the design specification.
Yet another format: yes, OK. Proprietary: no, I wouldn't have thought so.For timing diagrams I have a neat web-based tool I wrote myself...
Yet another proprietary format!!! (Sorry, couldn't resist, even if you do
have a wonderful tool)
Dear all,
I am trying to implement a complex number multiplier. However, when
I write down the code and simulate it in Modelsim, everything is ok.
However, when I used the same code to simualte it in VCS, some errors
occured and I captured the waveform and attached.
At the time of the vertical dotted line, ar=55d, ai=89d, br=127d,
bi=0. After a clock cycle, it will calculate ar*br, ar*bi, ai*br and ai*bi.
I expect the result should be:
ar*br=55*127 = 6985;
ar*bi=55*0 = 0;
ai*br=89*127=11303
ai*bi=89*0 = 0
However, from the simulation, the result is:
ar*br=6096;
ar*bi= 0;
ai*br=9779;
ai*bi=0
Here is my relevant source code:
always@ (posedge clk or posedge rst)
begin
if (rst != 1)
begin
arMulbr <= $signed(ar) * $signed(br);
aiMulbi <= $signed(ai) * $signed(bi);
arMulbi <= $signed(ar) * $signed(bi);
aiMulbr <= $signed(ai) * $signed(br);
yr <= $signed(arMulbr) - $signed(aiMulbi);
yi <= $signed(arMulbi) + $signed(aiMulbr);
end
else
begin
arMulbr <= 0;
aiMulbi <= 0;
arMulbi <= 0;
aiMulbr <= 0;
yr <= 0;
yi <= 0;
end
Anyone knows why this errors occured? (Notes that I used ModelSim
to simulate the above code and everything is ok). Thank you very much!!
Henry