You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-2Lines changed: 4 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -104,8 +104,10 @@ Professors: Kenneth Kent, Vaughn Betz, Jonathan Rose, Jason Anderson, Peter Jami
104
104
105
105
Research Assistants: Aaron Graham
106
106
107
-
Graduate Students: Kevin Murray, Jason Luu, Oleg Petelin, Jeffrey Goeders, Chi Wai Yu, Andrew Somerville, Ian Kuon, Alexander Marquardt, Andy Ye, Wei Mark Fang, Tim Liu, Charles Chiasson, Panagiotis (Panos) Patros
107
+
Graduate Students: Kevin Murray, Jason Luu, Oleg Petelin, Mohamed Eldafrawy, Jeffrey Goeders, Chi Wai Yu, Andrew Somerville, Ian Kuon, Alexander Marquardt, Andy Ye, Wei Mark Fang, Tim Liu, Charles Chiasson, Panagiotis (Panos) Patros
108
108
109
109
Summer Students: Opal Densmore, Ted Campbell, Cong Wang, Peter Milankov, Scott Whitty, Michael Wainberg, Suya Liu, Miad Nasr, Nooruddin Ahmed, Thien Yu, Long Yu Wang, Matthew J.P. Walker, Amer Hesson, Sheng Zhong, Hanqing Zeng, Vidya Sankaranarayanan, Jia Min Wang, Eugene Sha, Jean-Philippe Legault, Richard Ren, Dingyu Yang
110
110
111
-
Companies: Altera Corporation, Texas Instruments
111
+
Companies: Intel, Huawei, Lattice, Altera Corporation, Texas Instruments, Google
112
+
113
+
Funding Agencies: NSERC, Semiconductor Research Corporation
Copy file name to clipboardExpand all lines: doc/src/dev/tutorial.md
+41-25Lines changed: 41 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -7,59 +7,75 @@ Welcome to the Verilog-to-Routing (VTR) Project. This project is an open-source,
7
7
While you are going through this tutorial, please record down things that should be changed. Whether it is the tutorial itself, documentation, or other parts of the VTR project. Your thoughts are valuable and welcome because fresh eyes help evaluate whether or not our work is clearly presented.
8
8
9
9
10
-
## Task #1 - Environment Setup ##
10
+
## Environment Setup ##
11
11
12
-
1.Log into your workstation/personal computer. Check your account for general features such as internet, printing, git, etc. If there are problems at this stage, talk to your advisor to get this setup.
12
+
Log into your workstation/personal computer. Check your account for general features such as internet, printing, git, etc. If there are problems at this stage, talk to your advisor to get this setup.
13
13
14
-
2.If you are not familiar with development on Linux, this is the time to get up to speed. Look up online tutorials on general commands, basic development using Makefiles, etc.
14
+
If you are not familiar with development on Linux, this is the time to get up to speed. Look up online tutorials on general commands, basic development using Makefiles, etc.
15
15
16
-
## Task #2 - Background Reading ##
16
+
## Background Reading ##
17
17
18
-
1.Read the first two chapters of "Architecture and CAD for deep-submicron FPGAs" by Vaughn Betz, et al. This is a great introduction to the topic of FPGA CAD and architecture. Note though that this book is old so it only covers a small core of what the VTR project is currently capable of.
18
+
Read the first two chapters of "Architecture and CAD for deep-submicron FPGAs" by Vaughn Betz, et al. This is a great introduction to the topic of FPGA CAD and architecture. Note though that this book is old so it only covers a small core of what the VTR project is currently capable of.
19
19
20
-
2.Read chapters 1 to 5 of "FPGA Architecture: Survey and Challenges" by Ian Kuon et al.
20
+
Read chapters 1 to 5 of "FPGA Architecture: Survey and Challenges" by Ian Kuon et al.
21
21
22
-
3.Review material learned with fellow colleagues.
22
+
Review material learned with fellow colleagues.
23
23
24
-
## Task #3 - Setup VTR ##
24
+
## Setup VTR ##
25
25
26
-
1.Use git to clone a copy of VTR from the [GitHub repository](https://github.com/verilog-to-routing/vtr-verilog-to-routing)
26
+
Use git to clone a copy of VTR from the [GitHub repository](https://github.com/verilog-to-routing/vtr-verilog-to-routing)
27
27
28
-
2. Build the project
28
+
Build the project by running the `make` command
29
29
30
-
3.Run "./run_quick_test.pl" to check that the build worked
30
+
Run `./run_quick_test.pl` to check that the build worked
31
31
32
-
4.Follow the Basic Design Flow Tutorial found in the Tutorials section of the [documentation](https://vtr.readthedocs.io/en/latest). This tutorial will allow you to run a circuit through the entire flow and read the statistics gathered from that run.
32
+
Follow the Basic Design Flow Tutorial found in the Tutorials section of the [Welcome to Verilog-to-Routing's documentation!](https://vtr.readthedocs.io/en/latest). This tutorial will allow you to run a circuit through the entire flow and read the statistics gathered from that run.
33
33
34
-
## Task #4 - Use VTR ##
34
+
## Use VTR ##
35
35
36
-
1.Create your own custom Verilog file. Create your own custom architecture file using one of the existing architecture files as a template. Use VTR to map that circuit that you created to that architecture that you created. The VTR documentation, to be found at [Welcome to Verilog-to-Routing's documention!](https://vtr.readthedocs.io/en/latest/) will prove useful. You may also wish to look at the following links for descriptions of the language used inside the architecture files:
36
+
Create your own custom Verilog file. Create your own custom architecture file using one of the existing architecture files as a template. Use VTR to map that circuit that you created to that architecture that you created. The VTR documentation, to be found at the [Welcome to Verilog-to-Routing's documentation!](https://vtr.readthedocs.io/en/latest/) will prove useful. You may also wish to look at the following links for descriptions of the language used inside the architecture files:
37
37
*[Architecture Description and Packing](http://www.eecg.utoronto.ca/~jluu/publications/luu_vpr_fpga2011.pdf)
2.Perform a simple architecture experiment. Run an experiment that varies Fc_in from 0.01 to 1.00 on the benchmarks ch_intrinsics, or1200, and sha. Use tasks/timing as your template. Graph the geometric average of minimum channel width and critical path delay for these three benchmarks across your different values of Fc_in. Review the results with your colleagues and/or advisor.
40
+
Perform a simple architecture experiment. Run an experiment that varies Fc_in from 0.01 to 1.00 on the benchmarks ch_intrinsics, or1200, and sha. Use `tasks/timing` as your template. Graph the geometric average of minimum channel width and critical path delay for these three benchmarks across your different values of Fc_in. Review the results with your colleagues and/or advisor.
41
41
42
-
## Task #5 - Open the Black Box ##
42
+
## Open the Black Box ##
43
43
44
-
At this stage, you have gotten a taste of how an FPGA architect would go about using VTR. As a developer though, you need a much deeper understanding of how this tool works. The purpose of this section is to have you to learn the details of the VTR CAD flow by having you manually do what the scripts do.
44
+
At this stage, you have gotten a taste of how an FPGA architect would go about using VTR. As a developer though, you need a much deeper understanding of how this tool works. The purpose of this section is to have you to learn the details of the VTR CAD flow by having you manually do what the scripts do.
45
45
46
-
1.Using the custom Verilog circuit and architecture created in Task #4, directly run Odin II on it to generate a blif netlist. You may need to skim the Odin II readme file and the vtr_flow/scripts/run_vtr_flow.pl.
46
+
Using the custom Verilog circuit and architecture created in the previous step, directly run Odin II on it to generate a blif netlist. You may need to skim the `ODIN_II/README.rst`and the `vtr_flow/scripts/run_vtr_flow.pl`.
47
47
48
-
2. Using the output netlist of Odin II, run ABC to generate a technology-mapped blif file. You may need to skim vtr_flow/scripts/run_vtr_flow.pl.
49
48
50
-
3. Using the output of ABC, run VPR to complete the mapping of a user circuit to a target architecture. You may need to consult the VPR User Manual and skim vtr_flow/scripts/run_vtr_flow.pl.
49
+
Using the output netlist of Odin II, run ABC to generate a technology-mapped blif file. You may need to skim the [ABC homepage](http://www.eecs.berkeley.edu/~alanmi/abc/).
50
+
```shell
51
+
# Run the ABC program from regular terminal (bash shell)
52
+
$VTR_ROOT/abc abc
51
53
52
-
4. Read the VPR section of the online documentation.
54
+
# Using the ABC shell to read and write blif file
55
+
abc 01> read_blif Odin_II_output.blif
56
+
abc 01> write_blif abc_output.blif
57
+
```
53
58
54
-
## Task #6 - Submitting Changes and Regression Testing ##
59
+
Using the output of ABC and your architecture file, run VPR to complete the mapping of a user circuit to a target architecture. You may need to consult the VPR User Manual.
55
60
56
-
1. Read README.developers.md in the base directory of VTR. Code changes rapidly so please help keep this up to date if you see something that is out of date.
2. Make your first change to git by modifying README.txt and pushing it. I recommend adding your name to the list of contributors. If you have nothing to modify, just add/remove a line of whitespace at the bottom of the file.
66
+
Read the VPR section of the online documentation.
67
+
68
+
## Submitting Changes and Regression Testing ##
69
+
70
+
Read `README.developers.md` in the base directory of VTR. Code changes rapidly so please help keep this up to date if you see something that is out of date.
71
+
72
+
Make your first change to git by modifying `README.txt` and pushing it. I recommend adding your name to the list of contributors. If you have nothing to modify, just add/remove a line of whitespace at the bottom of the file.
59
73
60
74
61
75
Now that you have completed the tutorial, you should have a general sense of what the VTR project is about and how the different parts work together. It's time to talk to your advisor to get your first assignment.
0 commit comments