Shop OBEX P1 Docs P2 Docs Learn Events
P1V with native HDMI output @ 720p — Parallax Forums

P1V with native HDMI output @ 720p

RaymanRayman Posts: 14,755
edited 2022-02-05 18:49 in Propeller 1

Just got P1V (FPGA) working with native HDMI output.

Doesn't use any cogs because it's all done in FPGA fabric.
It uses a separate copy of the ROM font so that the RAM/ROM space where the ROM font usually is can be used for the screen buffer.

The screen buffer uses two bytes per tile, one for tile index and one for color.
There are 256 sets of 24 bit colors to choose from.
The colors are currently hard coded in FPGA, but maybe could be in HUB RAM if needed.

This Arty S7 board with Spartan 7 FPGA doesn't have a HDMI connector for some reason, so I'm using this P2 eval board adapter with some jumper wires.

This will probably work at 1080p too.

Update: Attached full Vivado source files.

1512 x 2016 - 363K
2016 x 1512 - 178K

Comments

  • RaymanRayman Posts: 14,755
    edited 2022-01-20 18:14

    The HDMI code is pretty vanilla, the real work is done in hub_mem.v (attached as text file).
    The code brings the pixel clock, and x and y pixel numbers (sx & sy) up from the HDMI driver and then down into hub_mem.v.
    I think the tile driver has to be in hub_mem.v because that's where the HUB memory is and you can't import 2D arrays in regular Verilog.

  • RaymanRayman Posts: 14,755
    edited 2022-01-20 18:18

    Here's the .spin test program.
    You can see there is no screen driver in it.
    The FPGA just looks for the screen array at some predetermined place.
    Now at $7000, but I'll probably move it to $8000.

    But, you can see how the print statement works is very similar to the regular VGA demo.

  • I was thinking you should go the other way.

    Build a HDMI adapter to hookup to the P1 or P2 that excepts commands to drive the HDMI screen like maybe an SSD1331.

    I hate to have to run the P2 at 350 mhz just to display some data on an HDMI screen.

    Maybe I should look at the Dazzler board again. It does just that but I don't like the FPGA he used to build it.

    Mike

  • RaymanRayman Posts: 14,755

    Already done P2 --> Dazzler 3X.
    It works at 720p. Doesn't seem to work with TVs for some reason though.

    That reminds me, I wanted to see if this works with TVs or not...

  • RaymanRayman Posts: 14,755

    Nice thing about this is that it's just one chip.
    See here how there's plenty of room for more stuff:

    779 x 415 - 18K
  • Ya, but the footprint is way too big. Need something 2 inches in size would be nice.

    Oh, by the way, Adafruits makes some nice 30 gauge silicon wires that would work a lot better than the spaghetti wires you have soldered up there. They even come in multi colors. adafruit wires

    Mike

  • RaymanRayman Posts: 14,755

    Do you mean the Arty S7 board is too big?

    Digilent does make smaller versions:
    https://digilent.com/shop/cmod-a7-breadboardable-artix-7-fpga-module/

    The Spartan 7 one looks out of stock at the moment, but the Artix 7 one is in stock.
    I imagine the fpga files would work with just a change to the constraint file and the target...

    BTW: Putting the full source in the top post.

Sign In or Register to comment.