Verilog Compiler

Goal

A verilog macro preprocessor, we are designing our own marco to support our RISC-V cpu development

Macro

Auto wire two modules, need to base on the wire name standard

@{connect(moduleA, module B)}

Generate code to dump pin 1 information into our own trace format file

<@{dump(moduleA.pin1)}>

CLI Usage

usage: java -jar verilog-compiler-xx.jar [OPTION] <input file>
 -h,--help                                help
 -j,--json <.v file>                      verilog to json
 -m,--macro <.v file>                     process macro in verilog file
 -o,--macro <output file>
 -p,--json <folder, top module .v file>   parse topmodule and return json
 -t <.v file or folder>                   compile verilog file,
                                          post-process it for our debugger
 -tvh <verilog heading statements>        work with -t option to
                                          post-process and inject verilog
                                          statement
 -tvs <verilog statements>                work with -t option to
                                          post-process and inject verilog
                                          statement
 -v,--version                             display version
Examples:
    1. java -jar target/verilog-compiler-2.0.jar -j ex.v
    1. java -jar target/verilog-compiler-2.0.jar -p ex.v
    1. java -jar target/verilog-compiler-2.0.jar -t src -tvh '' -o src-output

java -jar verilogcompiler-xx.jar -j quantr_i.v

Result:

[ {
  "name" : "quantr_i",
  "inputs" : [ {
    "direction" : "input",
    "name" : "clk"
  }, {
    "direction" : "input",
    "name" : "rst"
  } ],
  "outputs" : [ {
    "direction" : "output",
    "range" : "[`MXLEN]",
    "name" : "pc"
  } ]
} ]

Source code explain

Verilog preprocess is complex, here is the flow

  1. run the verilog by -t command
  2. VerilogHelper.preProcess()
  3. String sourceContent = VerilogHelper.getContentReplacedWithMacro(1, content, VerilogHelper.scanMacroDefinitions(file, file.getParentFile()), ps);
  4. ps.fatternMacroListing()
