Skip to content

Commit 1cbede8

Browse files
authored
Merge pull request #1885 from sdamghan/new_docs
2 parents d735a46 + faf2ca6 commit 1cbede8

17 files changed

+1302
-146
lines changed

doc/src/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ For more specific documentation about VPR see :ref:`vpr`.
3737
arch/index
3838
vpr/index
3939
odin/index
40+
yosys+odin/index
41+
yosys/index
4042
abc/index
4143
tutorials/index
4244
utils/index

doc/src/odin/dev_guide/contributing.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,18 @@ Make changes to that branch.
2828
Then, create a pull request with that branch and **include WIP in the title.**
2929
This will automatically indicate that this PR is not ready to be merged.
3030
Continue to work on the branch, pushing the commits regularly.
31-
Like a PR, test cases are also needed to be included through the use of benchmarks.
31+
Like a PR, test cases must be included through the use of benchmarks.
3232
See [regression tests](./regression_tests) for further instruction.
3333

3434
### Formating
3535

3636
Odin II shares the same contributing philosophy as [VPR](https://docs.verilogtorouting.org/en/latest/dev/contributing/contributing/).
3737
Most importantly PRs will be rejected if they do not respect the coding standard: see [VPRs coding standard](https://docs.verilogtorouting.org/en/latest/dev/developing/#code-formatting)
3838

39+
To correct any code formatting issues flagged by the CI system, simply run ``make format`` to adapt the newly added code to VPR's coding standard.
40+
If you have made alterations to python scripts, you would probably need to run ``make format-py`` and ``./dev/pylint_check.py`` from the VTR root directory to correct the python code formatting and check for lint errors.
41+
42+
3943
## Odin II's Flow
4044

4145
Odin II functions by systematically executing a set of steps determined by the files and arguments passed in.

doc/src/odin/dev_guide/regression_test.md

Lines changed: 147 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -325,141 +325,154 @@ This set of regression test includes benchmarks targetting compiler directives a
325325

326326
```bash
327327
benchmark
328-
├── suite
329-
│   ├── complex_synthesis_suite
330-
│   │ └── task_list.conf
331-
│   ├── full_suite
332-
│   │   └── task_list.conf
333-
│   ├── heavy_suite
334-
│   │   └── task_list.conf
335-
│   └── light_suite
336-
│   └── task_list.conf
337-
├── task
338-
│   ├── arch_sweep
339-
│   │   ├── synthesis_result.json
340-
│   │   └── task.conf
341-
│   ├── binary
342-
│   │   ├── simulation_result.json
343-
│   │   ├── synthesis_result.json
344-
│   │   └── task.conf
345-
│   ├── cmd_line_args
346-
│   │   ├── batch_simulation
347-
│   │   │   ├── simulation_result.json
348-
│   │   │   ├── synthesis_result.json
349-
│   │   │   └── task.conf
350-
│   │   ├── best_coverage
351-
│   │   │   ├── simulation_result.json
352-
│   │   │   ├── synthesis_result.json
353-
│   │   │   └── task.conf
354-
│   │   ├── coverage
355-
│   │   │   ├── simulation_result.json
356-
│   │   │   ├── synthesis_result.json
357-
│   │   │   └── task.conf
358-
│   │   ├── graphviz_ast
359-
│   │   │   ├── synthesis_result.json
360-
│   │   │   └── task.conf
361-
│   │   ├── graphviz_netlist
362-
│   │   │   ├── synthesis_result.json
363-
│   │   │   └── task.conf
364-
│   │   └── parallel_simulation
365-
│   │   ├── simulation_result.json
366-
│   │   ├── synthesis_result.json
367-
│   │   └── task.conf
368-
│   ├── FIR
369-
│   │   ├── simulation_result.json
370-
│   │   ├── synthesis_result.json
371-
│   │   └── task.conf
372-
│   ├── full
373-
│   │   ├── simulation_result.json
374-
│   │   ├── synthesis_result.json
375-
│   │   └── task.conf
376-
│   ├── keywords
377-
| | ├── always
378-
│   │   ├── and
379-
| | ├── assign
380-
| | ├── at_parenthathese
381-
| | ├── automatic
382-
| | ├── begin_end
383-
| | ├── buf
384-
| | ├── case_endcase
385-
| | ├── default
386-
| | ├── defparam
387-
| | ├── else
388-
| | ├── for
389-
| | ├── function_endfunction
390-
| | ├── generate
391-
| | ├── genvar
392-
| | ├── if
393-
| | ├── initial
394-
| | ├── inout
395-
| | ├── input_output
396-
| | ├── integer
397-
| | ├── localparam
398-
| | ├── macromodule
399-
| | ├── nand
400-
| | ├── negedge
401-
| | ├── nor
402-
| | ├── not
403-
| | ├── or
404-
| | ├── parameter
405-
| | ├── posedge
406-
| | ├── reg
407-
| | ├── signed_unsigned
408-
| | ├── specify_endspecify
409-
| | ├── specparam
410-
| | ├── star
411-
| | ├── task_endtask
412-
| | ├── while
413-
| | ├── wire
414-
| | ├── xnor
415-
│   │   └── xor
416-
│   ├── large
417-
│   │   ├── synthesis_result.json
418-
│   │   └── task.conf
419-
│   ├── micro
420-
│   │   ├── simulation_result.json
421-
│   │   ├── synthesis_result.json
422-
│   │   └── task.conf
423-
│   ├── mixing_optimization
424-
|   |   ├── mults_auto_full
425-
│   │   |   ├── simulation_result.json
426-
│   │   |   |── synthesis_result.json
427-
│   │   |   └── task.conf
428-
|   |   ├── mults_auto_half
429-
│   │   |   ├── simulation_result.json
430-
│   │   |   |── synthesis_result.json
431-
│   │   |   └── task.conf
432-
|   |   ├── mults_auto_none
433-
│   │   |   ├── simulation_result.json
434-
│   │   |   |── synthesis_result.json
435-
│   │   |   └── task.conf
436-
|   |   ├── config_file_half
437-
│   │   |   ├── config_file_half.xml
438-
│   │   |   ├── simulation_result.json
439-
│   │   |   |── synthesis_result.json
440-
│   │   |   └── task.conf
441-
│   ├── operators
442-
│   │   ├── simulation_result.json
443-
│   │   ├── synthesis_result.json
444-
│    │   └── task.conf
445-
│   ├── preprocessor
446-
│   │   ├── simulation_result.json
447-
│    │   ├── synthesis_result.json
448-
│    │   └── task.conf
449-
│   ├── syntax
450-
│   │   ├── simulation_result.json
451-
│    │   ├── synthesis_result.json
452-
│    │   └── task.conf
453-
│   └── vtr
454-
│   └── task.conf
455-
├── third_party
456-
│   └── SymbiFlow
457-
│   ├── build.sh
458-
│   └── task.mk
459-
└── verilog
460-
├── binary
461-
├── ex1BT16_fir_20_input
328+
├── suite
329+
│   ├── complex_synthesis_suite
330+
│   │ └── task_list.conf
331+
│   ├── full_suite
332+
│   │   └── task_list.conf
333+
│   ├── heavy_suite
334+
│   │   └── task_list.conf
335+
│   ├── light_suite
336+
│   │ └── task_list.conf
337+
│ └── yosys+odin
338+
├── task
339+
│   ├── arch_sweep
340+
│   │   ├── synthesis_result.json
341+
│   │   └── task.conf
342+
│ ├── c_functions
343+
│ │ └── clog2
344+
│ │ ├── simulation_result.json
345+
│ │ ├── synthesis_result.json
346+
│ │ └── task.conf
347+
│   ├── cmd_line_args
348+
│   │   ├── batch_simulation
349+
│   │   │   ├── simulation_result.json
350+
│   │   │   ├── synthesis_result.json
351+
│   │   │   └── task.conf
352+
│   │   ├── best_coverage
353+
│   │   │   ├── simulation_result.json
354+
│   │   │   ├── synthesis_result.json
355+
│   │   │   └── task.conf
356+
│   │   ├── coverage
357+
│   │   │   ├── simulation_result.json
358+
│   │   │   ├── synthesis_result.json
359+
│   │   │   └── task.conf
360+
│   │   ├── graphviz_ast
361+
│   │   │   ├── synthesis_result.json
362+
│   │   │   └── task.conf
363+
│   │   ├── graphviz_netlist
364+
│   │   │   ├── synthesis_result.json
365+
│   │   │   └── task.conf
366+
│   │   └── parallel_simulation
367+
│   │   ├── simulation_result.json
368+
│   │   ├── synthesis_result.json
369+
│   │   └── task.conf
370+
│   ├── FIR
371+
│   │   ├── simulation_result.json
372+
│   │   ├── synthesis_result.json
373+
│   │   └── task.conf
374+
│ ├── fpu
375+
│ │ └── hardlogic
376+
│ │ ├── simulation_result.json
377+
│ │ ├── synthesis_result.json
378+
│ │ └── task.conf
379+
│   ├── full
380+
│   │   ├── simulation_result.json
381+
│   │   ├── synthesis_result.json
382+
│   │   └── task.conf
383+
│   ├── keywords
384+
│ │ ├── always
385+
│   │   ├── and
386+
│ │ ├── assign
387+
│ │ ├── at_parenthathese
388+
│ │ ├── automatic
389+
│ │ ├── begin_end
390+
│ │ ├── buf
391+
│ │ ├── case_endcase
392+
│ │ ├── default
393+
│ │ ├── defparam
394+
│ │ ├── else
395+
│ │ ├── for
396+
│ │ ├── function_endfunction
397+
│ │ ├── generate
398+
│ │ ├── genvar
399+
│ │ ├── if
400+
│ │ ├── initial
401+
│ │ ├── inout
402+
│ │ ├── input_output
403+
│ │ ├── integer
404+
│ │ ├── localparam
405+
│ │ ├── macromodule
406+
│ │ ├── nand
407+
│ │ ├── negedge
408+
│ │ ├── nor
409+
│ │ ├── not
410+
│ │ ├── or
411+
│ │ ├── parameter
412+
│ │ ├── posedge
413+
│ │ ├── reg
414+
│ │ ├── signed_unsigned
415+
│ │ ├── specify_endspecify
416+
│ │ ├── specparam
417+
│ │ ├── star
418+
│ │ ├── task_endtask
419+
│ │ ├── while
420+
│ │ ├── wire
421+
│ │ ├── xnor
422+
│   │   └── xor
423+
│   ├── koios
424+
│   │   ├── synthesis_result.json
425+
│   │   └── task.conf
426+
│   ├── large
427+
│   │   ├── synthesis_result.json
428+
│   │   └── task.conf
429+
│   ├── micro
430+
│   │   ├── simulation_result.json
431+
│   │   ├── synthesis_result.json
432+
│   │   └── task.conf
433+
│   ├── mixing_optimization
434+
│   │   ├── mults_auto_full
435+
│   │   │   ├── simulation_result.json
436+
│   │   │   │── synthesis_result.json
437+
│   │   │   └── task.conf
438+
│   │   ├── mults_auto_half
439+
│   │   │   ├── simulation_result.json
440+
│   │   │   │── synthesis_result.json
441+
│   │   │   └── task.conf
442+
│   │   ├── mults_auto_none
443+
│   │   │   ├── simulation_result.json
444+
│   │   │   │── synthesis_result.json
445+
│   │   │   └── task.conf
446+
│   │   ├── config_file_half
447+
│   │   │   ├── config_file_half.xml
448+
│   │   │   ├── simulation_result.json
449+
│   │   │   │── synthesis_result.json
450+
│   │   │   └── task.conf
451+
│   ├── operators
452+
│   │   ├── simulation_result.json
453+
│   │   ├── synthesis_result.json
454+
│    │   └── task.conf
455+
│   ├── preprocessor
456+
│   │   ├── simulation_result.json
457+
│    │   ├── synthesis_result.json
458+
│    │   └── task.conf
459+
│   ├── syntax
460+
│   │   ├── simulation_result.json
461+
│    │   ├── synthesis_result.json
462+
│    │   └── task.conf
463+
│   ├── vtr
464+
│    │   ├── synthesis_result.json
465+
│   │ └── task.conf
466+
│ └── yosys+odin
467+
468+
├── third_party
469+
│   └── SymbiFlow
470+
│   ├── build.sh
471+
│   └── task.mk
472+
└── verilog
462473
├── FIR
474+
├── c_functions
475+
├── common
463476
├── full
464477
├── keywords
465478
├── large

doc/src/odin/dev_guide/testing.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# TESTING ODIN II
22

3-
The verify_odin.sh script will simulate the microbenchmarks and a larger set of benchmark circuits.
3+
The ``verify_odin.sh`` script will simulate the microbenchmarks and a larger set of benchmark circuits.
44
These scripts use simulation results which have been verified against ModelSim.
55

6-
After you build Odin II, run 'make test' to ensure that everything is working correctly on your system.
7-
Unlike the verify\_regression\_tests.sh script, verify\_odin.sh also simulates the
8-
blif output, as well as simulating the verilog with and without the
6+
After you build Odin-II, run ``make test ELABORATOR=odin`` or ``make test`` to ensure that everything is working correctly on your system.
7+
The ``verify_odin.sh`` also simulates the blif output, as well as simulating the verilog with and without the
98
architecture file.
109

10+
1111
Before checking in any changes to Odin II, please run both of these scripts to ensure that both of these scripts execute correctly.
1212
If there is a failure, use ModelSim to verify that the failure is within Odin II and not a faulty regression test.
13-
If it is a faulty regression test, make an [issue on GitHub](./reporting_bugs.md).
14-
The Odin II simulator will produce a test.do file containing clock and input vector information for ModelSim.
13+
If it is a faulty regression test, make an [issue on GitHub](https://github.com/verilog-to-routing/vtr-verilog-to-routing/issues/new/choose).
14+
The Odin II simulator will produce a ``test.do`` file containing clock and input vector information for ModelSim.
1515

1616
When additional circuits are found to agree with ModelSim, they should be added to the regression tests.
1717
When new features are added to Odin II, new microbenchmarks should be developed which test those features for regression.
@@ -23,9 +23,13 @@ ModelSim may be installed as part of the Quartus II Web Edition IDE.
2323
Load the Verilog circuit into a new project in ModelSim.
2424
Compile the circuit, and load the resulting library for simulation.
2525

26-
You may use random vectors via the -g option, or specify your own input vectors using the -t option.
27-
When simulation is complete, load the resulting test.do file into your ModelSim project and execute it.
28-
You may now directly compare the vectors in the output\_vectors file with those produced by ModelSim.
26+
You may use random vectors via the ``-g`` option, or specify your own input vectors using the ``-t`` option.
27+
When simulation is complete, load the resulting ``test.do`` file into your ModelSim project and execute it.
28+
You may now directly compare the vectors in the ``output_vectors`` file with those produced by ModelSim.
29+
30+
> NOTE
31+
>
32+
> For simulation purposes, you may need to handle the ``GLOBAL_SIM_BASE_CLK`` signal in the ``input_vector`` by either adding this signal as an input signal to the top module or removing it from the ``input_vector`` file.
2933
30-
To add the verified vectors and circuit to an existing test set, move the verilog file (eg: test\_circuit.v) to the test set folder.
31-
Next, move the input\_vectors file to the test set folder, and rename it test\_circuit\_input. Finally, move the output\_vectors file to the test set folder and rename it test\_circuit\_output.
34+
To add the verified vectors and circuit to an existing test set, move the Verilog file (eg: ``test_circuit.v``) to the test set folder.
35+
Next, move the ``input_vectors`` file to the test set folder, and rename it ``test_circuit_$ELABORATOR_input`` (`$ELABORATOR: odin, yosys`). Finally, move the ``output_vectors`` file to the test set folder and rename it ``test_circuit_$ELABORATOR_output``.
204 KB
Loading

0 commit comments

Comments
 (0)