Re: gEDA-user: Icarus verilog Synthesis

2010-09-10 Thread gene glick

   I am looking for a book that for example describes how a
   for/while/repeat/forever and other verilog behavioral constructs are
   converted to multiplexors/and gates etc.



For FPGA work, I am unaware of any engine that can synthesize those 
constructs.


If you read through the XST manual from Xilinx (just for an example), I 
am pretty sure they tell you what can and cannot be synthesized.  The 
commands you just listed work well for test benches or other 
verification code (and simulation too) but are probably not appropriate 
for fpga level design.


Maybe VLSI is different - but I have no experience with that.




___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Icarus verilog Synthesis

2010-09-09 Thread Ronald Mathias
   Hi,



   Does any one know about any book that describes how to convert a
   behavioral code into unoptimized gate level netlist.



   I know that after an unoptimized gate level netlist is got logic
   synthesis is applied to get an optimized netlist.



   I have a book called Algorithms for VLSI Design Automation. It has a
   chapeter on high level synthesis. But it doesnt explain my above
   question.



   I am looking for a book that for example describes how a
   for/while/repeat/forever and other verilog behavioral constructs are
   converted to multiplexors/and gates etc.



   Regards,

   Ronald


   On 9/5/10, Ronald Mathias [1]ronnie.math...@gmail.com wrote:

   Hi,



   Thanks a lot.



   Regards

   Ronald Mathias


   On 9/4/10, Philipp Klaus Krause [2]...@spth.de wrote:

 Am 04.09.2010 06:19, schrieb Ronald Mathias:
 
 
 I transform the Verilog code containing behavioral statements
 into
 verilog code that contains only gate level instantiations. This
 is
 passed as input to ABC Logic synthesis tool. Finally the
 output generated by ABC is passed to Versatile Place and
 Route(VPR)
 program which generates the bitstream.
 You don't have to go down to gate level: Simple verilog, (e.g. still
 allowed to use '+', '-', but not '*', etc) can be read by vl2mv, you
 can
 the use vis to flatten the resulting blif-mv into blif, which can be
 read by abc.
 This is the way I currently do synthesis (for a simulated asic,
 directly
 writing the simple verilog vl2mv understands; the resulting gate
 level
 verilog is then simulated in Icarus to get timing).
 Philipp
 ___
 geda-user mailing list
 [3]geda-u...@moria.seul.org
 [4]http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

References

   1. mailto:ronnie.math...@gmail.com
   2. mailto:p...@spth.de
   3. mailto:geda-user@moria.seul.org
   4. http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Icarus verilog Synthesis

2010-09-04 Thread Philipp Klaus Krause
Am 04.09.2010 06:19, schrieb Ronald Mathias:
 
 
I transform the Verilog code containing behavioral statements into
verilog code that contains only gate level instantiations. This is
passed as input to ABC Logic synthesis tool. Finally the
output generated by ABC is passed to Versatile Place and Route(VPR)
program which generates the bitstream.


You don't have to go down to gate level: Simple verilog, (e.g. still
allowed to use '+', '-', but not '*', etc) can be read by vl2mv, you can
the use vis to flatten the resulting blif-mv into blif, which can be
read by abc.
This is the way I currently do synthesis (for a simulated asic, directly
writing the simple verilog vl2mv understands; the resulting gate level
verilog is then simulated in Icarus to get timing).

Philipp


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Icarus verilog Synthesis

2010-09-04 Thread Ronald Mathias
   Hi,



   Thanks a lot.



   Regards

   Ronald Mathias


   On 9/4/10, Philipp Klaus Krause [1]...@spth.de wrote:

 Am 04.09.2010 06:19, schrieb Ronald Mathias:
 
 
 I transform the Verilog code containing behavioral statements
 into
 verilog code that contains only gate level instantiations. This
 is
 passed as input to ABC Logic synthesis tool. Finally the
 output generated by ABC is passed to Versatile Place and
 Route(VPR)
 program which generates the bitstream.
 You don't have to go down to gate level: Simple verilog, (e.g. still
 allowed to use '+', '-', but not '*', etc) can be read by vl2mv, you
 can
 the use vis to flatten the resulting blif-mv into blif, which can be
 read by abc.
 This is the way I currently do synthesis (for a simulated asic,
 directly
 writing the simple verilog vl2mv understands; the resulting gate
 level
 verilog is then simulated in Icarus to get timing).
 Philipp
 ___
 geda-user mailing list
 [2]geda-u...@moria.seul.org
 [3]http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

References

   1. mailto:p...@spth.de
   2. mailto:geda-user@moria.seul.org
   3. http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Icarus verilog Synthesis

2010-09-03 Thread Stephen Williams

What are you trying to do? Are you really trying to synthesize your
Verilog design, meaning you are trying to generate a bit stream to
load into your FPGA? Or are you trying to compile and simulate your
Verilog?

Icarus Verilog is mostly a *simulator*, not a synthesizer. There were
some synthesis capabilities back in the 0.8 release, but that support
has been largely dropped in the 0.9 releases or current devel branch.

Verilog code generator? OK, this suggests that you really are trying
to *synthesize* (and not simulate) and no, not even the 0.8 release
supported synthesis of user defined tasks.

Ronald Mathias wrote:
Hi,
 
 
 
I have written a verilog code that makes use of a user defined task to
do some computation. The task takes two parameters as input and one
parameter as output.
 
 
 
When I try to synthesize it, I get the following error:
 
 
 
internal error: NetProc::nex_output not implemented on object
type NetUTask
 
internal error: NetProc::nex_output not implemented on object
type NetUTask
 
Does this mean that icarus verilog has not yet support for synthesis of
user defined tasks?
 
When I try to send the elaborated netlist to the verilog code generator
back end, the task definition is missing from the output.
 
Is this a bug or the verilog code generator backend is still not
completely implemented ?
 
Regards,
 
Ronald

-- 
Steve WilliamsThe woods are lovely, dark and deep.
steve at icarus.com   But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com   And lines to code before I sleep.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user