Administrator
Peter
Developer performance
Status Job Pipeline Stage Commit Msg Timing
success #5302 main d04ef3fa
#2626 Placeholder Peter deploy
Add LICENSE
0:17
2 years, 3 months
success #5301 main d04ef3fa
#2626 Placeholder Peter build
Add LICENSE
0:11
2 years, 3 months
success #5300 main d32e5d37
#2625 Placeholder Peter deploy
dev
0:29
2 years, 9 months
success #5299 main d32e5d37
#2625 Placeholder Peter build
dev
0:21
2 years, 9 months
success #5298 main fa552ed8
#2624 Placeholder Peter deploy
dev
0:15
2 years, 9 months
success #5297 main fa552ed8
#2624 Placeholder Peter build
dev
0:12
2 years, 9 months
success #5296 main 7fb6b835
#2623 Placeholder Peter deploy
dev
0:15
2 years, 9 months
success #5295 main 7fb6b835
#2623 Placeholder Peter build
dev
0:10
2 years, 9 months
success #5294 main 3b5ea67f
#2622 Placeholder Peter deploy
dev
0:19
2 years, 9 months
success #5293 main 3b5ea67f
#2622 Placeholder Peter build
dev
0:12
2 years, 9 months
success #5292 main a8e7d1f8
#2621 Placeholder Peter deploy
making the debugger hook to file quantr.profiling
0:14
2 years, 9 months
success #5291 main a8e7d1f8
#2621 Placeholder Peter build
making the debugger hook to file quantr.profiling
0:10
2 years, 9 months
success #5290 main 1eed9ce5
#2620 Placeholder Peter deploy
dev
0:14
2 years, 9 months
success #5289 main 1eed9ce5
#2620 Placeholder Peter build
dev
0:9
2 years, 9 months
canceled #5288 main 1d605807
#2619 Placeholder Peter deploy
dev
0:0
2 years, 9 months
canceled #5287 main 1d605807
#2619 Placeholder Peter build
dev
0:0
2 years, 9 months
success #5286 main d94f4a03
#2618 Placeholder Peter deploy
dev
0:14
2 years, 9 months
success #5285 main d94f4a03
#2618 Placeholder Peter build
dev
0:10
2 years, 9 months
canceled #5284 main 0188d587
#2617 Placeholder Peter deploy
dev
0:0
2 years, 9 months
canceled #5283 main 0188d587
#2617 Placeholder Peter build
dev
0:0
2 years, 9 months
success #5282 main 1e7fcbc4
#2616 Placeholder Peter deploy
dev
0:14
2 years, 9 months
success #5281 main 1e7fcbc4
#2616 Placeholder Peter build
dev
0:11
2 years, 9 months
success #5280 main 37e59206
#2615 Placeholder Peter deploy
dev
0:14
2 years, 10 months
success #5279 main 37e59206
#2615 Placeholder Peter build
dev
0:10
2 years, 10 months
canceled #5278 main fe09110d
#2614 Placeholder Peter deploy
dev
0:0
2 years, 10 months
canceled #5277 main fe09110d
#2614 Placeholder Peter build
dev
0:0
2 years, 10 months
success #5276 main d3c000ac
#2613 Placeholder Peter deploy
dev
0:15
2 years, 10 months
success #5275 main d3c000ac
#2613 Placeholder Peter build
dev
0:9
2 years, 10 months
success #5274 main 7173129e
#2612 Placeholder Peter deploy
dev
0:14
2 years, 10 months
success #5273 main 7173129e
#2612 Placeholder Peter build
dev
0:10
2 years, 10 months
success #5272 main 23646028
#2611 Placeholder Peter deploy
dev
0:15
2 years, 10 months
success #5271 main 23646028
#2611 Placeholder Peter build
dev
0:11
2 years, 10 months
success #5270 main 8cd36fc4
#2610 Placeholder Peter deploy
dev
0:14
2 years, 11 months
success #5269 main 8cd36fc4
#2610 Placeholder Peter build
dev
0:9
2 years, 11 months
success #5268 main 83095441
#2609 Placeholder Peter deploy
dev
0:15
2 years, 11 months
success #5267 main 83095441
#2609 Placeholder Peter build
dev
0:12
2 years, 11 months
success #5266 main a7696978
#2608 Placeholder Peter deploy
dev
0:13
2 years, 11 months
success #5265 main a7696978
#2608 Placeholder Peter build
dev
0:9
2 years, 11 months
success #5264 main f8df417c
#2607 Placeholder Peter deploy
dev
0:12
2 years, 11 months
success #5263 main f8df417c
#2607 Placeholder Peter build
dev
0:9
2 years, 11 months
success #5262 main 91e3a5b4
#2606 Placeholder Peter deploy
dev
0:13
2 years, 11 months
success #5261 main 91e3a5b4
#2606 Placeholder Peter build
dev
0:9
2 years, 11 months
success #5260 main 577e37f6
#2605 Placeholder Peter deploy
dev
0:15
3 years, 8 days
success #5259 main 577e37f6
#2605 Placeholder Peter build
dev
0:10
3 years, 8 days
success #5258 main 092efa17
#2604 Placeholder Peter deploy
Proecess for $display now working !!!
0:13
3 years, 9 days
success #5257 main 092efa17
#2604 Placeholder Peter build
Proecess for $display now working !!!
0:9
3 years, 9 days
success #5256 main 2d152ab0
#2603 Placeholder Peter deploy
dev
0:30
3 years, 9 days
success #5255 main 2d152ab0
#2603 Placeholder Peter build
dev
0:15
3 years, 9 days
success #5254 main 53ccc27b
#2602 Placeholder Peter deploy
$display placed to correct position in MarcoListing now
0:15
3 years, 10 days
success #5253 main 53ccc27b
#2602 Placeholder Peter build
$display placed to correct position in MarcoListing now
0:10
3 years, 10 days
success #5252 main dfa62f13
#2601 Placeholder Peter deploy
dev
0:16
3 years, 10 days
success #5251 main dfa62f13
#2601 Placeholder Peter build
dev
0:10
3 years, 10 days
success #5250 main 70ff03f6
#2600 Placeholder Peter deploy
dev
0:16
3 years, 10 days
success #5249 main 70ff03f6
#2600 Placeholder Peter build
dev
0:11
3 years, 10 days
success #5248 main 4447b462
#2599 Placeholder Peter deploy
dev
0:14
3 years, 10 days
success #5247 main 4447b462
#2599 Placeholder Peter build
dev
0:9
3 years, 10 days
canceled #5246 main e3c061b9
#2598 Placeholder Peter deploy
dev
0:0
3 years, 10 days
canceled #5245 main e3c061b9
#2598 Placeholder Peter build
dev
0:0
3 years, 10 days
success #5244 main 90eb4ddb
#2597 Placeholder Peter deploy
dev
0:50
3 years, 11 days
success #5243 main 90eb4ddb
#2597 Placeholder Peter build
dev
0:37
3 years, 11 days
success #5242 main 598e9753
#2596 Placeholder Peter deploy
done, can parse the whole quantr-i/src, verilator compile ok
0:12
3 years, 12 days
success #5241 main 598e9753
#2596 Placeholder Peter build
done, can parse the whole quantr-i/src, verilator compile ok
0:8
3 years, 12 days
success #5240 main fe2eaebf
#2595 Placeholder Peter deploy
dev
0:13
3 years, 14 days
success #5239 main fe2eaebf
#2595 Placeholder Peter build
dev
0:9
3 years, 14 days
success #5238 main a0c5a3a2
#2594 Placeholder Peter deploy
Merge origin/main into main
0:15
3 years, 14 days
success #5237 main a0c5a3a2
#2594 Placeholder Peter build
Merge origin/main into main
0:9
3 years, 14 days
success #5236 main b99084f9
#2593 Placeholder Peter deploy
dev
0:13
3 years, 15 days
success #5235 main b99084f9
#2593 Placeholder Peter build
dev
0:8
3 years, 15 days
success #5234 main daf1fb1e
#2592 Placeholder Peter deploy
dev
0:12
3 years, 15 days
success #5233 main daf1fb1e
#2592 Placeholder Peter build
dev
0:9
3 years, 15 days
success #5232 main 3429f4a6
#2591 Placeholder Peter deploy
dev
0:12
3 years, 15 days
success #5231 main 3429f4a6
#2591 Placeholder Peter build
dev
0:9
3 years, 15 days
success #5230 main de161611
#2590 Placeholder Peter deploy
dev
0:14
3 years, 15 days
success #5229 main de161611
#2590 Placeholder Peter build
dev
0:10
3 years, 15 days
success #5228 main 026cbc58
#2589 Placeholder Peter deploy
dev
0:13
3 years, 15 days
success #5227 main 026cbc58
#2589 Placeholder Peter build
dev
0:9
3 years, 15 days
success #5226 main 8c1eaabd
#2588 Placeholder Peter deploy
dev
0:15
3 years, 16 days
success #5225 main 8c1eaabd
#2588 Placeholder Peter build
dev
0:9
3 years, 16 days
success #5224 main 7cf0c2fb
#2587 Placeholder Peter deploy
dev
0:12
3 years, 16 days
success #5223 main 7cf0c2fb
#2587 Placeholder Peter build
dev
0:9
3 years, 16 days
success #5222 main d11e644a
#2586 Placeholder Peter deploy
dev
0:15
3 years, 16 days
success #5221 main d11e644a
#2586 Placeholder Peter build
dev
0:9
3 years, 16 days
success #5220 main a2d37666
#2585 Placeholder Peter deploy
dev
0:13
3 years, 16 days
success #5219 main a2d37666
#2585 Placeholder Peter build
dev
0:9
3 years, 16 days
success #5218 main b599e10b
#2584 Placeholder Peter deploy
dev
0:13
3 years, 17 days
success #5217 main b599e10b
#2584 Placeholder Peter build
dev
0:9
3 years, 17 days
success #5216 main e3aa827d
#2583 Placeholder Peter deploy
dev
0:13
3 years, 18 days
success #5214 main e3aa827d
#2583 Placeholder Peter build
dev
0:9
3 years, 18 days
success #5211 main 741ebfad
#2580 Placeholder Peter deploy
dev
0:12
3 years, 18 days
success #5209 main 741ebfad
#2580 Placeholder Peter build
dev
0:9
3 years, 18 days
success #5206 main 22734224
#2578 Placeholder Peter deploy
dev
0:14
3 years, 18 days
success #5205 main 22734224
#2578 Placeholder Peter build
dev
0:9
3 years, 18 days
success #5202 main 66d83fd2
#2576 Placeholder Peter deploy
dev
0:12
3 years, 18 days
success #5201 main 66d83fd2
#2576 Placeholder Peter build
dev
0:9
3 years, 18 days
success #5198 main 07f59a39
#2574 Placeholder Peter deploy
dev
0:12
3 years, 18 days
success #5197 main 07f59a39
#2574 Placeholder Peter build
dev
0:9
3 years, 18 days
success #5194 main 32c7df76
#2572 Placeholder Peter deploy
dev
0:21
3 years, 19 days
success #5193 main 32c7df76
#2572 Placeholder Peter build
dev
0:9
3 years, 19 days
success #5190 main 97362b31
#2570 Placeholder Peter deploy
dev
0:12
3 years, 20 days
success #5189 main 97362b31
#2570 Placeholder Peter build
dev
0:9
3 years, 20 days