1CodeGen::Gui(3) User Contributed Perl Documentation CodeGen::Gui(3)
2
3
4
6 Verilog::Codegen::Gui - Verilog code generator GUI
7
9 $ ./gui.pl [design name]
10
11 The GUI and its utility scrips are in the "scripts" folder of the
12 distribution.
13
14 The design name is optional. If no design name is provided, the GUI
15 will check the .vcgrc file for one. If this file does not exists, the
16 design library module defaults to DeviceLibs/Verilog.pm and the objects
17 will reside directly under DeviceLibs/Objects. Otherwise, the design
18 library module will be DeviceLibs/YourDesign.pm and the objects will
19 reside under DeviceLibs/YourDesign/Objects. You can also set the design
20 name via the GUI.
21
23 The GUI is very simple to use. A short manual:
24
25 To create, test and run Verilog code using the Verilog::CodeGen GUI:
26
27 0. Choose your design.
28 In the Design text entry field, type the full name of the design. Click
29 Set.
30
31 If the design does not exist, it will be created, that is, an empty
32 structure with skeleton files will be created. Otherwise, the design
33 will be set to the entered value.
34
35 1. Create or edit the Device Object.
36 This is the Perl script that will generate the Verilog code.
37
38 · If this is a new file:
39
40 In the Device Object Code area text entry field, type the full name
41 of the script, including the ".pl" extension. Click Edit (hitting
42 return does not work). The GUI will create a skeleton from a
43 template, and open it in XEmacs.
44
45 · If the file already exists:
46
47 -If this was the last file to be modified previously, just click
48 Edit. The GUI will open the file in XEmacs.
49
50 -If not, type the beginning of the file in the Device Object Code
51 text entry field, then click Edit. The GUI will open the first file
52 matching the pattern in XEmacs.
53
54 2. Test the object code
55 In the Device Object Code area, click Parse. This executes the script
56 and displays the output in the Output log window. Ticking the Show
57 result tick box will cause the output to be displayed in an XEmacs
58 window. To close this window, click Done. This is a modal window, in
59 other words it will freeze the main display as long as it stays open.
60
61 3. Add the Device Object to the Device Library
62 When the object code is bug finished, click Update in the Device
63 Library Module area. This will add the device object to the device
64 library (which is a Perl module). Ticking the Show module tick box will
65 cause the complete library module to be displayed in an XEmacs window.
66 To close this window, click Done. This is a modal window, in other
67 words it will freeze the main display as long as it stays open.
68
69 4. Create or edit the test bench code
70 This is the Perl script that will generate the Verilog testbench code.
71
72 · If this is a new file:
73
74 In the Testbench Code area text entry field, type the full name of
75 the script, including the ".pl" extension, click Edit. The GUI will
76 create a skeleton from a template, and open it in XEmacs.
77
78 · If the file already exists:
79
80 -If this was the last file to be modified previously, just click
81 Edit. The GUI will open the file in XEmacs.
82
83 -If not, type the beginning of the file in the Device Object Code
84 text entry field. The testbench must have the name "test_"[device
85 obect file name]. Then click Edit. The GUI will open the first file
86 matching the pattern in XEmacs.
87
88 -If the Overwrite tick box is ticked, the existing script will be
89 overwritten with the skeleton. This is usefull in case of major
90 changes to the device object code.
91
92 5. Test the testbench code
93 In the Testbench Code area, click Parse. This executes the script and
94 displays the output in the Output log window.
95
96 -Ticking the Show result tick box will cause the output to be displayed
97 in an XEmacs window. To close this window, click Done. This is a modal
98 window, in other words it will freeze the main display as long as it
99 stays open.
100
101 -Ticking the Inspect code tick box will open a browser window with
102 pages generated by the v2html Verilog to HTML convertor.
103
104 -Ticking the Run tick box will execute the generated testbench.
105
106 -Ticking the Plot tick box will plot the simulation results (if any
107 exist).
108
110 · Perl-Tk
111 (<http://search.cpan.org/CPAN/authors/id/N/NI/NI-S/Tk-800.024.tar.gz>)
112
113 Otherwise, no GUI
114
115 · XEmacs (<http://xemacs.org>)
116
117 With gnuserv enabled, i.e. put the line (gnuserv-start) in your
118 .emacs. Without XEmacs, the GUI is rather useless.
119
120 For a better user experience, customize gnuserv to open files in
121 the active frame. By default, gnuserv will open a new frame for
122 every new file, and you end up with lots of frames.
123
124 o Choose Options->Customize->Group
125 o type gnuserv
126 o Open the "Gnuserv Frame" section (by clicking on the arrow)
127 o Tick "Use selected frame"
128
129 I also use the auto-revert-mode
130 <ftp://ftp.csd.uu.se/pub/users/andersl/emacs/autorevert.el> because
131 parsing the test bench code modifies it, and I got annoyed by
132 XEmacs prompting me for confirmation. See the file for details on
133 how to install.
134
135 The Verilog-mode (<http://www.verilog.com/>)is (obviously) very
136 usefull too.
137
138 · v2html (<http://www.burbleland.com/v2html/v2html.html>)
139
140 If you want to inspect the generated code, you need the v2html
141 Verilog to HTML convertor and a controllable browser, I use galeon
142 (<http://galeon.sourceforge.net>).
143
144 · A Verilog compiler/simulator
145
146 To run the testbench, I use Icarus Verilog
147 <http://icarus.com/eda/verilog/index.html>, a great open source
148 Verilog simulator.
149
150 · A VCD waveform viewer
151
152 To plot the results, I use GTkWave
153 (<http://www.cs.man.ac.uk/apt/tools/gtkwave/index.html>, a great
154 open source waveform viewer.
155
156 To use a different Verilog compiler/simulator and/or VCD viewer:
157 In CodeGen.pm, change the following lines:
158
159 #Modify this to use different compiler/simulator/viewer
160 my $compiler="/usr/bin/iverilog";
161 my $simulator="/usr/bin/vvp";
162 my $vcdviewer="/usr/local/bin/gtkwave";
163
165 · Convert the utility scripts to functions to be called from
166 Verilog::CodeGen.
167
168 · Put the GUI scripts in a module Gui.pm.
169
171 W. Vanderbauwhede wim@motherearth.org.
172
173 <http://www.comms.eee.strath.ac.uk/~wim>
174
176 Copyright (c) 2002,2003 Wim Vanderbauwhede. All rights reserved. This
177 program is free software; you can redistribute it and/or modify it
178 under the same terms as Perl itself.
179
180
181
182perl v5.32.0 2020-07-28 CodeGen::Gui(3)