origen_sim 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d3ab8cb5d8aa155ae27711a8fba140910316c97
4
- data.tar.gz: 6df912a7d278020ba64bda1d203fc3efd7f5d5a1
3
+ metadata.gz: f60a5e099e0edaf4c0c769034d2eb9dd2cef4660
4
+ data.tar.gz: b89dd7aa4de98bd80bd7b130158ef0c5a2f0acc1
5
5
  SHA512:
6
- metadata.gz: c5e6a4e7fcab4e0aff503dcbcacace8f929e50e4cb971029b4dc7ae850196a1014f512d5112af8685ff4a002b82d4493df1854fa07a99bc68ccb138d80857eed
7
- data.tar.gz: c7dc8d1c270e0a1426177b0b3e96489aa8e714fe13299219f3a03fb7e675f3930c0dc9e106603f4042320118603aa42ecc6faaee0ffa1366152758d7af648a1c
6
+ metadata.gz: 17cb26ed22d5098edcdc59a2e5ee23e35a8b36b4b9b2b6959990bd151880da02a925719286a46b9d9dc20711a1640dbab809fbb01de5139ae7f5845c97a8bc52
7
+ data.tar.gz: c30220fbebb6a393bdc5ff05e80d51401aa40b7ac031f69c56fa14c7ee673b2111851682e46967b767afaa72ae0299c517c32fd3ff1616ab5fd5a32ec5195a70
data/config/commands.rb CHANGED
@@ -20,25 +20,34 @@ when "sim:build_example"
20
20
  output = `origen sim:build #{Origen.app.remotes_dir}/example_rtl/dut1/dut1.v`
21
21
  puts output
22
22
  Origen.load_target
23
- FileUtils.mkdir_p "simulation/default/#{tester.simulator.config[:vendor]}"
23
+ dir = "simulation/default/#{tester.simulator.config[:vendor]}"
24
+ FileUtils.rm_rf(dir) if File.exist?(dir)
25
+ FileUtils.mkdir_p(dir)
24
26
  case tester.simulator.config[:vendor]
25
27
  when :icarus
26
28
  output =~ / (cd .*)\n/
27
29
  system $1
28
30
  FileUtils.mv "#{Origen.config.output_directory}/origen.vpi", "simulation/default/icarus"
29
- output =~ / (iverilog .*)\n/
31
+ output =~ /\n(.*iverilog .*)\n/
30
32
  system $1
31
33
  FileUtils.mv "origen.vvp", "simulation/default/icarus"
32
34
 
33
35
  when :cadence
34
- output =~ / (irun .*)\n/
35
- system = $1
36
+ output =~ /\n(.*irun .*)\n/
37
+ system $1
36
38
  FileUtils.mv "INCA_libs", "simulation/default/cadence"
37
39
 
40
+ when :synopsys
41
+ output =~ /\n(.*vcs .*)\n/
42
+ system $1
43
+ FileUtils.mv "simv", "simulation/default/synopsys"
44
+ FileUtils.mv "simv.daidir", "simulation/default/synopsys"
45
+ FileUtils.rm_rf "csrc"
46
+
38
47
  end
39
48
 
40
49
  puts
41
- puts "Done, run this command to run a test simulation:"
50
+ puts "Done, run this command to run a test simulation using #{tester.simulator.config[:vendor]}:"
42
51
  puts
43
52
  puts " origen g test"
44
53
  puts
@@ -6,7 +6,7 @@ when "sim:build", "origen_sim:build"
6
6
 
7
7
  else
8
8
  @global_commands << <<-EOT
9
- sim:build Build an Origen testbench and simulator extension for a given RTL design
9
+ sim:build Build an Origen testbench and simulator extension for a given design
10
10
  EOT
11
11
 
12
12
  end
data/config/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module OrigenSim
2
2
  MAJOR = 0
3
- MINOR = 6
3
+ MINOR = 7
4
4
  BUGFIX = 0
5
5
  DEV = nil
6
6
 
