VGA Text for Papilio One (got error when trying to Implement)


Recommended Posts



last day I was interesting to implement VGA driver in FPGA using Papilio board there is a tutorial written by alvie about using ZPUINO to drive VGA LCD display, it's a great tutorial for newbie and beginner but it's like using Arduino with some line of c code to show hello world,

I want something written in VHDL, by the way I find this one





written by Kevin Lindsey   after download the source code for Github, I try to implement the top module for VGA Text when I use Xilinx 14.5 when I open the vga_text.xise I got this message image.png


I choose Backup and Migrate   When I try to implement the top module I got this error



Why this error show to me also I want to ask some question about this source code because I want to understand the fundamentals of how it’s work Q1/ I  understand this file like font library for the character used to show on display  font_unit - font_rom - arch (font_rom.vhd) as example     

		-- code x32		"00000000", -- 0		"00000000", -- 1		"01111100", -- 2  *****		"11000110", -- 3 **   **		"00000110", -- 4      **		"00001100", -- 5     **		"00011000", -- 6    **		"00110000", -- 7   **		"01100000", -- 8  **		"11000000", -- 9 **		"11000110", -- a **   **		"11111110", -- b *******		"00000000", -- c		"00000000", -- d		"00000000", -- e		"00000000", -- f

  This code used to print 2 on screen but how to call it I mean the way to print number 2 by call “code x32” or what ? Can someone explain to me how to print hello world by using this code on screen and how to change its location or color

Link to comment
Share on other sites

Regarding the error message: I can't read it in your post, it just shows up as "?" for some reason.


Regarding how to "call" it:  The "Code x32" means "character code 0x32".  That is, when the value 50 (0x32) is found in the video_ram, the corresponding font data (what you quoted above) is displayed on the screen.  So the question for you is how to get the codes for "hello world" into the video_ram.


It looks like is part of that process.  I think it's used to generate a new video_ram.coe file, and then you build the whole thing using ISE.

  • Like 1
Link to comment
Share on other sites

what about this error message

NgdBuild:604 - logical block 'font_gen_unit/frame_buffer_unit' with type 'video_ram' could not be resolved. A pin name misspelling can cause this, a missing edif or ngc file, case mismatch between the block name and the edif or ngc file name, or the misspelling of a type name. Symbol 'video_ram' is not supported in target 'spartan6'.
Link to comment
Share on other sites

Yeah, I can see that.  I don't know exactly what's causing the error but my guess is:  That 'video_ram' was meant for the Spartan-3 FPGA found in the Papilio One board, and not the Spartan-6 FPGA you're building it for.


A lot of Verilog or VHDL code is portable, but some things which use vendor primitives might not be.  And it looks like video_ram is one of those; see "".


I see two options for fixing it:  (a) Use Xilinx's core generator to make one that will be suitable for Spartan-6; or (B) write one which can be inferred and therefore will be more portable.  I would usually choose (B) but I'm afraid neither (a) nor (B) is really easy.  (a) is explained in chapter 15 of the eBook linked here:

  • Like 1
Link to comment
Share on other sites

Thanks for explain , Now I see this much complicated than what I expect,


I have  Intro to Spartan FPGA eBook about FPGA, I print it on A4 paper  :lol:  and read 3 or 4 paper in home or work when I have time but till now I didn't done 15% of the book so I thing I'm still newbile to understand your answer, it's really different when someone move from MCU to FPGA but I'll continue try.


Thanks for helping Jaxartes.

Link to comment
Share on other sites

Hello Haider,


There are much easier solutions for writing text to VGA output on the Papilio using DesignLab. Please take a look at the VGA examples in the table of contents in DesignLab.


Also, here is some more information, it predates DesignLab but is still applicable.



Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.