- Abstract
- Reference Display Configuration
- Circuit Details
- Display timings
- Software Used
- Circuit Diagram in eSim
- Netlists
- NgSpice Plots
- Steps to run generate NgVeri Model
- Steps to run this project
- Acknowlegdements
- References
Table of contents generated with markdown-toc
A mixed signal SoC capable of displaying time through VGA interface at 640x480@60Hz, has been implemented through eSim. It works on 25MHz clock frequency based on standard VGA timing standards. It outputs display signals namely vsync and hsync, along with 6-bit RGB video output.
P.S - This image is rough...I will change it near future until then please bear with me :}
Analog part simply consists of few current limiting resistors to save the SoC in times of sudden short circuit.
In the digital part, there is a display signal generation block to generate hsync and vsync signals for VGA, with the help of display timing information and a drawing logic block which implements the clock as FSM. The latter is also responsible for rendering time onto screen through red, blue and green channels by reading data from ROM implemented for fonts and various .hex files included. Orginal code has been tweaked to work at refresh rate of 60Hz.
PIXEL_CLK = 25000
H_DISP = 640
V_DISP = 480
H_FPORCH = 16
H_SYNC = 96
H_BPORCH = 48
V_FPORCH = 10
V_SYNC = 2
V_BPORCH = 33
Sync polarity is negative for both hsync and vsync
It is an Open Source EDA developed by FOSSEE, IIT Bombay. It is used for electronic circuit simulation. It is made by the combination of two software namely NgSpice and KiCAD.
For more details refer:
https://esim.fossee.in/home
It is an Open Source Software for Spice Simulations. For more details refer:
http://ngspice.sourceforge.net/docs.html
It is an Online Web Browser IDE for Verilog/System-verilog/TL-Verilog Simulation. Refer
https://www.makerchip.com/
It is a tool which converts Verilog code to C++ objects. Refer: https://www.veripool.org/verilator/
The following is the schematic in eSim:
- Open eSim
- Run NgVeri-Makerchip
- Add top level verilog file in Makerchip Tab
- Click on NgVeri tab
- Add dependency files
- Click on Run Verilog to NgSpice Converter
- Debug if any errors
- Model created successfully
- Open a new terminal
- Clone this project using the following command:
git clone https://github.com/z-a-p-k-i-n-g/Mixed-signal-VGA-clock-using-eSim.git
- Change directory:
cd eSim_project_files/VGAClock
- Run ngspice:
ngspice VGAClock.cir.out
- To run the project in eSim:
- Run eSim
- Load the project
- Open eeSchema
- Sumanto Kar, eSim Team, FOSSEE
- Kunal Ghosh, Co-founder, VSD Corp. Pvt. Ltd. - [email protected]
- Matt Venn for his VGA Clock design
- FOSSEE, IIT Bombay
- ProjectF https://projectf.io/posts/fpga-graphics/
- Matt Venn's VGA Clock design https://github.com/mattvenn/vga-clock.git