Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
testing_crt_screen_with_fpga [2018/09/15 01:16]
yehowshua
testing_crt_screen_with_fpga [2018/10/15 11:50] (current)
yehowshua
Line 5: Line 5:
 I chose to program to FPGA to first draw bars on the screen as a simple smoke test. I chose to program to FPGA to first draw bars on the screen as a simple smoke test.
  
-=== Prerequisites ===+====== Prerequisites ​======
   * [http://​ghdl.free.fr GHDL]   * [http://​ghdl.free.fr GHDL]
   * [http://​gtkwave.sourceforge.net GTKWave] [https://​sourceforge.net/​projects/​gtkwave/​files/​gtkwave-3.3.89-osx-app/​ GTKWave for Mac]   * [http://​gtkwave.sourceforge.net GTKWave] [https://​sourceforge.net/​projects/​gtkwave/​files/​gtkwave-3.3.89-osx-app/​ GTKWave for Mac]
   * [http://​www.clifford.at/​icestorm/​ IceStorm Toolchain] [https://​github.com/​FPGAwars/​toolchain-icestorm/​wiki Quick Install Guide]   * [http://​www.clifford.at/​icestorm/​ IceStorm Toolchain] [https://​github.com/​FPGAwars/​toolchain-icestorm/​wiki Quick Install Guide]
  
-=== Implementation ===+====== Implementation ​======
 I wrote some VHDL to execute the behavior in the diagram to the right. It is important to note that the video signal is only allowed to be high in the "​active video" portions of the signal. I wrote some VHDL to execute the behavior in the diagram to the right. It is important to note that the video signal is only allowed to be high in the "​active video" portions of the signal.
  
Line 23: Line 23:
 Nothing happened at first because I used resistors as voltage dividers to protect my FPGA from sourcing too much current. I pulled out the resistors(in retrospect, I should have simply used a multi-meter to measure the resistance offered by the CRT interface instead of taking my chances) and heard the CRT make an erratic ticking noise, suggesting it had trouble syncing. I noticed I had swapped my H_SYNC and V_SYNC by accident, so I reversed them and voila! Nothing happened at first because I used resistors as voltage dividers to protect my FPGA from sourcing too much current. I pulled out the resistors(in retrospect, I should have simply used a multi-meter to measure the resistance offered by the CRT interface instead of taking my chances) and heard the CRT make an erratic ticking noise, suggesting it had trouble syncing. I noticed I had swapped my H_SYNC and V_SYNC by accident, so I reversed them and voila!
  
-=== Updates ===+====== Updates ​======
 I later realized that the VHDL I wrote did not correctly follow the video protocol as described in the figure above, so I updated the code, pushed changes, and also modified the code to display square test patterns, which reasonably confirms to me that the screen works. I later realized that the VHDL I wrote did not correctly follow the video protocol as described in the figure above, so I updated the code, pushed changes, and also modified the code to display square test patterns, which reasonably confirms to me that the screen works.
  
 {{:​wiki:​mac_displaying_squares_cropped_compressed.jpg?​400|}} {{:​wiki:​mac_displaying_squares_cropped_compressed.jpg?​400|}}
  • /var/www/html/container/dokuwiki-2018-04-22a/data/pages/testing_crt_screen_with_fpga.txt
  • Last modified: 2018/10/15 11:50
  • by yehowshua