verilog_rename 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ module TEST_ONE(
2
+ input rx,
3
+ output tx
4
+ );
5
+
6
+ endmodule
@@ -0,0 +1,3 @@
1
+
2
+ `include 'TEST_ONE.v'
3
+ `include 'test_three.v'
@@ -0,0 +1,18 @@
1
+ module TEST_THREE(
2
+ input rx,
3
+ output tx
4
+ );
5
+
6
+
7
+ TEST_ONE test_one_i0(
8
+ .rx (rx),
9
+ .tx (tx)
10
+ );
11
+
12
+ TEST_ONE test_two_i0;
13
+
14
+ TEST_FOUR test_four_i0();
15
+
16
+ TEST_FIVE test_five_i0 ();
17
+
18
+ endmodule
@@ -0,0 +1,5 @@
1
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
2
+
3
+ require 'rspec'
4
+ require 'verilog'
5
+ require 'verilog_rename'
@@ -0,0 +1,5 @@
1
+ module BETA_R4 ( input x,
2
+ input y
3
+ );
4
+
5
+ endmodule
@@ -0,0 +1,360 @@
1
+ // -------------------------------------------------------------
2
+ //
3
+ // Module: ISRC_ARIZONA_TH
4
+ // Simulink Path: ..\..\..\VerilogD\ISRC_ARIZONA_R3
5
+ // Created: 2011-01-26 18:45:11
6
+ // Generated by MATLAB 7.11 and Simulink HDL Coder 2.0
7
+ // Hierarchy Level: 1
8
+ //
9
+ //
10
+ // -------------------------------------------------------------
11
+ `timescale 1 ns / 1 ns
12
+
13
+ module BETA_R4_TH;
14
+
15
+ `include "BETA_R4_TH_pkg.v"
16
+ `include "BETA_R4_TH_data.v"
17
+
18
+ parameter CLKRATE = 12; //uint32
19
+ parameter LATENCY = 12; //uint32
20
+ parameter INITIAL_LATENCY = 0; //uint32
21
+ parameter NO_OF_TESTS = 1667; //uint32
22
+ parameter MAX_TIMEOUT = 145; //uint32
23
+ parameter MAX_ERROR_COUNT = 5001; //uint32
24
+
25
+
26
+ // Signals
27
+ reg clk; // boolean
28
+ reg rst_an; // boolean
29
+ reg clk_enable; // boolean
30
+ reg signed [23:0] din; // sfix24_En20
31
+ reg notch_ena; // boolean
32
+ wire ce_out; // boolean
33
+ wire signed [23:0] dout; // sfix24_En20
34
+
35
+ integer txdataCnt; // uint32
36
+ integer rxdataCnt; // uint32
37
+ reg tb_enb; // boolean
38
+ wire srcDone; // boolean
39
+ wire snkDone; // boolean
40
+ wire testFailure; // boolean
41
+ reg tbenb_dly; // boolean
42
+ reg [3:0] counter; // ufix4
43
+ wire phase_2; // boolean
44
+ wire phase_1; // boolean
45
+ wire rdEnb_phase_1; // boolean
46
+ wire rdEnb_phase_2; // boolean
47
+ wire Data_Type_Conversion2_out1_rdenb; // boolean
48
+ reg [10:0] Data_Type_Conversion2_out1_addr; // ufix11
49
+ reg Data_Type_Conversion2_out1_done; // boolean
50
+ reg signed [23:0] holdData_din; // sfix24_En20
51
+ wire Data_Type_Conversion_notch_ena_out1_rdenb; // boolean
52
+ reg [13:0] Data_Type_Conversion_notch_ena_out1_addr; // ufix14
53
+ reg Data_Type_Conversion_notch_ena_out1_done; // boolean
54
+ reg holdData_notch_ena; // boolean
55
+ reg dout_testFailure; // boolean
56
+ integer dout_timeout; // uint32
57
+ integer dout_errCnt; // uint32
58
+ wire dout_rdenb; // boolean
59
+ reg [12:0] dout_addr; // ufix13
60
+ reg dout_done; // boolean
61
+ wire signed [23:0] dout_ref; // sfix24_En20
62
+ wire signed [23:0] dout_dataTable; // sfix24_En20
63
+ wire signed [23:0] dout_refTmp; // sfix24_En20
64
+ reg signed [23:0] regout; // sfix24_En20
65
+ reg check1_Done; // boolean
66
+
67
+ // Module Instances
68
+ BETA_R4 u_BETA
69
+ (
70
+ .clk(clk),
71
+ .rst_an(rst_an),
72
+ .clk_enable(clk_enable),
73
+ .din(din),
74
+ .notch_ena(notch_ena),
75
+ .ce_out(ce_out),
76
+ .dout(dout)
77
+ );
78
+
79
+
80
+ // Block Statements
81
+ // -------------------------------------------------------------
82
+ // Driving the test bench enable
83
+ // -------------------------------------------------------------
84
+
85
+ always @(rst_an, snkDone)
86
+ begin
87
+ if (rst_an == 1'b0)
88
+ tb_enb <= 1'b0;
89
+ else if (snkDone == 1'b0 )
90
+ tb_enb <= 1'b1;
91
+ else begin
92
+ # (clk_period * 2);
93
+ tb_enb <= 1'b0;
94
+ end
95
+ end
96
+
97
+ always @(posedge clk or negedge rst_an) //tb_enb_gen
98
+ begin
99
+ if (~rst_an) begin
100
+ // Nothing to reset.
101
+ end
102
+ else begin
103
+ if (snkDone == 1) begin
104
+ if (testFailure == 0 )
105
+ $display("**************TEST COMPLETED (PASSED)**************");
106
+ else
107
+ $display("**************TEST COMPLETED (FAILED)**************");
108
+ end
109
+ end
110
+ end //tb_enb_gen;
111
+
112
+ // -------------------------------------------------------------
113
+ // System Clock (fast clock) and reset
114
+ // -------------------------------------------------------------
115
+
116
+ always // clock generation
117
+ begin // clk_gen
118
+ clk <= 1'b0;
119
+ # clk_low;
120
+ clk <= 1'b1;
121
+ # clk_high;
122
+ if (snkDone == 1) begin
123
+ clk <= 1'b0;
124
+ # clk_low;
125
+ clk <= 1'b1;
126
+ # clk_high;
127
+ $stop;
128
+ end
129
+ end // clk_gen
130
+
131
+ initial // reset block
132
+ begin // rst_an_gen
133
+ rst_an <= 1'b0;
134
+ # (clk_period * 2);
135
+ @ (posedge clk);
136
+ # (clk_hold);
137
+ rst_an <= 1'b1;
138
+ end // rst_an_gen
139
+
140
+ // -------------------------------------------------------------
141
+ // Global clock enable
142
+ // -------------------------------------------------------------
143
+
144
+
145
+ always @ (posedge clk or negedge rst_an)
146
+ begin: tb_enb_delay
147
+ if (rst_an == 1'b0) begin
148
+ tbenb_dly <= 1'b0;
149
+ end
150
+ else begin
151
+ if (tb_enb == 1'b1) begin
152
+ tbenb_dly <= tb_enb;
153
+ end
154
+ end
155
+ end // tb_enb_delay
156
+
157
+ always @(snkDone, tbenb_dly)
158
+ begin
159
+ # clk_hold;
160
+ if (snkDone == 0)
161
+ clk_enable <= tbenb_dly;
162
+ else
163
+ clk_enable <= 0;
164
+ end
165
+
166
+ // -------------------------------------------------------------
167
+ // Slow Clock (clkenb)
168
+ // -------------------------------------------------------------
169
+
170
+ always @ (posedge clk or negedge rst_an)
171
+ begin: slow_clock_enable
172
+ if (rst_an == 1'b0) begin
173
+ counter <= 4'b0001;
174
+ end
175
+ else begin
176
+ if (tbenb_dly == 1'b1) begin
177
+ if (counter == 4'b1011) begin
178
+ counter <= 4'b0000;
179
+ end
180
+ else begin
181
+ counter <= counter + 1;
182
+ end
183
+ end
184
+ end
185
+ end // slow_clock_enable
186
+
187
+ assign phase_2 = (((counter == 4'b0001) ||
188
+ (counter == 4'b0011) ||
189
+ (counter == 4'b0101) ||
190
+ (counter == 4'b0111) ||
191
+ (counter == 4'b1001) ||
192
+ (counter == 4'b1011)) && tbenb_dly == 1'b1)? 1 : 0;
193
+
194
+ assign phase_1 = (counter == 4'b0001 && tbenb_dly == 1'b1)? 1 : 0;
195
+
196
+ assign rdEnb_phase_1 = phase_1;
197
+
198
+ assign rdEnb_phase_2 = phase_2;
199
+
200
+ // -------------------------------------------------------------
201
+ // Read the data and transmit it to the DUT
202
+ // -------------------------------------------------------------
203
+
204
+ always @(posedge clk or negedge rst_an)
205
+ begin
206
+ Data_Type_Conversion2_out1_task(clk,rst_an,
207
+ Data_Type_Conversion2_out1_rdenb,Data_Type_Conversion2_out1_addr,
208
+ Data_Type_Conversion2_out1_done);
209
+ end
210
+
211
+ assign Data_Type_Conversion2_out1_rdenb = rdEnb_phase_1;
212
+
213
+ always @ (posedge Data_Type_Conversion2_out1_rdenb or negedge rst_an)
214
+ begin // stimuli_Data_Type_Conversion2_out1_din_reg
215
+ if (~rst_an) begin
216
+ holdData_din <= 24'bx;
217
+ end
218
+ else begin
219
+ holdData_din <= Data_Type_Conversion2_out1_force[Data_Type_Conversion2_out1_addr];
220
+ end
221
+ end
222
+
223
+ always @ (Data_Type_Conversion2_out1_rdenb, Data_Type_Conversion2_out1_addr)
224
+ begin // stimuli_Data_Type_Conversion2_out1_din
225
+ if (Data_Type_Conversion2_out1_rdenb == 1) begin
226
+ din <= # clk_hold Data_Type_Conversion2_out1_force[Data_Type_Conversion2_out1_addr];
227
+ end
228
+ else begin
229
+ din <= # clk_hold holdData_din;
230
+ end
231
+ end // stimuli_Data_Type_Conversion2_out1_din
232
+
233
+ // -------------------------------------------------------------
234
+ // Read the data and transmit it to the DUT
235
+ // -------------------------------------------------------------
236
+
237
+ always @(posedge clk or negedge rst_an)
238
+ begin
239
+ Data_Type_Conversion_notch_ena_out1_task(clk,rst_an,
240
+ Data_Type_Conversion_notch_ena_out1_rdenb,Data_Type_Conversion_notch_ena_out1_addr,
241
+ Data_Type_Conversion_notch_ena_out1_done);
242
+ end
243
+
244
+ assign Data_Type_Conversion_notch_ena_out1_rdenb = rdEnb_phase_2;
245
+
246
+ always @ (posedge clk or negedge rst_an)
247
+ begin // stimuli_Data_Type_Conversion_notch_ena_out1_notch_ena_reg
248
+ if (~rst_an) begin
249
+ holdData_notch_ena <= 1'bx;
250
+ end
251
+ else begin
252
+ holdData_notch_ena <= Data_Type_Conversion_notch_ena_out1_force;
253
+ end
254
+ end
255
+
256
+ always @ (Data_Type_Conversion_notch_ena_out1_rdenb, Data_Type_Conversion_notch_ena_out1_addr)
257
+ begin // stimuli_Data_Type_Conversion_notch_ena_out1_notch_ena
258
+ if (Data_Type_Conversion_notch_ena_out1_rdenb == 1) begin
259
+ notch_ena <= # clk_hold Data_Type_Conversion_notch_ena_out1_force;
260
+ end
261
+ else begin
262
+ notch_ena <= # clk_hold holdData_notch_ena;
263
+ end
264
+ end // stimuli_Data_Type_Conversion_notch_ena_out1_notch_ena
265
+
266
+ // -------------------------------------------------------------
267
+ // Create done signal for Input data
268
+ // -------------------------------------------------------------
269
+
270
+ assign srcDone = Data_Type_Conversion2_out1_done && Data_Type_Conversion_notch_ena_out1_done;
271
+
272
+ // -------------------------------------------------------------
273
+ // Checker: Checking the data received from the DUT.
274
+ // -------------------------------------------------------------
275
+
276
+ always @(posedge clk or negedge rst_an)
277
+ begin
278
+ dout_task(clk,rst_an,
279
+ dout_rdenb,dout_addr,
280
+ dout_done);
281
+ end
282
+
283
+ assign dout_rdenb = ce_out;
284
+
285
+ assign # clk_hold dout_dataTable = dout_expected[dout_addr];
286
+ // ---- Bypass Register ----
287
+ always @ (posedge clk or negedge rst_an)
288
+ begin: DataHoldRegister_temp_process10
289
+ if (rst_an == 1'b0) begin
290
+ regout <= 0;
291
+ end
292
+ else begin
293
+ if (ce_out == 1'b1) begin
294
+ regout <= dout_dataTable;
295
+ end
296
+ end
297
+ end // DataHoldRegister_temp_process10
298
+
299
+ assign dout_refTmp = (ce_out == 1'b1) ? dout_dataTable :
300
+ regout;
301
+
302
+
303
+ assign dout_ref = dout_refTmp;
304
+
305
+
306
+
307
+ always @ (posedge clk or negedge rst_an) // checker_dout
308
+ begin
309
+ if (rst_an == 0) begin
310
+ dout_timeout <= 0;
311
+ dout_testFailure <= 0;
312
+ dout_errCnt <= 0;
313
+ end
314
+ else begin
315
+ if (dout_rdenb == 1 ) begin
316
+ dout_timeout <= 0;
317
+
318
+ if (dout !== dout_expected[dout_addr]) begin
319
+ dout_errCnt <= dout_errCnt + 1;
320
+ dout_testFailure <= 1;
321
+ $display("ERROR in dout at time %t : Expected '%h' Actual '%h'",
322
+ $time, dout_expected[dout_addr], dout);
323
+ if (dout_errCnt >= MAX_ERROR_COUNT)
324
+ $display("Warning: Number of errors for dout have exceeded the maximum error limit");
325
+ end
326
+
327
+ end
328
+ else if (dout_timeout > MAX_TIMEOUT && dout_rdenb == 1 ) begin
329
+ dout_errCnt <= dout_errCnt + 1;
330
+ dout_testFailure <= 1;
331
+ $display ("Error: Timeout - Data was not received for dout.");
332
+ $stop;
333
+ end
334
+ else if (dout_rdenb == 1) begin
335
+ dout_timeout <= dout_timeout + 1 ;
336
+ end
337
+ end
338
+ end // checker_dout
339
+
340
+ always @ (posedge clk or negedge rst_an) // checkDone_1
341
+ begin
342
+ if (rst_an == 0)
343
+ check1_Done <= 0;
344
+ else if ((check1_Done == 0) && (dout_done == 1) && (dout_rdenb == 1))
345
+ check1_Done <= 1;
346
+ end
347
+
348
+ // -------------------------------------------------------------
349
+ // Create done and test failure signal for output data
350
+ // -------------------------------------------------------------
351
+
352
+ assign snkDone = check1_Done;
353
+
354
+ assign testFailure = dout_testFailure;
355
+
356
+ // Assignment Statements
357
+
358
+
359
+
360
+ endmodule // ISRC_ARIZONA_TH
File without changes
File without changes
@@ -0,0 +1 @@
1
+ vsub vcs -R -PP -l run.log +notimingchecks +libext+.v+.bh.v -y ./ BETA_TH.v $*
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+ require 'pp'
4
+
5
+ describe VerilogRename do
6
+
7
+ it "Open file" do
8
+ path = File.dirname( __FILE__ )
9
+
10
+ ## Git cant have empty folders, so create in test
11
+ FileUtils.mkdir_p( ::File.join( path, 'scratch') )
12
+
13
+ ## Clean Scratch Area
14
+ FileUtils.rm( Dir.glob( ::File.join( path, 'scratch', '*.*') ) )
15
+
16
+ ## Copy files from fixtures to scratch
17
+ FileUtils.cp_r( ::File.join( path, 'fixtures'), ::File.join( path, 'scratch' ) )
18
+
19
+
20
+ path_files = Verilog::PathFiles.new( File.join( path, 'scratch', 'fixtures') )
21
+ path_files.read_all
22
+
23
+ rename = Verilog::Rename.new('TEST_ONE', 'TEST_TWO', path_files)
24
+ rename.rename_module
25
+
26
+ end
27
+
28
+
29
+
30
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: verilog_rename
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Morgan Prior
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-07-03 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: verilog
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 27
29
+ segments:
30
+ - 0
31
+ - 0
32
+ - 2
33
+ version: 0.0.2
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ description: Extension to the verilog gem, adds rename functionality and updates instatiations
37
+ email: verilog_rename_gem@amaras-tech.co.uk
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - LICENSE.rtf
46
+ - Rakefile
47
+ - bin/rename-verilog
48
+ - lib/verilog/path_files.rb
49
+ - lib/verilog/prefix.rb
50
+ - lib/verilog/rename-backup.rb
51
+ - lib/verilog/rename-oldf.rb
52
+ - lib/verilog/rename.rb
53
+ - lib/verilog_rename.rb
54
+ - spec/example1/beta.v
55
+ - spec/example1/TESTHARNESS.bh.v
56
+ - spec/example2/BETA.v
57
+ - spec/example2/BETA_TH.v
58
+ - spec/example2/BETA_TH_data.v
59
+ - spec/example2/BETA_TH_pkg.v
60
+ - spec/example2/BETA_TH_sim.do
61
+ - spec/fixtures/test_four.vh
62
+ - spec/fixtures/test_one.v
63
+ - spec/fixtures/test_three.v
64
+ - spec/run_examples1.sh
65
+ - spec/run_examples2.sh
66
+ - spec/scratch/fixtures/test_four.vh
67
+ - spec/scratch/fixtures/TEST_ONE.v
68
+ - spec/scratch/fixtures/test_three.v
69
+ - spec/spec_helper.rb
70
+ - spec/temp/BETA_R4.v
71
+ - spec/temp/BETA_R4_TH.v
72
+ - spec/temp/BETA_R4_TH_data.v
73
+ - spec/temp/BETA_R4_TH_pkg.v
74
+ - spec/temp/BETA_TH_sim.do
75
+ - spec/verilog_rename_spec.rb
76
+ homepage: http://amaras-tech.co.uk/software/verilog_rename
77
+ licenses: []
78
+
79
+ post_install_message:
80
+ rdoc_options: []
81
+
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ requirements: []
103
+
104
+ rubyforge_project:
105
+ rubygems_version: 1.8.5
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Extension to the verilog gem for renaming verilog files
109
+ test_files: []
110
+