Session #6: Synthesis & Physical Design¶
Homework¶
- Synthesize your design — review gate count and check for unintended latches
- Run place and route flow
- Analyze timing reports — identify and fix any violations
- Generate GDS and review layout in KLayout
Introduction¶
I had to miss class again, due to teaching my own class. I watcehd the recorded video HERE
Verilog RTL -> [Synethesis] -> Gate Netlist -> Place & Route -> GDS
Note
1000’s of people configure the compiler when doing chip design.
Note
reg are for inside blocks and wire are for outside block.
Verilog code for PWM Generator¶
First Error
Second Error
Ventilator passed code

TB
GTKWave: The vcd file was incredible large, had to remove it. Don’t know why YET!
Below is the visual of the vcd file. I notice the

Found this little nugget of information.

I think the pb_out has the incorrect timing. so I changed the time scale. The pb_out is still reading x and the graph is red. The signal is not getting to the button. I no long think it is a time issue and think it is a construct logic issue.
Read this about the counter (here)[https://www.fpga4student.com/2017/04/simple-debouncing-verilog-code-for.html]
Not exactly the file I wanted, however I decided to move on with the rest of the assignment.

Synthesize¶
Yosys

ok, did not know what to expect. Since this was an extremely simple verilog file not much to look at yet.
Heirachy check
hierarchy - check -top button_pwm

Seem to run into a problem I could not write in the yosys termial anymore. I stop the terminal and started another one.
Yes I can sse the wire, ports, cells, gates, and other things.
some unmapped and some mapped

Well this did not work.

I thought it may not have worked because I had to stop everything an come back so I came back in the morning and ran yosys commands and it seems like a success.
```yosys button_pwm.v”

hierachy -check -top button_pwm

synth -top button_pwm


write_verilog -noattr synth.v
I check for the synth.v file and low and behold there was a verilog file.

It looks like sucess for the step.
Rout Flow¶
Started the route and flow process. Hit a snag reading the synth.v file.

Timing Analysis¶
GDS Generation¶
Resources:¶
- https://excalidraw.com/
- https://mail.google.com/mail/u/1/#inbox/FMfcgzQfCMqbkmqRTbvgBgnDVHjXZdNx
- https://oscilloscope.fhdm.xyz/
- (Verilog Motor Control)[https://eureka.patsnap.com/article/fpga-programming-for-motor-control-vhdlverilog-examples]
- https://www.fpga4student.com/2017/04/simple-debouncing-verilog-code-for.html
