Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Verilog::CodeGen::Gui.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "CodeGen::Gui 3"
132.TH CodeGen::Gui 3 "2003-05-09" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134\&\fBVerilog::Codegen::Gui\fR \- Verilog code generator GUI
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& $ ./gui.pl [design name]
139.Ve
140.PP
141The \s-1GUI\s0 and its utility scrips are in the \f(CW\*(C`scripts\*(C'\fR folder of the distribution.
142.PP
143The design name is optional. If no design name is provided, the \s-1GUI\s0 will check the .vcgrc file for one. If this file does not exists, the design library module defaults to DeviceLibs/Verilog.pm and the objects will reside directly under DeviceLibs/Objects. Otherwise, the design library module will be DeviceLibs/YourDesign.pm and the objects will reside under DeviceLibs/YourDesign/Objects. You can also set the design name via the \s-1GUI\s0.
144.SH "USAGE"
145.IX Header "USAGE"
146The \s-1GUI\s0 is very simple to use. A short manual:
147.PP
148To create, test and run Verilog code using the Verilog::CodeGen \s-1GUI:\s0
149.Sh "0. Choose your design."
150.IX Subsection "0. Choose your design."
151In the \fBDesign\fR text entry field, type the full name of the design. Click \fBSet\fR.
152.PP
153If the design does not exist, it will be created, that is, an empty structure with skeleton files will be created. Otherwise, the design will be set to the entered value.
154.Sh "1. Create or edit the Device Object."
155.IX Subsection "1. Create or edit the Device Object."
156This is the Perl script that will generate the Verilog code.
157.IP "\(bu" 4
158If this is a new file:
159.Sp
160In the \fBDevice Object Code\fR area text entry field, type the full name of the script, \fIincluding\fR the \f(CW\*(C`.pl\*(C'\fR extension. Click \fBEdit\fR (hitting return does not work). The \s-1GUI\s0 will create a skeleton from a template, and open it in XEmacs.
161.IP "\(bu" 4
162If the file already exists:
163.Sp
164\&\-If this was the last file to be modified previously, just click \fBEdit\fR. The \s-1GUI\s0 will open the file in XEmacs.
165.Sp
166\&\-If not, type the beginning of the file in the \fBDevice Object Code\fR text entry field, then click \fBEdit\fR. The \s-1GUI\s0 will open the first file matching the pattern in XEmacs.
167.Sh "2. Test the object code"
168.IX Subsection "2. Test the object code"
169In the \fBDevice Object Code\fR area, click \fBParse\fR. This executes the script and displays the output in the \fBOutput log\fR window. Ticking the \fBShow result\fR tick box will cause the output to be displayed in an XEmacs window. To close this window, click \fBDone\fR. This is a modal window, in other words it will freeze the main display as long as it stays open.
170.Sh "3. Add the Device Object to the Device Library"
171.IX Subsection "3. Add the Device Object to the Device Library"
172When the object code is bug finished, click \fBUpdate\fR in the \fBDevice Library Module\fR area. This will add the device object to the device library (which is a Perl module). Ticking the \fBShow module\fR tick box will cause the complete library module to be displayed in an XEmacs window. To close this window, click \fBDone\fR. This is a modal window, in other words it will freeze the main display as long as it stays open.
173.Sh "4. Create or edit the test bench code"
174.IX Subsection "4. Create or edit the test bench code"
175This is the Perl script that will generate the Verilog testbench code.
176.IP "\(bu" 4
177If this is a new file:
178.Sp
179In the \fBTestbench Code\fR area text entry field, type the full name of the script, \fIincluding\fR the \f(CW\*(C`.pl\*(C'\fR extension, click \fBEdit\fR. The \s-1GUI\s0 will create a skeleton from a template, and open it in XEmacs.
180.IP "\(bu" 4
181If the file already exists:
182.Sp
183\&\-If this was the last file to be modified previously, just click \fBEdit\fR. The \s-1GUI\s0 will open the file in XEmacs.
184.Sp
185\&\-If not, type the beginning of the file in the \fBDevice Object Code\fR text entry field. The testbench \fImust\fR have the name \f(CW\*(C`test_\*(C'\fR\fI[device obect file name]\fR. Then click \fBEdit\fR. The \s-1GUI\s0 will open the first file matching the pattern in XEmacs.
186.Sp
187\&\-If the \fBOverwrite\fR tick box is ticked, the existing script will be overwritten with the skeleton. This is usefull in case of major changes to the device object code.
188.Sh "5. Test the testbench code"
189.IX Subsection "5. Test the testbench code"
190In the \fBTestbench Code\fR area, click \fBParse\fR. This executes the script and displays the output in the \fBOutput log\fR window.
191.PP
192\&\-Ticking the \fBShow result\fR tick box will cause the output to be displayed in an XEmacs window. To close this window, click \fBDone\fR. This is a modal window, in other words it will freeze the main display as long as it stays open.
193.PP
194\&\-Ticking the \fBInspect code\fR tick box will open a browser window with pages generated by the \fBv2html\fR Verilog to \s-1HTML\s0 convertor.
195.PP
196\&\-Ticking the \fBRun\fR tick box will execute the generated testbench.
197.PP
198\&\-Ticking the \fBPlot\fR tick box will plot the simulation results (if any exist).
199.SH "REQUIREMENTS"
200.IX Header "REQUIREMENTS"
201.IP "\(bu" 4
202\&\fBPerl-Tk\fR (<http://search.cpan.org/CPAN/authors/id/N/NI/NI\-S/Tk\-800.024.tar.gz>)
203.Sp
204Otherwise, no \s-1GUI\s0
205.IP "\(bu" 4
206\&\fBXEmacs\fR (<http://xemacs.org>)
207.Sp
208With \fBgnuserv\fR enabled, i.e. put the line (gnuserv\-start) in your .emacs. Without XEmacs, the \s-1GUI\s0 is rather useless.
209.Sp
210For a better user experience, customize gnuserv to open files in the active frame. By default, gnuserv will open a new frame for every new file, and you end up with lots of frames.
211.Sp
212.Vb 4
213\& o Choose Options->Customize->Group
214\& o type gnuserv
215\& o Open the "Gnuserv Frame" section (by clicking on the arrow)
216\& o Tick "Use selected frame"
217.Ve
218.Sp
219I also use the \fBauto-revert-mode\fR <ftp://ftp.csd.uu.se/pub/users/andersl/emacs/autorevert.el> because parsing the test bench code modifies it, and I got annoyed by XEmacs prompting me for confirmation. See the file for details on how to install.
220.Sp
221The \fBVerilog-mode\fR (<http://www.verilog.com/>)is (obviously) very usefull too.
222.IP "\(bu" 4
223\&\fBv2html\fR (<http://www.burbleland.com/v2html/v2html.html>)
224.Sp
225If you want to inspect the generated code, you need the v2html Verilog to \s-1HTML\s0 convertor and a controllable browser, I use galeon (<http://galeon.sourceforge.net>).
226.IP "\(bu" 4
227\&\fBA Verilog compiler/simulator\fR
228.Sp
229To run the testbench, I use Icarus Verilog <http://icarus.com/eda/verilog/index.html>, a great open source Verilog simulator.
230.IP "\(bu" 4
231\&\fBA \s-1VCD\s0 waveform viewer\fR
232.Sp
233To plot the results, I use GTkWave (<http://www.cs.man.ac.uk/apt/tools/gtkwave/index.html>, a great open source waveform viewer.
234.Sh "To use a different Verilog compiler/simulator and/or \s-1VCD\s0 viewer:"
235.IX Subsection "To use a different Verilog compiler/simulator and/or VCD viewer:"
236In CodeGen.pm, change the following lines:
237.PP
238.Vb 4
239\& #Modify this to use different compiler/simulator/viewer
240\& my $compiler="/usr/bin/iverilog";
241\& my $simulator="/usr/bin/vvp";
242\& my $vcdviewer="/usr/local/bin/gtkwave";
243.Ve
244.SH "TODO"
245.IX Header "TODO"
246.IP "\(bu" 4
247Convert the utility scripts to functions to be called from Verilog::CodeGen.
248.IP "\(bu" 4
249Put the \s-1GUI\s0 scripts in a module Gui.pm.
250.SH "AUTHOR"
251.IX Header "AUTHOR"
252W. Vanderbauwhede \fBwim@motherearth.org\fR.
253.PP
254<http://www.comms.eee.strath.ac.uk/~wim>
255.SH "COPYRIGHT"
256.IX Header "COPYRIGHT"
257Copyright (c) 2002,2003 Wim Vanderbauwhede. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.