data/ext/origen.c CHANGED
@@ -108,14 +108,3 @@ static void register_callback(PLI_INT32 aReason, PLI_INT32 (*aHandler)(p_cb_data
108
108
  /// Bootstrap vector, make the simulator execute init() on startup
109
109
  ///
110
110
  void (*vlog_startup_routines[])(void) = { init, 0 };
111
-
112
- #if defined(CVER) || defined(VCS) || defined(NCSIM)
113
- void vlog_startup_routines_bootstrap()
114
- {
115
- unsigned int i;
116
- for (i = 0; vlog_startup_routines[i]; i++)
117
- {
118
- vlog_startup_routines[i]();
119
- }
120
- }
121
- #endif
@@ -9,12 +9,12 @@ options = { source_dirs: [] }
9
9
  app_options = @application_options || []
10
10
  opt_parser = OptionParser.new do |opts|
11
11
  opts.banner = <<-EOT
12
- Build an Origen testbench and simulator VPI extension for the given top-level RTL design.
12
+ Build an Origen testbench and simulator VPI extension for the given top-level RTL design file (or a stub).
13
13
 
14
14
  The created artifacts should be included in a compilation of the given design to create
15
15
  an Origen-enabled simulation object that can be used to simulate Origen-based test patterns.
16
16
 
17
- Usage: origen sim:build TOP_LEVEL_RTL_FILE [options]
17
+ Usage: origen sim:build TOP_LEVEL_VERILOG_FILE [options]
18
18
  EOT
19
19
  opts.on('-o', '--output DIR', String, 'Override the default output directory') { |t| options[:output] = t }
20
20
  opts.on('-t', '--top NAME', String, 'Specify the top-level Verilog module name if OrigenSim can\'t work it out') { |t| options[:top_level_name] = t }
@@ -117,33 +117,59 @@ puts ' -timescale 1ns/1ns'
117
117
  puts
118
118
  puts 'Here is an example which may work for the file you just parsed (add additional -incdir options at the end if required):'
119
119
  puts
120
- puts " irun #{rtl_top} #{output_directory}/origen.v #{output_directory}/*.c -ccargs \"-std=c99\" -top origen -elaborate -snapshot origen -access +rw -timescale 1ns/1ns -incdir #{Pathname.new(rtl_top).dirname}"
120
+ puts " #{ENV['ORIGEN_SIM_IRUN'] || 'irun'} #{rtl_top} #{output_directory}/origen.v #{output_directory}/*.c -ccargs \"-std=c99\" -top origen -elaborate -snapshot origen -access +rw -timescale 1ns/1ns -incdir #{Pathname.new(rtl_top).dirname}"
121
121
  puts
122
122
  puts 'Copy the following directory (produced by irun) to simulation/<target>/cadence/. within your Origen application:'
123
123
  puts
124
124
  puts ' INCA_libs'
125
125
  puts
126
126
  puts '-----------------------------------------------------------'
127
+ puts 'Synopsys VCS'
128
+ puts '-----------------------------------------------------------'
129
+ puts
130
+ puts 'Add the following to your build script (AND REMOVE ANY OTHER TESTBENCH!):'
131
+ puts
132
+ puts " #{output_directory}/origen.v \\"
133
+ puts " #{output_directory}/brdige.c \\"
134
+ puts " #{output_directory}/client.c \\"
135
+ puts ' -CFLAGS "-std=c99" \\'
136
+ puts ' +vpi \\'
137
+ puts " -use_vpiobj #{output_directory}/origen.c \\"
138
+ puts ' +define+ORIGEN_VPD=1 \\'
139
+ puts ' -debug_access+all \\'
140
+ puts ' -PP \\'
141
+ puts ' -timescale=1ns/1ns'
142
+ puts
143
+ puts 'Here is an example which may work for the file you just parsed (add additional -incdir options at the end if required):'
144
+ puts
145
+ puts " #{ENV['ORIGEN_SIM_VCS'] || 'vcs'} #{rtl_top} #{output_directory}/origen.v #{output_directory}/bridge.c #{output_directory}/client.c -CFLAGS \"-std=c99\" +vpi -use_vpiobj #{output_directory}/origen.c -timescale=1ns/1ns +define+ORIGEN_VPD=1 +incdir+#{Pathname.new(rtl_top).dirname} -debug_access+all -PP"
146
+ puts
147
+ puts 'Copy the following files (produced by vcs) to simulation/<target>/synopsys/. within your Origen application:'
148
+ puts
149
+ puts ' simv'
150
+ puts ' simv.daidir'
151
+ puts
152
+ puts '-----------------------------------------------------------'
127
153
  puts 'Icarus Verilog'
128
154
  puts '-----------------------------------------------------------'
129
155
  puts
130
156
  puts 'Compile the VPI extension using the following command:'
131
157
  puts
132
- puts " cd #{output_directory} && iverilog-vpi *.c -DICARUS --name=origen && cd #{Pathname.pwd}"
158
+ puts " cd #{output_directory} && #{ENV['ORIGEN_SIM_IVERILOG_VPI'] || 'iverilog-vpi'} *.c --name=origen && cd #{Pathname.pwd}"
133
159
  puts
134
160
  puts 'Add the following to your build script (AND REMOVE ANY OTHER TESTBENCH!):'
135
161
  puts
136
162
  puts " #{output_directory}/origen.v \\"
137
163
  puts ' -o origen.vvp \\'
138
- puts ' -DICARUS'
164
+ puts ' -DORIGEN_VCD'
139
165
  puts
140
166
  puts 'Here is an example which may work for the file you just parsed (add additional source dirs with more -I options at the end if required):'
141
167
  puts
142
- puts " iverilog #{rtl_top} #{output_directory}/origen.v -o origen.vvp -DICARUS -I #{Pathname.new(rtl_top).dirname}"
168
+ puts " #{ENV['ORIGEN_SIM_IVERILOG'] || 'iverilog'} #{rtl_top} #{output_directory}/origen.v -o origen.vvp -DICARUS -I #{Pathname.new(rtl_top).dirname}"
143
169
  puts
144
- puts 'Copy the following files to simulation/<target>/icarus/. within your Origen application:'
170
+ puts 'Copy the following files (produced by iverilog) to simulation/<target>/icarus/. within your Origen application:'
145
171
  puts
146
172
  puts " #{output_directory}/origen.vpi"
147
- puts ' origen.vvp (produced by the iverilog command)'
173
+ puts ' origen.vvp'
148
174
  puts
149
175
  puts
@@ -6,7 +6,7 @@ module OrigenSim
6
6
  class Simulator
7
7
  include Origen::PersistentCallbacks
8
8
 
9
- VENDORS = [:icarus, :cadence]
9
+ VENDORS = [:icarus, :cadence, :synopsys]
10
10
 
11
11
  attr_reader :socket, :failed, :configuration
12
12
  alias_method :config, :configuration
@@ -157,7 +157,7 @@ module OrigenSim
157
157
  else
158
158
  # We tried our best, start from scratch
159
159
  d = "#{Origen.root!}/templates/empty.#{wave_config_ext}"
160
- FileUtils.cp(d, f)
160
+ FileUtils.cp(d, f) if File.exist?(d)
161
161
  end
162
162
  end
163
163
  end
@@ -171,6 +171,8 @@ module OrigenSim
171
171
  'gtkw'
172
172
  when :cadence
173
173
  'svcf'
174
+ when :synopsys
175
+ 'tcl'
174
176
  end
175
177
  end
176
178
 
@@ -209,6 +211,13 @@ module OrigenSim
209
211
  cmd += " -r origen -snapshot origen +socket+#{socket_id}"
210
212
  cmd += $use_fast_probe_depth ? " -input #{input_file_fast}" : " -input #{input_file}"
211
213
  cmd += " -nclibdirpath #{compiled_dir}"
214
+
215
+ when :synopsys
216
+ cmd = "#{compiled_dir}/simv +socket+#{socket_id} -vpd_file origen.vpd"
217
+
218
+ else
219
+ fail "Run cmd not defined yet for simulator #{config[:vendor]}"
220
+
212
221
  end
213
222
  cmd
214
223
  end
@@ -234,13 +243,23 @@ module OrigenSim
234
243
  f = Pathname.new(wave_config_file).relative_path_from(edir.expand_path)
235
244
  cmd += " -input #{f} &"
236
245
 
246
+ when :synopsys
247
+ edir = Pathname.new(wave_config_dir).relative_path_from(Pathname.pwd)
248
+ cmd = "cd #{edir} && "
249
+ cmd += configuration[:dve] || 'dve'
250
+ dir = Pathname.new(wave_dir).relative_path_from(edir.expand_path)
251
+ cmd += " -vpd #{dir}/origen.vpd"
252
+ f = Pathname.new(wave_config_file).relative_path_from(edir.expand_path)
253
+ cmd += " -session #{f}"
254
+ cmd += ' &'
255
+
237
256
  end
238
257
  cmd
239
258
  end
240
259
 
241
260
  def run_dir
242
261
  case config[:vendor]
243
- when :icarus
262
+ when :icarus, :synopsys
244
263
  wave_dir
245
264
  else
246
265
  tmp_dir
@@ -568,7 +587,7 @@ module OrigenSim
568
587
  ended = Time.now
569
588
  end_simulation
570
589
  # Give the simulator a few seconds to shut down, otherwise kill it
571
- sleep 1 while running? && (Time.now - ended) < 5
590
+ sleep 1 while running? && (Time.now - ended) < 10
572
591
  Process.kill(15, pid) if running?
573
592
  sleep 0.1
574
593
  # Leave the pid file around if we couldn't verify the simulator
@@ -0,0 +1,352 @@
1
+ # Begin_DVE_Session_Save_Info
2
+ # DVE full session
3
+ # Saved on Tue Feb 6 08:56:45 2018
4
+ # Designs open: 1
5
+ # V1: /scratch/nxa21353/Code/github/origen_sim/waves/default/origen.vpd
6
+ # Toplevel windows open: 2
7
+ # TopLevel.1
8
+ # TopLevel.2
9
+ # Source.1: origen.dut
10
+ # Wave.1: 3 signals
11
+ # Group count = 2
12
+ # Group Debug signal count = 3
13
+ # Group DUT signal count = 0
14
+ # End_DVE_Session_Save_Info
15
+
16
+ # DVE version: L-2016.06
17
+ # DVE build date: May 24 2016 21:00:26
18
+
19
+
20
+ #<Session mode="Full" path="/scratch/nxa21353/Code/github/origen_sim/config/waves/default/nxa21353.tcl" type="Debug">
21
+
22
+ gui_set_loading_session_type Post
23
+ gui_continuetime_set
24
+
25
+ # Close design
26
+ if { [gui_sim_state -check active] } {
27
+ gui_sim_terminate
28
+ }
29
+ gui_close_db -all
30
+ gui_expr_clear_all
31
+
32
+ # Close all windows
33
+ gui_close_window -type Console
34
+ gui_close_window -type Wave
35
+ gui_close_window -type Source
36
+ gui_close_window -type Schematic
37
+ gui_close_window -type Data
38
+ gui_close_window -type DriverLoad
39
+ gui_close_window -type List
40
+ gui_close_window -type Memory
41
+ gui_close_window -type HSPane
42
+ gui_close_window -type DLPane
43
+ gui_close_window -type Assertion
44
+ gui_close_window -type CovHier
45
+ gui_close_window -type CoverageTable
46
+ gui_close_window -type CoverageMap
47
+ gui_close_window -type CovDetail
48
+ gui_close_window -type Local
49
+ gui_close_window -type Stack
50
+ gui_close_window -type Watch
51
+ gui_close_window -type Group
52
+ gui_close_window -type Transaction
53
+
54
+
55
+
56
+ # Application preferences
57
+ gui_set_pref_value -key app_default_font -value {Helvetica,10,-1,5,50,0,0,0,0,0}
58
+ gui_src_preferences -tabstop 8 -maxbits 24 -windownumber 1
59
+ #<WindowLayout>
60
+
61
+ # DVE top-level session
62
+
63
+
64
+ # Create and position top-level window: TopLevel.1
65
+
66
+ if {![gui_exist_window -window TopLevel.1]} {
67
+ set TopLevel.1 [ gui_create_window -type TopLevel \
68
+ -icon $::env(DVE)/auxx/gui/images/toolbars/dvewin.xpm]
69
+ } else {
70
+ set TopLevel.1 TopLevel.1
71
+ }
72
+ gui_show_window -window ${TopLevel.1} -show_state normal -rect {{525 653} {2223 1819}}
73
+
74
+ # ToolBar settings
75
+ gui_set_toolbar_attributes -toolbar {TimeOperations} -dock_state top
76
+ gui_set_toolbar_attributes -toolbar {TimeOperations} -offset 0
77
+ gui_show_toolbar -toolbar {TimeOperations}
78
+ gui_hide_toolbar -toolbar {&File}
79
+ gui_set_toolbar_attributes -toolbar {&Edit} -dock_state top
80
+ gui_set_toolbar_attributes -toolbar {&Edit} -offset 0
81
+ gui_show_toolbar -toolbar {&Edit}
82
+ gui_hide_toolbar -toolbar {CopyPaste}
83
+ gui_set_toolbar_attributes -toolbar {&Trace} -dock_state top
84
+ gui_set_toolbar_attributes -toolbar {&Trace} -offset 0
85
+ gui_show_toolbar -toolbar {&Trace}
86
+ gui_hide_toolbar -toolbar {TraceInstance}
87
+ gui_hide_toolbar -toolbar {BackTrace}
88
+ gui_set_toolbar_attributes -toolbar {&Scope} -dock_state top
89
+ gui_set_toolbar_attributes -toolbar {&Scope} -offset 0
90
+ gui_show_toolbar -toolbar {&Scope}
91
+ gui_set_toolbar_attributes -toolbar {&Window} -dock_state top
92
+ gui_set_toolbar_attributes -toolbar {&Window} -offset 0
93
+ gui_show_toolbar -toolbar {&Window}
94
+ gui_set_toolbar_attributes -toolbar {Signal} -dock_state top
95
+ gui_set_toolbar_attributes -toolbar {Signal} -offset 0
96
+ gui_show_toolbar -toolbar {Signal}
97
+ gui_set_toolbar_attributes -toolbar {Zoom} -dock_state top
98
+ gui_set_toolbar_attributes -toolbar {Zoom} -offset 0
99
+ gui_show_toolbar -toolbar {Zoom}
100
+ gui_set_toolbar_attributes -toolbar {Zoom And Pan History} -dock_state top
101
+ gui_set_toolbar_attributes -toolbar {Zoom And Pan History} -offset 0
102
+ gui_show_toolbar -toolbar {Zoom And Pan History}
103
+ gui_set_toolbar_attributes -toolbar {Grid} -dock_state top
104
+ gui_set_toolbar_attributes -toolbar {Grid} -offset 0
105
+ gui_show_toolbar -toolbar {Grid}
106
+ gui_hide_toolbar -toolbar {Simulator}
107
+ gui_hide_toolbar -toolbar {Interactive Rewind}
108
+ gui_hide_toolbar -toolbar {Testbench}
109
+
110
+ # End ToolBar settings
111
+
112
+ # Docked window settings
113
+ gui_sync_global -id ${TopLevel.1} -option true
114
+
115
+ # MDI window settings
116
+ set Console.1 [gui_create_window -type {Console} -parent ${TopLevel.1}]
117
+ gui_show_window -window ${Console.1} -show_state maximized
118
+ gui_update_layout -id ${Console.1} {{show_state maximized} {dock_state undocked} {dock_on_new_line false}}
119
+ set HSPane.1 [gui_create_window -type {HSPane} -parent ${TopLevel.1}]
120
+ if {[gui_get_shared_view -id ${HSPane.1} -type Hier] == {}} {
121
+ set Hier.1 [gui_share_window -id ${HSPane.1} -type Hier]
122
+ } else {
123
+ set Hier.1 [gui_get_shared_view -id ${HSPane.1} -type Hier]
124
+ }
125
+
126
+ gui_show_window -window ${HSPane.1} -show_state maximized
127
+ gui_update_layout -id ${HSPane.1} {{show_state maximized} {dock_state undocked} {dock_on_new_line false} {child_hier_colhier 987} {child_hier_coltype 715} {child_hier_colpd 0} {child_hier_col1 0} {child_hier_col2 1} {child_hier_col3 -1}}
128
+ set DLPane.1 [gui_create_window -type {DLPane} -parent ${TopLevel.1}]
129
+ if {[gui_get_shared_view -id ${DLPane.1} -type Data] == {}} {
130
+ set Data.1 [gui_share_window -id ${DLPane.1} -type Data]
131
+ } else {
132
+ set Data.1 [gui_get_shared_view -id ${DLPane.1} -type Data]
133
+ }
134
+
135
+ gui_show_window -window ${DLPane.1} -show_state maximized
136
+ gui_update_layout -id ${DLPane.1} {{show_state maximized} {dock_state undocked} {dock_on_new_line false} {child_data_colvariable 711} {child_data_colvalue 470} {child_data_coltype 514} {child_data_col1 0} {child_data_col2 1} {child_data_col3 2}}
137
+ set Source.1 [gui_create_window -type {Source} -parent ${TopLevel.1}]
138
+ gui_show_window -window ${Source.1} -show_state maximized
139
+ gui_update_layout -id ${Source.1} {{show_state maximized} {dock_state undocked} {dock_on_new_line false}}
140
+
141
+ # End MDI window settings
142
+
143
+
144
+ # Create and position top-level window: TopLevel.2
145
+
146
+ if {![gui_exist_window -window TopLevel.2]} {
147
+ set TopLevel.2 [ gui_create_window -type TopLevel \
148
+ -icon $::env(DVE)/auxx/gui/images/toolbars/dvewin.xpm]
149
+ } else {
150
+ set TopLevel.2 TopLevel.2
151
+ }
152
+ gui_show_window -window ${TopLevel.2} -show_state normal -rect {{293 121} {2365 1172}}
153
+
154
+ # ToolBar settings
155
+ gui_set_toolbar_attributes -toolbar {TimeOperations} -dock_state top
156
+ gui_set_toolbar_attributes -toolbar {TimeOperations} -offset 0
157
+ gui_show_toolbar -toolbar {TimeOperations}
158
+ gui_hide_toolbar -toolbar {&File}
159
+ gui_set_toolbar_attributes -toolbar {&Edit} -dock_state top
160
+ gui_set_toolbar_attributes -toolbar {&Edit} -offset 0
161
+ gui_show_toolbar -toolbar {&Edit}
162
+ gui_hide_toolbar -toolbar {CopyPaste}
163
+ gui_set_toolbar_attributes -toolbar {&Trace} -dock_state top
164
+ gui_set_toolbar_attributes -toolbar {&Trace} -offset 0
165
+ gui_show_toolbar -toolbar {&Trace}
166
+ gui_hide_toolbar -toolbar {TraceInstance}
167
+ gui_hide_toolbar -toolbar {BackTrace}
168
+ gui_set_toolbar_attributes -toolbar {&Scope} -dock_state top
169
+ gui_set_toolbar_attributes -toolbar {&Scope} -offset 0
170
+ gui_show_toolbar -toolbar {&Scope}
171
+ gui_set_toolbar_attributes -toolbar {&Window} -dock_state top
172
+ gui_set_toolbar_attributes -toolbar {&Window} -offset 0
173
+ gui_show_toolbar -toolbar {&Window}
174
+ gui_set_toolbar_attributes -toolbar {Signal} -dock_state top
175
+ gui_set_toolbar_attributes -toolbar {Signal} -offset 0
176
+ gui_show_toolbar -toolbar {Signal}
177
+ gui_set_toolbar_attributes -toolbar {Zoom} -dock_state top
178
+ gui_set_toolbar_attributes -toolbar {Zoom} -offset 0
179
+ gui_show_toolbar -toolbar {Zoom}
180
+ gui_set_toolbar_attributes -toolbar {Zoom And Pan History} -dock_state top
181
+ gui_set_toolbar_attributes -toolbar {Zoom And Pan History} -offset 0
182
+ gui_show_toolbar -toolbar {Zoom And Pan History}
183
+ gui_set_toolbar_attributes -toolbar {Grid} -dock_state top
184
+ gui_set_toolbar_attributes -toolbar {Grid} -offset 0
185
+ gui_show_toolbar -toolbar {Grid}
186
+ gui_hide_toolbar -toolbar {Simulator}
187
+ gui_hide_toolbar -toolbar {Interactive Rewind}
188
+ gui_hide_toolbar -toolbar {Testbench}
189
+
190
+ # End ToolBar settings
191
+
192
+ # Docked window settings
193
+ gui_sync_global -id ${TopLevel.2} -option true
194
+
195
+ # MDI window settings
196
+ set Wave.1 [gui_create_window -type {Wave} -parent ${TopLevel.2}]
197
+ gui_show_window -window ${Wave.1} -show_state maximized
198
+ gui_update_layout -id ${Wave.1} {{show_state maximized} {dock_state undocked} {dock_on_new_line false} {child_wave_left 602} {child_wave_right 1465} {child_wave_colname 299} {child_wave_colvalue 299} {child_wave_col1 0} {child_wave_col2 1}}
199
+
200
+ # End MDI window settings
201
+
202
+ gui_set_env TOPLEVELS::TARGET_FRAME(Source) ${TopLevel.1}
203
+ gui_set_env TOPLEVELS::TARGET_FRAME(Schematic) ${TopLevel.1}
204
+ gui_set_env TOPLEVELS::TARGET_FRAME(PathSchematic) ${TopLevel.1}
205
+ gui_set_env TOPLEVELS::TARGET_FRAME(Wave) none
206
+ gui_set_env TOPLEVELS::TARGET_FRAME(List) none
207
+ gui_set_env TOPLEVELS::TARGET_FRAME(Memory) ${TopLevel.1}
208
+ gui_set_env TOPLEVELS::TARGET_FRAME(DriverLoad) none
209
+ gui_update_statusbar_target_frame ${TopLevel.1}
210
+ gui_update_statusbar_target_frame ${TopLevel.2}
211
+
212
+ #</WindowLayout>
213
+
214
+ #<Database>
215
+
216
+ # DVE Open design session:
217
+
218
+ if { ![gui_is_db_opened -db {/scratch/nxa21353/Code/github/origen_sim/waves/default/origen.vpd}] } {
219
+ gui_open_db -design V1 -file /scratch/nxa21353/Code/github/origen_sim/waves/default/origen.vpd -nosource
220
+ }
221
+ gui_set_precision 1ns
222
+ gui_set_time_units 1ns
223
+ #</Database>
224
+
225
+ # DVE Global setting session:
226
+
227
+
228
+ # Global: Bus
229
+
230
+ # Global: Expressions
231
+
232
+ # Global: Signal Time Shift
233
+
234
+ # Global: Signal Compare
235
+
236
+ # Global: Signal Groups
237
+ gui_load_child_values {origen.debug}
238
+
239
+
240
+ set _session_group_1 Debug
241
+ gui_sg_create "$_session_group_1"
242
+ set Debug "$_session_group_1"
243
+
244
+ gui_sg_addsignal -group "$_session_group_1" { origen.debug.pattern origen.debug.comments origen.debug.errors }
245
+ gui_set_radix -radix {ascii} -signals {V1:origen.debug.pattern}
246
+ gui_set_radix -radix {unsigned} -signals {V1:origen.debug.pattern}
247
+ gui_set_radix -radix {ascii} -signals {V1:origen.debug.comments}
248
+ gui_set_radix -radix {unsigned} -signals {V1:origen.debug.comments}
249
+
250
+ set _session_group_2 DUT
251
+ gui_sg_create "$_session_group_2"
252
+ set DUT "$_session_group_2"
253
+
254
+
255
+ # Global: Highlighting
256
+
257
+ # Global: Stack
258
+ gui_change_stack_mode -mode list
259
+
260
+ # Post database loading setting...
261
+
262
+ # Restore C1 time
263
+ gui_set_time -C1_only 176252366
264
+
265
+
266
+
267
+ # Save global setting...
268
+
269
+ # Wave/List view global setting
270
+ gui_cov_show_value -switch false
271
+
272
+ # Close all empty TopLevel windows
273
+ foreach __top [gui_ekki_get_window_ids -type TopLevel] {
274
+ if { [llength [gui_ekki_get_window_ids -parent $__top]] == 0} {
275
+ gui_close_window -window $__top
276
+ }
277
+ }
278
+ gui_set_loading_session_type noSession
279
+ # DVE View/pane content session:
280
+
281
+
282
+ # Hier 'Hier.1'
283
+ gui_show_window -window ${Hier.1}
284
+ gui_list_set_filter -id ${Hier.1} -list { {Package 1} {All 0} {Process 1} {VirtPowSwitch 0} {UnnamedProcess 1} {UDP 0} {Function 1} {Block 1} {SrsnAndSpaCell 0} {OVA Unit 1} {LeafScCell 1} {LeafVlgCell 1} {Interface 1} {LeafVhdCell 1} {$unit 1} {NamedBlock 1} {Task 1} {VlgPackage 1} {ClassDef 1} {VirtIsoCell 0} }
285
+ gui_list_set_filter -id ${Hier.1} -text {*}
286
+ gui_hier_list_init -id ${Hier.1}
287
+ gui_change_design -id ${Hier.1} -design V1
288
+ catch {gui_list_expand -id ${Hier.1} origen}
289
+ catch {gui_list_select -id ${Hier.1} {origen.dut}}
290
+ gui_view_scroll -id ${Hier.1} -vertical -set 0
291
+ gui_view_scroll -id ${Hier.1} -horizontal -set 0
292
+
293
+ # Data 'Data.1'
294
+ gui_list_set_filter -id ${Data.1} -list { {Buffer 1} {Input 1} {Others 1} {Linkage 1} {Output 1} {LowPower 1} {Parameter 1} {All 1} {Aggregate 1} {LibBaseMember 1} {Event 1} {Assertion 1} {Constant 1} {Interface 1} {BaseMembers 1} {Signal 1} {$unit 1} {Inout 1} {Variable 1} }
295
+ gui_list_set_filter -id ${Data.1} -text {*}
296
+ gui_list_show_data -id ${Data.1} {origen.dut}
297
+ gui_view_scroll -id ${Data.1} -vertical -set 0
298
+ gui_view_scroll -id ${Data.1} -horizontal -set 0
299
+ gui_view_scroll -id ${Hier.1} -vertical -set 0
300
+ gui_view_scroll -id ${Hier.1} -horizontal -set 0
301
+
302
+ # Source 'Source.1'
303
+ gui_src_value_annotate -id ${Source.1} -switch false
304
+ gui_set_env TOGGLE::VALUEANNOTATE 0
305
+ gui_open_source -id ${Source.1} -replace -active origen.dut /scratch/nxa21353/Code/github/.origen_sim_remotes_DO_NOT_HAND_MODIFY/example_rtl/dut1/dut1.v
306
+ gui_view_scroll -id ${Source.1} -vertical -set 0
307
+ gui_src_set_reusable -id ${Source.1}
308
+
309
+ # View 'Wave.1'
310
+ gui_wv_sync -id ${Wave.1} -switch false
311
+ set groupExD [gui_get_pref_value -category Wave -key exclusiveSG]
312
+ gui_set_pref_value -category Wave -key exclusiveSG -value {false}
313
+ set origWaveHeight [gui_get_pref_value -category Wave -key waveRowHeight]
314
+ gui_list_set_height -id Wave -height 25
315
+ set origGroupCreationState [gui_list_create_group_when_add -wave]
316
+ gui_list_create_group_when_add -wave -disable
317
+ gui_marker_set_ref -id ${Wave.1} C1
318
+ gui_wv_zoom_timerange -id ${Wave.1} 0 353973502
319
+ gui_list_add_group -id ${Wave.1} -after {New Group} {Debug}
320
+ gui_list_add_group -id ${Wave.1} -after {New Group} {DUT}
321
+ gui_seek_criteria -id ${Wave.1} {Any Edge}
322
+
323
+
324
+
325
+ gui_set_env TOGGLE::DEFAULT_WAVE_WINDOW ${Wave.1}
326
+ gui_set_pref_value -category Wave -key exclusiveSG -value $groupExD
327
+ gui_list_set_height -id Wave -height $origWaveHeight
328
+ if {$origGroupCreationState} {
329
+ gui_list_create_group_when_add -wave -enable
330
+ }
331
+ if { $groupExD } {
332
+ gui_msg_report -code DVWW028
333
+ }
334
+ gui_list_set_filter -id ${Wave.1} -list { {Buffer 1} {Input 1} {Others 1} {Linkage 1} {Output 1} {Parameter 1} {All 1} {Aggregate 1} {LibBaseMember 1} {Event 1} {Assertion 1} {Constant 1} {Interface 1} {BaseMembers 1} {Signal 1} {$unit 1} {Inout 1} {Variable 1} }
335
+ gui_list_set_filter -id ${Wave.1} -text {*}
336
+ gui_list_set_insertion_bar -id ${Wave.1} -group {New Group} -position in
337
+
338
+ gui_marker_move -id ${Wave.1} {C1} 176252366
339
+ gui_view_scroll -id ${Wave.1} -vertical -set 0
340
+ gui_show_grid -id ${Wave.1} -enable false
341
+ # Restore toplevel window zorder
342
+ # The toplevel window could be closed if it has no view/pane
343
+ if {[gui_exist_window -window ${TopLevel.2}]} {
344
+ gui_set_active_window -window ${TopLevel.2}
345
+ gui_set_active_window -window ${Wave.1}
346
+ }
347
+ if {[gui_exist_window -window ${TopLevel.1}]} {
348
+ gui_set_active_window -window ${TopLevel.1}
349
+ gui_set_active_window -window ${Source.1}
350
+ }
351
+ #</Session>
352
+
@@ -151,15 +151,32 @@ module origen;
151
151
  .errors(errors)
152
152
  );
153
153
 
154
- `ifdef ICARUS
154
+ `ifdef ORIGEN_VCD
155
155
  initial
156
156
  begin
157
+ //$display("********************************");
158
+ //$display("Creating origen.vcd...");
159
+ //$display("********************************");
157
160
  $dumpfile("origen.vcd");
158
161
  $dumpvars(0,origen);
159
162
  end
160
163
  `endif
164
+
165
+ `ifdef ORIGEN_VPD
166
+ initial
167
+ begin
168
+ $vcdplusfile("origen.vpd");
169
+ $vcdpluson;
170
+ end
171
+ `endif
161
172
 
162
173
  always @(posedge finish) begin
174
+ `ifdef ORIGEN_VPD
175
+ $vcdplusoff;
176
+ `endif
177
+ //$display("********************************");
178
+ //$display("Finishing simulation...");
179
+ //$display("********************************");
163
180
  $finish(2);
164
181
  end
165
182
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_sim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-19 00:00:00.000000000 Z
11
+ date: 2018-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: 0.3.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0.3'
54
+ version: 0.3.1
55
55
  description:
56
56
  email:
57
57
  - stephen.f.mcginty@gmail.com
@@ -91,6 +91,7 @@ files:
91
91
  - program/p1.rb
92
92
  - templates/empty.gtkw
93
93
  - templates/empty.svcf
94
+ - templates/empty.tcl
94
95
  - templates/probe.tcl.erb
95
96
  - templates/rtl_v/origen.v.erb
96
97
  - templates/web/index.md.erb
@@ -116,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
117
  version: 1.8.11
117
118
  requirements: []
118
119
  rubyforge_project:
119
- rubygems_version: 2.6.8
120
+ rubygems_version: 2.6.7
120
121
  signing_key:
121
122
  specification_version: 4
122
123
  summary: Plugin that provides a testbench environment to simulate Origen test patterns