URL
https://opencores.org/ocsvn/yavga/yavga/trunk
Subversion Repositories yavga
Compare Revisions
- This comparison shows the changes necessary to convert path
/yavga
- from Rev 13 to Rev 14
- ↔ Reverse comparison
Rev 13 → Rev 14
/tags/yavga-0.8.2/trunk/charmaps/convert.sh
0,0 → 1,89
#!/bin/sh |
# |
|
################################################################################ |
#### #### |
#### This file is part of the yaVGA project #### |
#### http://www.opencores.org/?do=project&who=yavga #### |
#### #### |
#### Description #### |
#### Implementation of yaVGA IP core #### |
#### #### |
#### To Do: #### |
#### #### |
#### #### |
#### Author(s): #### |
#### Sandro Amato, sdroamt@netscape.net #### |
#### #### |
################################################################################ |
#### #### |
#### Copyright (c) 2009, Sandro Amato #### |
#### All rights reserved. #### |
#### #### |
#### Redistribution and use in source and binary forms, with or without #### |
#### modification, are permitted provided that the following conditions #### |
#### are met: #### |
#### #### |
#### * Redistributions of source code must retain the above #### |
#### copyright notice, this list of conditions and the #### |
#### following disclaimer. #### |
#### * Redistributions in binary form must reproduce the above #### |
#### copyright notice, this list of conditions and the #### |
#### following disclaimer in the documentation and/or other #### |
#### materials provided with the distribution. #### |
#### * Neither the name of SANDRO AMATO nor the names of its #### |
#### contributors may be used to endorse or promote products #### |
#### derived from this software without specific prior written #### |
#### permission. #### |
#### #### |
#### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS #### |
#### "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT #### |
#### LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS #### |
#### FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE #### |
#### COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, #### |
#### INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, #### |
#### BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; #### |
#### LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER #### |
#### CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT #### |
#### LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN #### |
#### ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE #### |
#### POSSIBILITY OF SUCH DAMAGE. #### |
################################################################################ |
|
|
INIT_ELEM=32 |
|
CURR_ELEM=0 |
CURR_INIT="" |
INIT_NUM=0 |
while read LINE ; do |
case "${LINE}" in |
\#*) # skip |
;; |
|
*) HEX=`echo "obase=16; ibase=2; ${LINE}" | sed -e ' s/-/0/g ' | sed -e ' s/@/1/g ' | bc` |
|
CURR_ELEM=$((${CURR_ELEM} + 1)) |
# echo ${CURR_ELEM} |
|
if [ ${#HEX} = 1 ] ; then |
CURR_INIT="0${HEX}${CURR_INIT}" |
else |
CURR_INIT="${HEX}${CURR_INIT}" |
fi |
|
if [ ${CURR_ELEM} = ${INIT_ELEM} ] ; then |
INIT_HEX=`echo "obase=16; ibase=10; ${INIT_NUM}" | bc` |
echo "INIT_${INIT_HEX} => X\"${CURR_INIT}\"," |
CURR_ELEM=0 |
CURR_INIT="" |
|
INIT_NUM=$((${INIT_NUM} + 1)) |
fi |
|
;; |
esac |
done < chars.map |
echo "INIT_${INIT_HEX} => X\"${CURR_INIT}\"," |
|
|
tags/yavga-0.8.2/trunk/charmaps/convert.sh
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/yavga-0.8.2/trunk/charmaps/README.txt
===================================================================
--- tags/yavga-0.8.2/trunk/charmaps/README.txt (nonexistent)
+++ tags/yavga-0.8.2/trunk/charmaps/README.txt (revision 14)
@@ -0,0 +1,17 @@
+########################################################
+#### This file is part of the yaVGA project ####
+#### http://www.opencores.org/?do=project&who=yavga ####
+########################################################
+
+FIles:
+
+charmaps_ROM.vhd
+ chdl chunk to be completed with the output of convert.sh
+
+chars.map
+ the char maps (- = pixel off ; @ = pixel on)
+
+convert.sh
+ this file read the chars.map and write to to the standard output
+ a vhdl chunk to insert in the charmaps_ROM.vhd
+
Index: tags/yavga-0.8.2/trunk/charmaps/chars.map
===================================================================
--- tags/yavga-0.8.2/trunk/charmaps/chars.map (nonexistent)
+++ tags/yavga-0.8.2/trunk/charmaps/chars.map (revision 14)
@@ -0,0 +1,2353 @@
+################################################################################
+#### ####
+#### This file is part of the yaVGA project ####
+#### http://www.opencores.org/?do=project&who=yavga ####
+#### ####
+#### Description ####
+#### Implementation of yaVGA IP core ####
+#### ####
+#### To Do: ####
+#### ####
+#### ####
+#### Author(s): ####
+#### Sandro Amato, sdroamt@netscape.net ####
+#### ####
+################################################################################
+#### ####
+#### Copyright (c) 2009, Sandro Amato ####
+#### All rights reserved. ####
+#### ####
+#### Redistribution and use in source and binary forms, with or without ####
+#### modification, are permitted provided that the following conditions ####
+#### are met: ####
+#### ####
+#### * Redistributions of source code must retain the above ####
+#### copyright notice, this list of conditions and the ####
+#### following disclaimer. ####
+#### * Redistributions in binary form must reproduce the above ####
+#### copyright notice, this list of conditions and the ####
+#### following disclaimer in the documentation and/or other ####
+#### materials provided with the distribution. ####
+#### * Neither the name of SANDRO AMATO nor the names of its ####
+#### contributors may be used to endorse or promote products ####
+#### derived from this software without specific prior written ####
+#### permission. ####
+#### ####
+#### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ####
+#### "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ####
+#### LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ####
+#### FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ####
+#### COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ####
+#### INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ####
+#### BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ####
+#### LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ####
+#### CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ####
+#### LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ####
+#### ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ####
+#### POSSIBILITY OF SUCH DAMAGE. ####
+################################################################################
+#
+#
+# qqq
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+@@@@@@@@
+--------
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--@--@--
+--------
+--------
+#
+# qqq
+--------
+--------
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+-@--@--@
+--------
+--------
+#
+# qqq
+--------
+--------
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+--------
+--------
+#
+# qqq
+--------
+--------
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+-@-@-@-@
+--------
+--------
+#
+# qqq
+--------
+--------
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+--------
+--------
+#
+# qqq
+--------
+--------
+--------
+@@@@@@@@
+--------
+@@@@@@@@
+--------
+@@@@@@@@
+--------
+@@@@@@@@
+--------
+@@@@@@@@
+--------
+@@@@@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@--
+@@@@--@@
+@@@@@@--
+@@@@--@@
+@@@@@@--
+@@@@--@@
+@@@@@@--
+@@@@--@@
+@@@@@@--
+@@@@--@@
+@@@@@@--
+@@@@--@@
+--------
+--------
+#
+# qqq
+--------
+--------
+--@@@@@@
+@@--@@@@
+--@@@@@@
+@@--@@@@
+--@@@@@@
+@@--@@@@
+--@@@@@@
+@@--@@@@
+--@@@@@@
+@@--@@@@
+--@@@@@@
+@@--@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+------@@
+----@@--
+------@@
+----@@--
+------@@
+----@@--
+------@@
+----@@--
+------@@
+----@@--
+------@@
+----@@--
+--------
+--------
+#
+# qqq
+--------
+--------
+@@------
+--@@----
+@@------
+--@@----
+@@------
+--@@----
+@@------
+--@@----
+@@------
+--@@----
+@@------
+--@@----
+--------
+--------
+#
+# qqq
+--------
+--------
+--------
+-@@--@@-
+-@@--@@-
+-@@--@@-
+-@@--@@-
+--------
+--------
+-@@--@@-
+-@@--@@-
+-@@--@@-
+-@@--@@-
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@@@
+@--@@--@
+@--@@--@
+@--@@--@
+@--@@--@
+@@@@@@@@
+@@@@@@@@
+@--@@--@
+@--@@--@
+@--@@--@
+@--@@--@
+@@@@@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+----@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+@@@@----
+--------
+--------
+#
+# qqq
+--------
+--------
+--------
+-@@@@@@-
+-@----@-
+-@----@-
+-@----@-
+-@----@-
+-@----@-
+-@----@-
+-@----@-
+-@----@-
+-@@@@@@-
+--------
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@@@
+@------@
+@------@
+@------@
+@------@
+@------@
+@------@
+@------@
+@------@
+@------@
+@------@
+@@@@@@@@
+--------
+--------
+#
+# qqq
+--------
+--------
+-@--@--@
+--@--@--
+-@--@--@
+--@--@--
+-@--@--@
+--@--@--
+-@--@--@
+--@--@--
+-@--@--@
+--@--@--
+-@--@--@
+--@--@--
+--------
+--------
+#
+# qqq
+--------
+--------
+@--@--@-
+--@--@--
+@--@--@-
+--@--@--
+@--@--@-
+--@--@--
+@--@--@-
+--@--@--
+@--@--@-
+--@--@--
+@--@--@-
+--@--@--
+--------
+--------
+#
+# qqq
+--------
+--------
+@--@--@-
+-@--@--@
+@--@--@-
+-@--@--@
+@--@--@-
+-@--@--@
+@--@--@-
+-@--@--@
+@--@--@-
+-@--@--@
+@--@--@-
+-@--@--@
+--------
+--------
+#
+# qqq
+--------
+--------
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+--------
+--------
+#
+# qqq
+--------
+--------
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+-@-@-@-@
+@-@-@-@-
+--------
+--------
+#
+# qqq
+--------
+--------
+@-@@-@@-
+@@-@@-@@
+@-@@-@@-
+@@-@@-@@
+@-@@-@@-
+@@-@@-@@
+@-@@-@@-
+@@-@@-@@
+@-@@-@@-
+@@-@@-@@
+@-@@-@@-
+@@-@@-@@
+--------
+--------
+#
+# qqq
+--------
+--------
+-@@-@@-@
+@@-@@-@@
+-@@-@@-@
+@@-@@-@@
+-@@-@@-@
+@@-@@-@@
+-@@-@@-@
+@@-@@-@@
+-@@-@@-@
+@@-@@-@@
+-@@-@@-@
+@@-@@-@@
+--------
+--------
+#
+# qqq
+--------
+--------
+-@@-@@-@
+@-@@-@@-
+-@@-@@-@
+@-@@-@@-
+-@@-@@-@
+@-@@-@@-
+-@@-@@-@
+@-@@-@@-
+-@@-@@-@
+@-@@-@@-
+-@@-@@-@
+@-@@-@@-
+--------
+--------
+#
+# qqq
+--------
+--------
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+@@@@@@@@
+--------
+--------
+#
+# blank_map= 000000000000000000000000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# !_map= 101010101010101000001000
+--------
+--------
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+---@----
+--------
+--------
+--------
+#
+# "_map= 444444444400000000000000
+--------
+--------
+-@---@--
+-@---@--
+-@---@--
+-@---@--
+-@---@--
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# #_map= 4444FE4444444444FE444400
+--------
+--------
+-@---@--
+-@---@--
+@@@@@@@-
+-@---@--
+-@---@--
+-@---@--
+-@---@--
+-@---@--
+@@@@@@@-
+-@---@--
+-@---@--
+--------
+--------
+--------
+#
+# $_map= 7C929090907C121212927C00
+--------
+--------
+-@@@@@--
+@--@--@-
+@--@----
+@--@----
+@--@----
+-@@@@@--
+---@--@-
+---@--@-
+---@--@-
+@--@--@-
+-@@@@@--
+--------
+--------
+--------
+#
+# %_map= 609092640810204C92120C00
+--------
+--------
+-@@-----
+@--@----
+@--@--@-
+-@@--@--
+----@---
+---@----
+--@-----
+-@--@@--
+@--@--@-
+---@--@-
+----@@--
+--------
+--------
+--------
+#
+# &_map= 304888889070508A84847A00
+--------
+--------
+--@@----
+-@--@---
+@---@---
+@---@---
+@--@----
+-@@@----
+-@-@----
+@---@-@-
+@----@--
+@----@--
+-@@@@-@-
+--------
+--------
+--------
+#
+# '_map= 101010101000000000000000
+--------
+--------
+---@----
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# (_map= 102020404040404020201000
+--------
+--------
+---@----
+--@-----
+--@-----
+-@------
+-@------
+-@------
+-@------
+-@------
+--@-----
+--@-----
+---@----
+--------
+--------
+--------
+#
+# )_map= 100808040404040408081000
+--------
+--------
+---@----
+----@---
+----@---
+-----@--
+-----@--
+-----@--
+-----@--
+-----@--
+----@---
+----@---
+---@----
+--------
+--------
+--------
+#
+# *_map= 9292545438FE385454929200
+--------
+--------
+@--@--@-
+@--@--@-
+-@-@-@--
+-@-@-@--
+--@@@---
+@@@@@@@-
+--@@@---
+-@-@-@--
+-@-@-@--
+@--@--@-
+@--@--@-
+--------
+--------
+--------
+#
+# +_map= 0010101010FE101010100000
+--------
+--------
+--------
+---@----
+---@----
+---@----
+---@----
+@@@@@@@-
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+--------
+--------
+#
+# ,_map= 000000000000000808102000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+----@---
+----@---
+---@----
+--@-----
+--------
+--------
+--------
+#
+# -_map= 0000000000FE000000000000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@@@@@@@-
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# ._map= 000000000000001818000000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+---@@---
+---@@---
+--------
+--------
+--------
+--------
+--------
+#
+# /_map= 000002040810204080000000
+--------
+--------
+--------
+--------
+------@-
+-----@--
+----@---
+---@----
+--@-----
+-@------
+@-------
+--------
+--------
+--------
+--------
+--------
+#
+# 0_map= 384482828A92A28282443800
+--------
+--------
+--@@@---
+-@---@--
+@-----@-
+@-----@-
+@---@-@-
+@--@--@-
+@-@---@-
+@-----@-
+@-----@-
+-@---@--
+--@@@---
+--------
+--------
+--------
+#
+# 1_map= 103050101010101010103800
+--------
+--------
+---@----
+--@@----
+-@-@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+--@@@---
+--------
+--------
+--------
+#
+# 2_map= 7C820202027C80808080FE00
+--------
+--------
+-@@@@@--
+@-----@-
+------@-
+------@-
+------@-
+-@@@@@--
+@-------
+@-------
+@-------
+@-------
+@@@@@@@-
+--------
+--------
+--------
+#
+# 3_map= 7C820202027C020202827C00
+--------
+--------
+-@@@@@--
+@-----@-
+------@-
+------@-
+------@-
+-@@@@@--
+------@-
+------@-
+------@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# 4_map= 081828488888FE0808081C00
+--------
+--------
+----@---
+---@@---
+--@-@---
+-@--@---
+@---@---
+@---@---
+@@@@@@@-
+----@---
+----@---
+----@---
+---@@@--
+--------
+--------
+--------
+#
+# 5_map= FE808080807C020202827C00
+--------
+--------
+@@@@@@@-
+@-------
+@-------
+@-------
+@-------
+-@@@@@--
+------@-
+------@-
+------@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# 6_map= 7E808080807C828282827C00
+--------
+--------
+-@@@@@@-
+@-------
+@-------
+@-------
+@-------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# 7_map= FE0202040810101010103800
+--------
+--------
+@@@@@@@-
+------@-
+------@-
+-----@--
+----@---
+---@----
+---@----
+---@----
+---@----
+---@----
+--@@@---
+--------
+--------
+--------
+#
+# 8_map= 7C828282827C828282827C00
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# 9_map= 7C828282827C02020202FC00
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+------@-
+------@-
+------@-
+------@-
+@@@@@@--
+--------
+--------
+--------
+#
+# :_map= 000018180000001818000000
+--------
+--------
+--------
+--------
+---@@---
+---@@---
+--------
+--------
+--------
+---@@---
+---@@---
+--------
+--------
+--------
+--------
+--------
+#
+# ;_map= 000018180000000808102000
+--------
+--------
+--------
+--------
+---@@---
+---@@---
+--------
+--------
+--------
+----@---
+----@---
+---@----
+--@-----
+--------
+--------
+--------
+#
+# <_map= 0000020C30C0300C02000000
+--------
+--------
+--------
+--------
+------@-
+----@@--
+--@@----
+@@------
+--@@----
+----@@--
+------@-
+--------
+--------
+--------
+--------
+--------
+#
+# =_map= 0000FE0000000000FE000000
+--------
+--------
+--------
+--------
+@@@@@@@-
+--------
+--------
+--------
+--------
+--------
+@@@@@@@-
+--------
+--------
+--------
+--------
+--------
+#
+# >_map= 000080601806186080000000
+--------
+--------
+--------
+--------
+@-------
+-@@-----
+---@@---
+-----@@-
+---@@---
+-@@-----
+@-------
+--------
+--------
+--------
+--------
+--------
+#
+# ?_map= 384482820204081010001000
+--------
+--------
+--@@@---
+-@---@--
+@-----@-
+@-----@-
+------@-
+-----@--
+----@---
+---@----
+---@----
+--------
+---@----
+--------
+--------
+--------
+#
+# @_map= 384482829EA2A29E80423C00
+--------
+--------
+--@@@---
+-@---@--
+@-----@-
+@-----@-
+@--@@@@-
+@-@---@-
+@-@---@-
+@--@@@@-
+@-------
+-@----@-
+--@@@@--
+--------
+--------
+--------
+#
+# A_map= 10282828447C444482828200
+--------
+--------
+---@----
+--@-@---
+--@-@---
+--@-@---
+-@---@--
+-@@@@@--
+-@---@--
+-@---@--
+@-----@-
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# B_map= FC82828284F884828282FC00
+--------
+--------
+@@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@----@--
+@@@@@---
+@----@--
+@-----@-
+@-----@-
+@-----@-
+@@@@@@--
+--------
+--------
+--------
+#
+# C_map= 7C8280808080808080827C00
+--------
+--------
+-@@@@@--
+@-----@-
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# D_map= F0888484828282828484F800
+--------
+--------
+@@@@----
+@---@---
+@----@--
+@----@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@----@--
+@----@--
+@@@@@---
+--------
+--------
+--------
+#
+# E_map= FE80808080FC80808080FE00
+--------
+--------
+@@@@@@@-
+@-------
+@-------
+@-------
+@-------
+@@@@@@--
+@-------
+@-------
+@-------
+@-------
+@@@@@@@-
+--------
+--------
+--------
+#
+# F_map= FE80808080FC808080808000
+--------
+--------
+@@@@@@@-
+@-------
+@-------
+@-------
+@-------
+@@@@@@--
+@-------
+@-------
+@-------
+@-------
+@-------
+--------
+--------
+--------
+#
+# G_map= 7C828080809E828282827C00
+--------
+--------
+-@@@@@--
+@-----@-
+@-------
+@-------
+@-------
+@--@@@@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# H_map= 82828282827C828282828200
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# I_map= 381010101010101010103800
+--------
+--------
+--@@@---
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+--@@@---
+--------
+--------
+--------
+#
+# J_map= 1C0808080808080888887000
+--------
+--------
+---@@@--
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+@---@---
+@---@---
+-@@@----
+--------
+--------
+--------
+#
+# K_map= 8282838388F0888484828200
+--------
+--------
+@-----@-
+@-----@-
+@----@--
+@----@--
+@---@---
+@@@@----
+@---@---
+@----@--
+@----@--
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# L_map= 80808080808080808080FE00
+--------
+--------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+@@@@@@@-
+--------
+--------
+--------
+#
+# M_map= 82C6AAAAAA92928282828200
+--------
+--------
+@-----@-
+@@---@@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@--@--@-
+@--@--@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# N_map= 82C2A2A2A2928A8A8A868200
+--------
+--------
+@-----@-
+@@----@-
+@-@---@-
+@-@---@-
+@-@---@-
+@--@--@-
+@---@-@-
+@---@-@-
+@---@-@-
+@----@@-
+@-----@-
+--------
+--------
+--------
+#
+# O_map= 7C8282828282828282827C00
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# P_map= 7C82828282FC808080808000
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@@@@@@--
+@-------
+@-------
+@-------
+@-------
+@-------
+--------
+--------
+--------
+#
+# Q_map= 7C828282828282B28A847A00
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-@@--@-
+@---@-@-
+@----@--
+-@@@@-@-
+--------
+--------
+--------
+#
+# R_map= 7C82828282FCA09088848200
+--------
+--------
+-@@@@@--
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@@@@@@--
+@-@-----
+@--@----
+@---@---
+@----@--
+@-----@-
+--------
+--------
+--------
+#
+# S_map= 7C828080807C020202827C00
+--------
+--------
+-@@@@@--
+@-----@-
+@-------
+@-------
+@-------
+-@@@@@--
+------@-
+------@-
+------@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# T_map= FE9210101010101010101000
+--------
+--------
+@@@@@@@-
+@--@--@-
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+--------
+#
+# U_map= 828282828282828282827C00
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# V_map= 828282444444282828191900
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+-@---@--
+-@---@--
+-@---@--
+--@-@---
+--@-@---
+--@-@---
+---@----
+---@----
+--------
+--------
+--------
+#
+# W_map= 828282829292AAAAAAC68200
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@--@--@-
+@--@--@-
+@-@-@-@-
+@-@-@-@-
+@-@-@-@-
+@@---@@-
+@-----@-
+--------
+--------
+--------
+#
+# X_map= 828244442838284444828200
+--------
+--------
+@-----@-
+@-----@-
+-@---@--
+-@---@--
+--@-@---
+--@@@---
+--@-@---
+-@---@--
+-@---@--
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# Y_map= 828244442828101010101000
+--------
+--------
+@-----@-
+@-----@-
+-@---@--
+-@---@--
+--@-@---
+--@-@---
+---@----
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+--------
+#
+# Z_map= FE820404083820404082FE00
+--------
+--------
+@@@@@@@-
+@-----@-
+-----@--
+-----@--
+----@---
+--@@@---
+--@-----
+-@------
+-@------
+@-----@-
+@@@@@@@-
+--------
+--------
+--------
+#
+# [_map= 382020202020202020203800
+--------
+--------
+--@@@---
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@@@---
+--------
+--------
+--------
+#
+# _map= 000080402010080402000000
+--------
+--------
+--------
+--------
+@-------
+-@------
+--@-----
+---@----
+----@---
+-----@--
+------@-
+--------
+--------
+--------
+--------
+--------
+#
+# ]_map= 380808080808080808083800
+--------
+--------
+--@@@---
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+----@---
+--@@@---
+--------
+--------
+--------
+#
+# ^_map= 001028448200000000000000
+--------
+--------
+--------
+---@----
+--@-@---
+-@---@--
+@-----@-
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# __map= 00000000000000000000FE00
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@@@@@@@-
+--------
+--------
+--------
+#
+# `_map= 202010100800000000000000
+--------
+--------
+--@-----
+--@-----
+---@----
+---@----
+----@---
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# a_map= 000000003AC6828282C63A00
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@-@-
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@@---@@-
+--@@@-@-
+--------
+--------
+--------
+#
+# b_map= 80808080B8C6828282C6B800
+--------
+--------
+@-------
+@-------
+@-------
+@-------
+@-@@@---
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@@---@@-
+@-@@@---
+--------
+--------
+--------
+#
+# c_map= 000000003CC2808080C23C00
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@@--
+@@----@-
+@-------
+@-------
+@-------
+@@----@-
+--@@@@--
+--------
+--------
+--------
+#
+# d_map= 020202023AC6828282C63A00
+--------
+--------
+------@-
+------@-
+------@-
+------@-
+--@@@-@-
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@@---@@-
+--@@@-@-
+--------
+--------
+--------
+#
+# e_map= 0000000038C682FC80C63800
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@---
+@@---@@-
+@-----@-
+@@@@@@--
+@-------
+@@---@@-
+--@@@---
+--------
+--------
+--------
+#
+# f_map= 3C428080F880808080808000
+--------
+--------
+--@@@@--
+-@----@-
+@-------
+@-------
+@@@@@---
+@-------
+@-------
+@-------
+@-------
+@-------
+@-------
+--------
+--------
+--------
+#
+# g_map= 0000000038C6827E02C63800
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@---
+@@---@@-
+@-----@-
+-@@@@@@-
+------@-
+@@---@@-
+--@@@---
+--------
+--------
+--------
+#
+# h_map= 80808080B8C6828282828200
+--------
+--------
+@-------
+@-------
+@-------
+@-------
+@-@@@---
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# i_map= 001000001010101010120C00
+--------
+--------
+--------
+---@----
+--------
+--------
+---@----
+---@----
+---@----
+---@----
+---@----
+---@--@-
+----@@--
+--------
+--------
+--------
+#
+# j_map= 000400000404040404887000
+--------
+--------
+--------
+-----@--
+--------
+--------
+-----@--
+-----@--
+-----@--
+-----@--
+-----@--
+@---@---
+-@@@----
+--------
+--------
+--------
+#
+# k_map= 0080808086B8C0B088848200
+--------
+--------
+--------
+@-------
+@-------
+@-------
+@----@@-
+@-@@@---
+@@------
+@-@@----
+@---@---
+@----@--
+@-----@-
+--------
+--------
+--------
+#
+# l_map= 202020202020202020100E00
+--------
+--------
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+--@-----
+---@----
+----@@@-
+--------
+--------
+--------
+#
+# m_map= 00000000ACD2929292929200
+--------
+--------
+--------
+--------
+--------
+--------
+@-@-@@--
+@@-@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+--------
+--------
+--------
+#
+# n_map= 00000000B8C6828282828200
+--------
+--------
+--------
+--------
+--------
+--------
+@-@@@---
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+--------
+--------
+--------
+#
+# o_map= 0000000038C6828282C63800
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@---
+@@---@@-
+@-----@-
+@-----@-
+@-----@-
+@@---@@-
+--@@@---
+--------
+--------
+--------
+#
+# p_map= 00000000B8C682FC80808000
+--------
+--------
+--------
+--------
+--------
+--------
+@-@@@---
+@@---@@-
+@-----@-
+@@@@@@--
+@-------
+@-------
+@-------
+--------
+--------
+--------
+#
+# q_map= 000000003AC6827E02020200
+--------
+--------
+--------
+--------
+--------
+--------
+--@@@-@-
+@@---@@-
+@-----@-
+-@@@@@@-
+------@-
+------@-
+------@-
+--------
+--------
+--------
+#
+# r_map= 00000000B8C6808080808000
+--------
+--------
+--------
+--------
+--------
+--------
+@-@@@---
+@@---@@-
+@-------
+@-------
+@-------
+@-------
+@-------
+--------
+--------
+--------
+#
+# s_map= 000000007C82807E02827C00
+--------
+--------
+--------
+--------
+--------
+--------
+-@@@@@--
+@-----@-
+@-------
+-@@@@@@-
+------@-
+@-----@-
+-@@@@@--
+--------
+--------
+--------
+#
+# t_map= 80808080F880808080423C00
+--------
+--------
+@-------
+@-------
+@-------
+@-------
+@@@@@---
+@-------
+@-------
+@-------
+@-------
+-@----@-
+--@@@@--
+--------
+--------
+--------
+#
+# u_map= 000000008282828282C63A00
+--------
+--------
+--------
+--------
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+@@---@@-
+--@@@-@-
+--------
+--------
+--------
+#
+# v_map= 000000008282828244281000
+--------
+--------
+--------
+--------
+--------
+--------
+@-----@-
+@-----@-
+@-----@-
+@-----@-
+-@---@--
+--@-@---
+---@----
+--------
+--------
+--------
+#
+# w_map= 000000008292929292926C00
+--------
+--------
+--------
+--------
+--------
+--------
+@-----@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+@--@--@-
+-@@-@@--
+--------
+--------
+--------
+#
+# x_map= 000000000082442838448200
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@-----@-
+-@---@--
+--@-@---
+--@@@---
+-@---@--
+@-----@-
+--------
+--------
+--------
+#
+# y_map= 000000000082423C08083000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@-----@-
+-@----@-
+--@@@@--
+----@---
+----@---
+--@@----
+--------
+--------
+--------
+#
+# z_map= 0000000000FE04083040FE00
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+@@@@@@@-
+-----@--
+----@---
+--@@----
+-@------
+@@@@@@@-
+--------
+--------
+--------
+#
+# {_map= 102020404080404020201000
+--------
+--------
+---@----
+--@-----
+--@-----
+--@-----
+-@------
+@-------
+-@------
+--@-----
+--@-----
+--@-----
+---@----
+--------
+--------
+--------
+#
+# |_map= 101010101010101010101000
+--------
+--------
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+---@----
+--------
+--------
+--------
+#
+# }_map= 100808040402040408081000
+--------
+--------
+---@----
+----@---
+----@---
+----@---
+-----@--
+------@-
+-----@--
+----@---
+----@---
+----@---
+---@----
+--------
+--------
+--------
+#
+# ~_map= 0000000060920C0000000000
+--------
+--------
+--------
+--------
+--------
+--------
+-@@-----
+@--@--@-
+----@@--
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+#
+# No-Break Space 000000000000000000000000
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
+--------
Index: tags/yavga-0.8.2/trunk/charmaps/charmaps_ROM.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/charmaps/charmaps_ROM.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/charmaps/charmaps_ROM.vhd (revision 14)
@@ -0,0 +1,124 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+-- Uncomment the following lines to use the declarations that are
+-- provided for instantiating Xilinx primitive components.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity charmaps_ROM is
+ port (
+ -- i_DI : in std_logic_vector(7 downto 0); -- 8-bit Data Input
+ -- i_DIP : in std_logic; -- 1-bit parity Input
+ -- i_EN : in std_logic; -- RAM Enable Input
+ -- i_WE : in std_logic; -- Write Enable Input
+ -- i_SSR : in std_logic; -- Synchronous Set/Reset Input
+ i_clock : in std_logic; -- Clock
+ i_ADDR : in std_logic_vector(10 downto 0); -- 11-bit Address Input
+ o_DO : out std_logic_vector(7 downto 0) -- 8-bit Data Output
+ -- o_DOP : out std_logic -- 1-bit parity Output
+ );
+end charmaps_ROM;
+
+architecture rtl of charmaps_ROM is
+
+begin
+ -- charmaps
+ -- |------| |-----------------|
+ -- | P | | D D D D D D D D |
+ -- |======| |=================|
+ -- | 8 | | 7 6 5 4 3 2 1 0 |
+ -- |======| |=================|
+ -- | Free | | Row char pixels |
+ -- |------| |-----------------|
+
+ Inst_charmaps_rom : RAMB16_S9
+ generic map (
+ write_mode => "NO_CHANGE", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT => B"000000000", -- Value of output RAM registers at startup
+ SRVAL => B"000000000", -- Ouput value upon SSR assertion
+ --
+ -- START REPLACE HERE THE OUTPUT FROM convert.sh
+ -- INIT_00 => ...
+ -- ...
+ -- ...
+ -- ...
+ -- INIT_3F => ...
+ -- STOP REPLACE
+ --
+ --
+ INITP_00 => X"0000000000000000000000000000000000000000000000000000000000000000", -- free
+ INITP_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ DI => (others => '1'), -- 8-bit Data Input
+ DIP => (others => '1'), -- 1-bit parity Input
+ EN => '1', -- RAM Enable Input
+ WE => '0', -- Write Enable Input
+ SSR => '0', -- Synchronous Set/Reset Input
+ CLK => i_clock, -- Clock
+ ADDR => i_ADDR, -- 11-bit Address Input
+ DO => o_DO, -- 8-bit Data Output
+ DOP => open -- 1-bit parity Output
+ );
+
+
+end rtl;
Index: tags/yavga-0.8.2/trunk/LICENSE.txt
===================================================================
--- tags/yavga-0.8.2/trunk/LICENSE.txt (nonexistent)
+++ tags/yavga-0.8.2/trunk/LICENSE.txt (revision 14)
@@ -0,0 +1,31 @@
+Copyright (c) 2009, Sandro Amato
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+ * Neither the name of SANDRO AMATO nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
Index: tags/yavga-0.8.2/trunk/README.txt
===================================================================
--- tags/yavga-0.8.2/trunk/README.txt (nonexistent)
+++ tags/yavga-0.8.2/trunk/README.txt (revision 14)
@@ -0,0 +1,30 @@
+########################################################
+#### This file is part of the yaVGA project ####
+#### http://www.opencores.org/?do=project&who=yavga ####
+########################################################
+
+This core is a semi semigraphic vga controller.
+
+It generate the signal to drive a vga monitor with an 800x600 resolution
+and 72Hz vertical refresh rate
+
+It display monochromatic chars on the screen from a ram memory
+
+It can display a color "waveform" (a sort of function) from another ram memory
+
+It can display a color grid and "cross cursor"
+
+vhdl
+ this directory contains the hdl and constraint files
+
+charmaps
+ this directory contains some scripts useful to change the char maps
+
+LICENSE.txt
+ the license
+
+README.txt
+ this file
+
+xilinx
+ this directory contain xilinx ISE generated files
Index: tags/yavga-0.8.2/trunk/vhdl/chars_RAM.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/chars_RAM.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/chars_RAM.vhd (revision 14)
@@ -0,0 +1,484 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+-- Uncomment the following lines to use the declarations that are
+-- provided for instantiating Xilinx primitive components.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity chars_RAM is
+ port (
+ i_clock_rw : in std_logic; -- Write Clock
+ i_EN_rw : in std_logic; -- Write RAM Enable Input
+ i_WE_rw : in std_logic_vector(3 downto 0); -- Write Enable Input
+ i_ADDR_rw : in std_logic_vector(10 downto 0); -- Write 11-bit Address Input
+ i_DI_rw : in std_logic_vector(31 downto 0); -- Write 32-bit Data Input
+ o_DI_rw : out std_logic_vector(31 downto 0); -- Write 32-bit Data Input
+
+ i_SSR : in std_logic; -- Synchronous Set/Reset Input
+
+ i_clock_r : in std_logic; -- Read Clock
+ i_ADDR_r : in std_logic_vector(12 downto 0); -- Read 13-bit Address Input
+ o_DO_r : out std_logic_vector(7 downto 0) -- Read 8-bit Data Output
+ );
+end chars_RAM;
+
+architecture rtl of chars_RAM is
+ signal s0_DO_r : std_logic_vector(7 downto 0);
+ signal s1_DO_r : std_logic_vector(7 downto 0);
+ signal s2_DO_r : std_logic_vector(7 downto 0);
+ signal s3_DO_r : std_logic_vector(7 downto 0);
+
+begin
+
+ u0_chars_ram : RAMB16_S9_S9
+ generic map (
+ WRITE_MODE_A => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_A => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_A => B"000000000", -- Ouput value upon SSR assertion
+ WRITE_MODE_B => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_B => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_B => B"000000000", -- Ouput value upon SSR assertion
+ --
+ INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ -- read
+ DIA => (others => '0'), -- 2-bit Data Input
+ DIPA => (others => '0'),
+ ENA => '1', -- RAM Enable Input
+ WEA => '0', -- Write Enable Input
+ SSRA => i_SSR, -- Synchronous Set/Reset Input
+ CLKA => i_clock_r, -- Clock
+ ADDRA => i_ADDR_r(12 downto 2), -- 11-bit Address Input
+ DOA => s0_DO_r, -- 8-bit Data Output
+ DOPA => open,
+
+ -- read/write
+ DIB => i_DI_rw(7 downto 0), -- 8-bit Data Input
+ DIPB => (others => '0'),
+ ENB => i_EN_rw, -- RAM Enable Input
+ WEB => i_WE_rw(0), -- Write Enable Input
+ SSRB => i_SSR, -- Synchronous Set/Reset Input
+ CLKB => i_clock_rw, -- Clock
+ ADDRB => i_ADDR_rw, -- 11-bit Address Input
+ DOB => o_DI_rw(7 downto 0), -- 8-bit Data Input
+ DOPB => open
+ );
+
+ u1_chars_ram : RAMB16_S9_S9
+ generic map (
+ WRITE_MODE_A => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_A => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_A => B"000000000", -- Ouput value upon SSR assertion
+ WRITE_MODE_B => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_B => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_B => B"000000000", -- Ouput value upon SSR assertion
+ --
+ INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ -- read
+ DIA => (others => '0'), -- 2-bit Data Input
+ DIPA => (others => '0'),
+ ENA => '1', -- RAM Enable Input
+ WEA => '0', -- Write Enable Input
+ SSRA => i_SSR, -- Synchronous Set/Reset Input
+ CLKA => i_clock_r, -- Clock
+ ADDRA => i_ADDR_r(12 downto 2), -- 11-bit Address Input
+ DOA => s1_DO_r, -- 8-bit Data Output
+ DOPA => open,
+
+ -- read/write
+ DIB => i_DI_rw(15 downto 8), -- 8-bit Data Input
+ DIPB => (others => '0'),
+ ENB => i_EN_rw, -- RAM Enable Input
+ WEB => i_WE_rw(1), -- Write Enable Input
+ SSRB => i_SSR, -- Synchronous Set/Reset Input
+ CLKB => i_clock_rw, -- Clock
+ ADDRB => i_ADDR_rw, -- 11-bit Address Input
+ DOB => o_DI_rw(15 downto 8), -- 8-bit Data Input
+ DOPB => open
+ );
+
+ u2_chars_ram : RAMB16_S9_S9
+ generic map (
+ WRITE_MODE_A => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_A => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_A => B"000000000", -- Ouput value upon SSR assertion
+ WRITE_MODE_B => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_B => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_B => B"000000000", -- Ouput value upon SSR assertion
+ --
+ INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ -- read
+ DIA => (others => '0'), -- 2-bit Data Input
+ DIPA => (others => '0'),
+ ENA => '1', -- RAM Enable Input
+ WEA => '0', -- Write Enable Input
+ SSRA => i_SSR, -- Synchronous Set/Reset Input
+ CLKA => i_clock_r, -- Clock
+ ADDRA => i_ADDR_r(12 downto 2), -- 11-bit Address Input
+ DOA => s2_DO_r, -- 8-bit Data Output
+ DOPA => open,
+
+ -- read/write
+ DIB => i_DI_rw(23 downto 16), -- 8-bit Data Input
+ DIPB => (others => '0'),
+ ENB => i_EN_rw, -- RAM Enable Input
+ WEB => i_WE_rw(2), -- Write Enable Input
+ SSRB => i_SSR, -- Synchronous Set/Reset Input
+ CLKB => i_clock_rw, -- Clock
+ ADDRB => i_ADDR_rw, -- 11-bit Address Input
+ DOB => o_DI_rw(23 downto 16), -- 8-bit Data Input
+ DOPB => open
+ );
+
+ u3_chars_ram : RAMB16_S9_S9
+ generic map (
+ WRITE_MODE_A => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_A => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_A => B"000000000", -- Ouput value upon SSR assertion
+ WRITE_MODE_B => "WRITE_FIRST", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT_B => B"000000000", -- Value of output RAM registers at startup
+ SRVAL_B => B"000000000", -- Ouput value upon SSR assertion
+ --
+ INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ -- read
+ DIA => (others => '0'), -- 2-bit Data Input
+ DIPA => (others => '0'),
+ ENA => '1', -- RAM Enable Input
+ WEA => '0', -- Write Enable Input
+ SSRA => i_SSR, -- Synchronous Set/Reset Input
+ CLKA => i_clock_r, -- Clock
+ ADDRA => i_ADDR_r(12 downto 2), -- 11-bit Address Input
+ DOA => s3_DO_r, -- 8-bit Data Output
+ DOPA => open,
+
+ -- read/write
+ DIB => i_DI_rw(31 downto 24), -- 8-bit Data Input
+ DIPB => (others => '0'),
+ ENB => i_EN_rw, -- RAM Enable Input
+ WEB => i_WE_rw(3), -- Write Enable Input
+ SSRB => i_SSR, -- Synchronous Set/Reset Input
+ CLKB => i_clock_rw, -- Clock
+ ADDRB => i_ADDR_rw, -- 11-bit Address Input
+ DOB => o_DI_rw(31 downto 24), -- 8-bit Data Input
+ DOPB => open
+ );
+
+ o_DO_r <= s0_DO_r when i_ADDR_r(1 downto 0) = "11" else
+ s1_DO_r when i_ADDR_r(1 downto 0) = "10" else
+ s2_DO_r when i_ADDR_r(1 downto 0) = "01" else
+ s3_DO_r when i_ADDR_r(1 downto 0) = "00" else
+ (others => 'X');
+
+end rtl;
Index: tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.vhd (revision 14)
@@ -0,0 +1,192 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity s3e_starter_1600k is
+ port (i_clk : in std_logic;
+ o_hsync : out std_logic;
+ o_vsync : out std_logic;
+ o_r : out std_logic;
+ o_g : out std_logic;
+ o_b : out std_logic);
+end s3e_starter_1600k;
+
+architecture Behavioral of s3e_starter_1600k is
+
+ component vga_ctrl
+ port(
+ i_clk : in std_logic;
+ i_reset : in std_logic;
+ i_background : in std_logic;
+ i_cursor_color : in std_logic_vector(2 downto 0);
+ i_cursor_x : in std_logic_vector(10 downto 0);
+ i_cursor_y : in std_logic_vector(9 downto 0);
+ i_h_sync_en : in std_logic;
+ i_v_sync_en : in std_logic;
+ i_chr_addr : in std_logic_vector(10 downto 0);
+ i_chr_data : in std_logic_vector(31 downto 0);
+ i_chr_clk : in std_logic;
+ i_chr_en : in std_logic;
+ i_chr_we : in std_logic_vector(3 downto 0);
+ i_chr_rst : in std_logic;
+ i_wav_d : in std_logic_vector(15 downto 0);
+ i_wav_we : in std_logic;
+ i_wav_addr : in std_logic_vector(9 downto 0);
+ o_h_sync : out std_logic;
+ o_v_sync : out std_logic;
+ o_r : out std_logic;
+ o_g : out std_logic;
+ o_b : out std_logic;
+ o_chr_data : out std_logic_vector(31 downto 0)
+ );
+ end component;
+
+ signal s_hsync : std_logic;
+ signal s_vsync : std_logic;
+ signal s_r : std_logic;
+ signal s_g : std_logic;
+ signal s_b : std_logic;
+
+ signal s_vsync_count : std_logic_vector(7 downto 0) := (others => '0');
+ signal s_vsync1 : std_logic;
+
+ signal s_chr_addr : std_logic_vector(10 downto 0) := (others => '0');
+ signal s_rnd : std_logic_vector(31 downto 0) := (others => '0');
+ signal s_chr_we : std_logic_vector(3 downto 0);
+
+ attribute U_SET : string;
+ attribute U_SET of "u1_vga_ctrl" : label is "u1_vga_ctrl_uset";
+
+begin
+ o_hsync <= s_hsync;
+ o_vsync <= s_vsync;
+ o_r <= s_r;
+ o_g <= s_g;
+ o_b <= s_b;
+
+ u1_vga_ctrl : vga_ctrl port map(
+ i_clk => i_clk,
+ i_reset => '0',
+ i_background => '0',
+ i_cursor_color => "001",
+ i_cursor_x => "00101000000",
+ i_cursor_y => "0011000000",
+ o_h_sync => s_hsync,
+ o_v_sync => s_vsync,
+ i_h_sync_en => '1',
+ i_v_sync_en => '1',
+ o_r => s_r,
+ o_g => s_g,
+ o_b => s_b,
+ i_chr_addr => s_chr_addr, --B"000_0000_0000",
+ i_chr_data => s_rnd, --X"00000000",
+ o_chr_data => open,
+ i_chr_clk => i_clk,
+ i_chr_en => '1',
+ i_chr_we => s_chr_we,
+ i_chr_rst => '0',
+ i_wav_d => X"0000", --s_rnd(15 downto 0), --
+ i_wav_we => '0', --s_chr_we(0), --
+ i_wav_addr => B"00_0000_0000" --s_chr_addr(9 downto 0) --
+ );
+
+ p_write_chars : process(i_clk)
+ begin
+ if rising_edge(i_clk) then
+ -- during the sync time in order to avoid flickering
+ -- and each 128 vsync in order to stop for a while
+ -- will write random chars...
+ if s_vsync_count(7) = '1' and (s_hsync = '0' or s_vsync = '0') then
+ -- generate a pseudo random 32 bit number
+ s_rnd <= s_rnd(30 downto 0) & (s_rnd(31) xnor s_rnd(21) xnor s_rnd(1) xnor s_rnd(0));
+ -- increment the address and write enable...
+ s_chr_addr <= s_chr_addr + 1;
+ s_chr_we <= "1111";
+ else
+ s_chr_addr <= s_chr_addr;
+ s_chr_we <= "0000";
+ s_rnd <= s_rnd;
+ end if;
+ end if;
+ end process;
+
+-- p_rnd_bit : process(i_clk)
+-- variable v_rnd_fb : std_logic;
+-- variable v_rnd : std_logic_vector(31 downto 0);
+-- begin
+-- if rising_edge(i_clk) then
+-- s_rnd_bit <= v_rnd_fb;
+-- v_rnd_fb := v_rnd(31) xnor v_rnd(21) xnor v_rnd(1) xnor v_rnd(0);
+-- v_rnd := v_rnd(30 downto 0) & v_rnd_fb;
+-- end if;
+-- end process;
+
+ p_vsync_count : process(i_clk)
+ begin
+ if rising_edge(i_clk) then
+ s_vsync1 <= s_vsync;
+ if (not s_vsync and s_vsync1) = '1' then -- pulse on vsync falling
+ s_vsync_count <= s_vsync_count + 1;
+ end if;
+ end if;
+ end process;
+
+
+
+end Behavioral;
+
Index: tags/yavga-0.8.2/trunk/vhdl/vga_ctrl.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/vga_ctrl.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/vga_ctrl.vhd (revision 14)
@@ -0,0 +1,483 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity vga_ctrl is
+-- generic (
+-- g_H_SIZE : integer := 800; -- horizontal size of input image, MAX 800
+-- g_V_SIZE : integer := 600 -- vertical size of input image, MAX 600
+-- );
+
+ port (
+ i_clk : in std_logic; -- must be 50MHz
+ i_reset : in std_logic;
+
+ -- background color (b/w)
+ i_background : in std_logic;
+
+ -- cross cursor
+ i_cursor_color : in std_logic_vector(2 downto 0);
+ i_cursor_x : in std_logic_vector(10 downto 0);
+ i_cursor_y : in std_logic_vector(9 downto 0);
+
+ -- vga horizontal and vertical sync
+ o_h_sync : out std_logic;
+ o_v_sync : out std_logic;
+
+ -- horizontal and vertical sync enable (allow power saving on ?VESA? Monitors)
+ i_h_sync_en : in std_logic;
+ i_v_sync_en : in std_logic;
+
+ -- vga R G B signals (1 bit for each component (8 colors))
+ o_r : out std_logic;
+ o_g : out std_logic;
+ o_b : out std_logic;
+
+ -- chars RAM memory
+ i_chr_addr : in std_logic_vector(10 downto 0);
+ i_chr_data : in std_logic_vector(31 downto 0);
+ o_chr_data : out std_logic_vector(31 downto 0);
+ i_chr_clk : in std_logic;
+ i_chr_en : in std_logic;
+ i_chr_we : in std_logic_vector(3 downto 0);
+ i_chr_rst : in std_logic;
+
+ -- waveform RAM memory
+ i_wav_d : in std_logic_vector(15 downto 0);
+ i_wav_we : in std_logic;
+ --i_clockA : IN std_logic;
+ i_wav_addr : in std_logic_vector(9 downto 0) --;
+ --o_DOA : OUT std_logic_vector(15 downto 0)
+ );
+end vga_ctrl;
+
+-- vga timings used
+-- 0 TOT
+-- ...-----------------|=============== PERIOD ==============|--...
+-- | |
+-- ...__ ___________________________ _______...
+-- \_________/ \_________/
+--
+-- | | | | | | |
+-- | | | | | | |
+-- ...--|----S----|-F--|=======D=======|==B===|====S====|=F==|--...
+-- Y R I A Y R
+-- N O S C N O
+-- C N P K C N
+-- T T L P T T
+-- I P T O I P
+-- M O I R M O
+-- E R M C E R
+-- C E H C
+-- H H
+-- | | | | | | |
+-- ...|---------|----|===============|======|=========|====|--...
+-- HPx: 120 56 800 63 120 56 px (h PERIOD = 1039 px)
+-- VLn: 6 37 600 23 6 37 ln (v PERIOD = 666 ln)
+--
+-- and with 50Mhz dot clock (20ns dot time):
+-- | | | | | | |
+-- ...|---------|----|===============|======|=========|====|--...
+--Htime: 2.4 1.12 16 1.26 2.4 1.12 usec (h PERIOD = 20.78 usec) Hfreq 48123.195 Hz
+--Vtime: 124.68 768.86 12468 477.94 124.68 768.68 usec (v PERIOD = 13839.48 usec) Vfreq 72.257 Hz
+
+architecture rtl of vga_ctrl is
+
+ constant c_GRID_SIZE : std_logic_vector(6 downto 0) := "1111111";
+ constant c_GRID_BIT : integer := 6;
+
+ --
+ -- horizontal timing signals (in pixels count )
+ constant c_H_DISPLAYpx : integer := 800;
+ constant c_H_BACKPORCHpx : integer := 63; -- also 60;
+ constant c_H_SYNCTIMEpx : integer := 120;
+ constant c_H_FRONTPORCHpx : integer := 56; --also 60;
+ constant c_H_PERIODpx : integer := c_H_DISPLAYpx +
+ c_H_BACKPORCHpx +
+ c_H_SYNCTIMEpx +
+ c_H_FRONTPORCHpx;
+
+ --
+ -- vertical timing signals (in lines count)
+ constant c_V_DISPLAYln : integer := 600;
+ constant c_V_BACKPORCHln : integer := 23;
+ constant c_V_SYNCTIMEln : integer := 6;
+ constant c_V_FRONTPORCHln : integer := 37;
+ constant c_V_PERIODln : integer := c_V_DISPLAYln +
+ c_V_BACKPORCHln +
+ c_V_SYNCTIMEln +
+ c_V_FRONTPORCHln;
+
+
+-- constant c_CHARS_WIDTH: std_logic_vector(2 downto 0) := "111";
+-- constant c_CHARS_HEIGHT: std_logic_vector(3 downto 0) := "1111";
+-- constant c_CHARS_COLS: std_logic_vector(6 downto 0) := "1100011";
+-- constant c_CHARS_ROWS: std_logic_vector(5 downto 0) := "100100";
+
+ --
+ signal s_h_count : std_logic_vector(10 downto 0); -- horizontal pixel counter
+ signal s_v_count : std_logic_vector(9 downto 0); -- verticalal line counter
+ signal s_h_sync : std_logic; -- horizontal sync trigger
+ signal s_h_sync_pulse : std_logic; -- 1-clock pulse on sync trigger
+
+ --
+ -- signals for the charmaps Block RAM component...
+ signal s_charmaps_ADDR : std_logic_vector (10 downto 0);
+ signal s_charmaps_DO : std_logic_vector (7 downto 0);
+ signal s_charmaps_DO_l : std_logic_vector (7 downto 0);
+
+ --
+ -- to manage the outside display region's blanking
+ signal s_display : std_logic;
+ --
+
+ --
+ -- to manage the cursor position
+ signal s_cursor_x : std_logic_vector(10 downto 0);
+ signal s_cursor_y : std_logic_vector(9 downto 0);
+
+ --
+ -- to manage the chars ram address and th ram ascii
+ signal s_chars_ram_addr : std_logic_vector(12 downto 0);
+ signal s_chars_ascii : std_logic_vector(7 downto 0);
+
+ --
+ signal s_waveform_ADDRB : std_logic_vector (9 downto 0);
+ signal s_waveform_DOB : std_logic_vector (15 downto 0);
+
+
+ -- charmaps
+ -- |------| |-----------------|
+ -- | P | | D D D D D D D D |
+ -- |======| |=================|
+ -- | 8 | | 7 6 5 4 3 2 1 0 |
+ -- |======| |=================|
+ -- | Free | | Row char pixels |
+ -- |------| |-----------------|
+ --
+ component charmaps_rom
+ port(
+ i_clock : in std_logic;
+ i_ADDR : in std_logic_vector(10 downto 0); -- 16 x ascii code (W=8 x H=16 pixel)
+ o_DO : out std_logic_vector(7 downto 0) -- 8 bit char pixel
+ );
+ end component;
+
+
+
+ -- wave form or video-line memory
+ -- |------| |-------------------------------------------|
+ -- | P P | | D D D | D D D | D D D D D D D D D D |
+ -- |======| |===========================================|
+ -- |17 16 | | 15 14 13 | 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
+ -- |======| |===========================================|
+ -- | Free | | Reserv. | R G B | vert. pos. |
+ -- |------| |-------------------------------------------|
+ --
+ component waveform_ram
+ port(
+ i_DIA : in std_logic_vector(15 downto 0);
+ i_WEA : in std_logic;
+ i_clockA : in std_logic;
+ i_ADDRA : in std_logic_vector(9 downto 0);
+ --o_DOA : OUT std_logic_vector(15 downto 0);
+ --
+ i_DIB : in std_logic_vector(15 downto 0);
+ i_WEB : in std_logic;
+ i_clockB : in std_logic;
+ i_ADDRB : in std_logic_vector(9 downto 0);
+ o_DOB : out std_logic_vector(15 downto 0)
+ );
+ end component;
+
+ component chars_RAM
+ port(
+ i_clock_rw : in std_logic;
+ i_EN_rw : in std_logic;
+ i_WE_rw : in std_logic_vector(3 downto 0);
+ i_ADDR_rw : in std_logic_vector(10 downto 0);
+ i_DI_rw : in std_logic_vector(31 downto 0);
+ o_DI_rw : out std_logic_vector(31 downto 0);
+ i_SSR : in std_logic;
+ i_clock_r : in std_logic;
+ i_ADDR_r : in std_logic_vector(12 downto 0);
+ o_DO_r : out std_logic_vector(7 downto 0)
+ );
+ end component;
+
+
+ attribute U_SET : string;
+ attribute U_SET of "u0_chars_RAM" : label is "u0_chars_RAM_uset";
+ attribute U_SET of "u1_charmaps_rom" : label is "u1_charmaps_rom_uset";
+ attribute U_SET of "u2_waveform_ram" : label is "u2_waveform_ram_uset";
+
+begin
+
+ s_chars_ram_addr <= s_v_count(9 downto 4) & s_h_count(9 downto 3);
+
+ u0_chars_RAM : chars_RAM port map(
+ i_clock_rw => i_chr_clk,
+ i_EN_rw => i_chr_en,
+ i_WE_rw => i_chr_we,
+ i_ADDR_rw => i_chr_addr,
+ i_DI_rw => i_chr_data,
+ o_DI_rw => o_chr_data,
+ i_SSR => i_chr_rst,
+ i_clock_r => i_clk,
+ i_ADDR_r => s_chars_ram_addr,
+ o_DO_r => s_chars_ascii
+ );
+
+
+
+ u1_charmaps_rom : charmaps_rom port map(
+ i_clock => i_clk,
+ i_ADDR => s_charmaps_ADDR,
+ o_DO => s_charmaps_DO
+ );
+
+ -- modify the charmaps address
+ p_MGM_CHARMAPS_ADDR : process(i_clk) --, i_reset) --, s_v_count, i_cursor_color)
+ begin
+ if rising_edge(i_clk) then
+ if i_reset = '1' then -- sync reset
+ s_charmaps_ADDR <= "01000000000"; -- (others => '0');
+ else
+ if (s_h_count(2 downto 0) = "110") then -- each 8 h_count
+ s_charmaps_DO_l <= s_charmaps_DO;
+ end if;
+ -- here start char 'a' ---v v----- ascii code ------v v-- vert char row --v
+ --s_charmaps_ADDR <= "01000000000" + ( s_h_count(9 downto 3) & s_v_count(3 downto 0) );
+ s_charmaps_ADDR <= (s_chars_ascii(6 downto 0) & s_v_count(3 downto 0));
+ -- here start char 'a' ---^ ^----- ascii code ------^ ^-- vert char row --^
+ end if;
+ end if;
+ end process;
+
+
+
+ u2_waveform_ram : waveform_ram port map(
+ i_DIA => i_wav_d,
+ i_WEA => i_wav_we,
+ --i_clockA => i_clockA,
+ i_clockA => i_clk,
+ i_ADDRA => i_wav_addr,
+ --o_DOA => o_DOA,
+ --
+ i_DIB => "1111111111111111",
+ i_WEB => '0',
+ i_clockB => i_clk,
+ -- i_ADDRB => s_waveform_ADDRB,
+ i_ADDRB => s_waveform_ADDRB, --s_h_count(9 downto 0),
+ o_DOB => s_waveform_DOB
+ );
+
+ p_WaveFormAddr : process (i_clk)
+ begin
+ if rising_edge(i_clk) then
+ s_waveform_ADDRB <= s_h_count(9 downto 0);
+ end if;
+ end process;
+
+ p_pulse_on_hsync_falling : process(i_clk)
+ variable v_h_sync1 : std_logic;
+ begin
+ if rising_edge(i_clk) then
+ s_h_sync_pulse <= not s_h_sync and v_h_sync1;
+ v_h_sync1 := s_h_sync;
+ end if;
+ end process;
+
+
+ -- set the cursor position
+ s_cursor_x <= i_cursor_x; -- 400
+ s_cursor_y <= i_cursor_y; -- 300
+
+ -- control the reset, increment and overflow of the horizontal pixel count
+ p_H_PX_COUNT : process(i_clk) --, i_reset)
+ begin
+ if rising_edge(i_clk) then
+ if i_reset = '1' or s_h_count = c_H_PERIODpx then -- sync reset
+ s_h_count <= (others => '0');
+ else
+ s_h_count <= s_h_count + 1;
+ end if;
+ end if;
+ end process;
+
+
+
+ p_V_LN_COUNT : process(i_clk)
+ begin
+ if rising_edge(i_clk) then
+ if i_reset = '1' or s_v_count = c_V_PERIODln then -- sync reset
+ s_v_count <= (others => '0');
+ elsif s_h_sync_pulse = '1' then
+ s_v_count <= s_v_count + 1;
+ end if;
+ end if;
+ end process;
+
+ -- set the horizontal sync high time and low time according to the constants
+ p_MGM_H_SYNC : process(i_clk) --, i_reset)
+ begin
+ if rising_edge(i_clk) then
+ if (s_h_count = c_H_DISPLAYpx + c_H_BACKPORCHpx) then
+ s_h_sync <= '0';
+ elsif (s_h_count = c_H_PERIODpx - c_H_FRONTPORCHpx) then
+ s_h_sync <= '1';
+ end if;
+ end if;
+ end process;
+ o_h_sync <= s_h_sync and i_h_sync_en;
+
+
+ p_MGM_V_SYNC : process(i_clk) --, i_reset)
+ begin
+ --if falling_edge(i_clk) then
+ if rising_edge(i_clk) then
+ if i_v_sync_en = '0' or
+ (s_v_count = (c_V_DISPLAYln + c_V_BACKPORCHln)) then
+ o_v_sync <= '0';
+ elsif (s_v_count = (c_V_PERIODln - c_V_FRONTPORCHln)) then --and (s_h_sync_pulse = '1') then
+ o_v_sync <= '1';
+ end if;
+ end if;
+ end process;
+
+ -- asserts the blaking signal (active low)
+ p_MGM_BLANK : process (i_clk) --, i_reset)
+ begin
+ if rising_edge(i_clk) then
+ -- if we are outside the visible range on the screen then tell the RAMDAC to blank
+ -- in this section by putting s_display low
+ if not (s_h_count < c_H_DISPLAYpx and s_v_count < c_V_DISPLAYln) then
+ s_display <= '0';
+ else
+ s_display <= '1';
+ end if;
+ end if;
+ end process;
+
+
+ -- generates the r g b signals and show the green cursor
+ p_MGM_RGB : process (i_clk) --, i_reset) --, i_cursor_color, s_display)
+ variable v_previous_pixel : std_logic_vector(9 downto 0) := "0100101100";
+ begin
+ if rising_edge(i_clk) then -- not async reset
+ if i_reset = '1' then -- sync reset
+ o_r <= '0';
+ o_g <= '0';
+ o_b <= '0';
+ else
+ if s_display = '1' then -- display zone
+ if (
+ (s_h_count = s_cursor_x) or (s_v_count = s_cursor_y) or
+ (s_h_count(c_GRID_BIT downto 0) = c_GRID_SIZE(c_GRID_BIT downto 0)) or
+ (s_v_count(c_GRID_BIT downto 0) = c_GRID_SIZE(c_GRID_BIT downto 0))
+ )
+ and (s_v_count(9) = '0') -- < 512
+ then -- draw the cursor and/or WaveForm Grid references
+ o_r <= i_cursor_color(2);
+ o_g <= i_cursor_color(1);
+ o_b <= i_cursor_color(0);
+ elsif
+ ((s_v_count(9 downto 0) >= s_waveform_DOB(9 downto 0)) and
+ (s_v_count(9 downto 0) <= v_previous_pixel)
+ ) or
+ ((s_v_count(9 downto 0) <= s_waveform_DOB(9 downto 0)) and
+ (s_v_count(9 downto 0) >= v_previous_pixel)
+ )
+ then -- draw the waveform pixel...
+ o_r <= s_waveform_DOB(12) or s_waveform_DOB(15); -- the "or" is only
+ o_g <= s_waveform_DOB(11) or s_waveform_DOB(14); -- to not warning
+ o_b <= s_waveform_DOB(10) or s_waveform_DOB(13); -- unused signals
+ else -- draw the background and charmaps
+ --if s_v_count > 512 then
+ --FULL_SCREEN if (s_v_count(9) = '1') then -- >= 512
+ case (s_h_count(2 downto 0)) is
+ when "000" => o_g <= s_charmaps_DO_l(7) xor i_background;
+ when "001" => o_g <= s_charmaps_DO_l(6) xor i_background;
+ when "010" => o_g <= s_charmaps_DO_l(5) xor i_background;
+ when "011" => o_g <= s_charmaps_DO_l(4) xor i_background;
+ when "100" => o_g <= s_charmaps_DO_l(3) xor i_background;
+ when "101" => o_g <= s_charmaps_DO_l(2) xor i_background;
+ when "110" => o_g <= s_charmaps_DO_l(1) xor i_background;
+ when "111" => o_g <= s_charmaps_DO_l(0) xor i_background;
+ when others => o_g <= 'X';
+ --when others => o_g <= i_background;
+ end case;
+ --FULL_SCREEN else
+ --FULL_SCREEN o_g <= i_background;
+ --FULL_SCREEN end if;
+ o_r <= i_background;
+ --o_g <= i_background;
+ o_b <= i_background;
+ end if;
+ else -- blank zone
+ -- the blanking zone
+ o_r <= '0';
+ o_g <= '0';
+ o_b <= '0';
+ end if; -- if s_display
+ v_previous_pixel := s_waveform_DOB(9 downto 0);
+ end if; -- if i_reset
+ end if;
+ end process;
+
+end rtl;
Index: tags/yavga-0.8.2/trunk/vhdl/waveform_RAM.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/waveform_RAM.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/waveform_RAM.vhd (revision 14)
@@ -0,0 +1,212 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+-- Uncomment the following lines to use the declarations that are
+-- provided for instantiating Xilinx primitive components.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity waveform_RAM is
+ port (
+ i_DIA : in std_logic_vector(15 downto 0); -- 16-bit Data Input
+ -- i_DIPA : in std_logic; -- 2-bit parity Input
+ -- i_ENA : in std_logic; -- RAM Enable Input
+ i_WEA : in std_logic; -- Write Enable Input
+ -- i_SSRA : in std_logic; -- Synchronous Set/Reset Input
+ i_clockA : in std_logic; -- Clock
+ i_ADDRA : in std_logic_vector(9 downto 0); -- 10-bit Address Input
+ --o_DOA : out std_logic_vector(15 downto 0); -- 16-bit Data Output
+ -- o_DOPA : out std_logic -- 2-bit parity Output
+ --
+ i_DIB : in std_logic_vector(15 downto 0); -- 16-bit Data Input
+ -- i_DIPB : in std_logic; -- 2-bit parity Input
+ -- i_ENB : in std_logic; -- RAM Enable Input
+ i_WEB : in std_logic; -- Write Enable Input
+ -- i_SSRB : in std_logic; -- Synchronous Set/Reset Input
+ i_clockB : in std_logic; -- Clock
+ i_ADDRB : in std_logic_vector(9 downto 0); -- 10-bit Address Input
+ o_DOB : out std_logic_vector(15 downto 0) -- 16-bit Data Output
+ -- o_DOPB : out std_logic -- 2-bit parity Output
+ );
+end waveform_RAM;
+
+architecture rtl of waveform_RAM is
+
+begin
+ -- wave form or video-line memory
+ -- |------| |-------------------------------------------|
+ -- | P P | | D D D | D D D | D D D D D D D D D D |
+ -- |======| |===========================================|
+ -- |17 16 | | 15 14 13 | 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
+ -- |======| |===========================================|
+ -- | Free | | Reserv. | R G B | vert. pos. |
+ -- |------| |-------------------------------------------|
+ --
+
+ Inst_waveform_RAM : RAMB16_S18_S18
+ generic map (
+ WRITE_MODE_A => "READ_FIRST", -- "WRITE_FIRST";
+ INIT_A => B"000000000000000000",
+ SRVAL_A => B"000000000000000000",
+ --
+ WRITE_MODE_B => "READ_FIRST", -- "WRITE_FIRST";
+ INIT_B => B"000000000000000000",
+ SRVAL_B => B"000000000000000000",
+ --
+ --INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INIT_00 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_01 => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_02 => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_03 => X"112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F",
+ INIT_04 => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_05 => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_06 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_07 => X"112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B",
+
+ --INIT_08 => X"112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A",
+ INIT_08 => X"112A114011C211F4117C10FA110E112A112A112A112A112A112A112A112A192A",
+
+ --INIT_09 => X"1129112911291129112911291129112911291129112911291129112911291129",
+ INIT_09 => X"1129112911291129112911291129112911291129112911291129112911291529",
+
+ INIT_0A => X"1128112811281128112811281128112811281128112811281128112811281128",
+ INIT_0B => X"1127112711271127112711271127112711271127112711271127112711271127",
+ INIT_0C => X"1126112611261126112611261126112611261126112611261126112611261126",
+ INIT_0D => X"1125112511251125112511251125112511251125112511251125112511251125",
+ INIT_0E => X"1124112411241124112411241124112411241124112411241124112411241124",
+ INIT_0F => X"1123112311231123112311231123112311231123112311231123112311231123",
+ --
+ INIT_10 => X"1123112311231123112311231123112311231123112311231123112311231123",
+ INIT_11 => X"1124112411241124112411241124112411241124112411241124112411241124",
+ INIT_12 => X"1125112511251125112511251125112511251125112511251125112511251125",
+ INIT_13 => X"1126112611261126112611261126112611261126112611261126112611261126",
+ INIT_14 => X"1127112711271127112711271127112711271127112711271127112711271127",
+ INIT_15 => X"1128112811281128112811281128112811281128112811281128112811281128",
+ INIT_16 => X"1129112911291129112911291129112911291129112911291129112911291129",
+ INIT_17 => X"112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A",
+ INIT_18 => X"112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B",
+ INIT_19 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_1A => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_1B => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_1C => X"112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F",
+ INIT_1D => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_1E => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_1F => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ --
+ INIT_20 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_21 => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_22 => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_23 => X"112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F",
+ INIT_24 => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_25 => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_26 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_27 => X"112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B",
+ INIT_28 => X"112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A",
+ INIT_29 => X"1129112911291129112911291129112911291129112911291129112911291129",
+ INIT_2A => X"1128112811281128112811281128112811281128112811281128112811281128",
+ INIT_2B => X"1127112711271127112711271127112711271127112711271127112711271127",
+ INIT_2C => X"1126112611261126112611261126112611261126112611261126112611261126",
+ INIT_2D => X"1125112511251125112511251125112511251125112511251125112511251125",
+ INIT_2E => X"1124112411241124112411241124112411241124112411241124112411241124",
+ INIT_2F => X"1123112311231123112311231123112311231123112311231123112311231123",
+ --
+ INIT_30 => X"1123112311231123112311231123112311231123112311231123112311231123",
+ INIT_31 => X"1124112411241124112411241124112411241124112411241124112411241124",
+ INIT_32 => X"1125112511251125112511251125112511251125112511251125112511251125",
+ INIT_33 => X"1126112611261126112611261126112611261126112611261126112611261126",
+ INIT_34 => X"1127112711271127112711271127112711271127112711271127112711271127",
+ INIT_35 => X"1128112811281128112811281128112811281128112811281128112811281128",
+ INIT_36 => X"1129112911291129112911291129112911291129112911291129112911291129",
+ INIT_37 => X"112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A112A",
+ INIT_38 => X"112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B112B",
+ INIT_39 => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ INIT_3A => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_3B => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_3C => X"112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F112F",
+ INIT_3D => X"112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E112E",
+ INIT_3E => X"112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D112D",
+ INIT_3F => X"112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C112C",
+ --
+ INITP_00 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ DIA => i_DIA, -- 16 bit data Input
+ DIPA => (others => '1'), -- 2 bit data parity Input
+ ENA => '1', -- 1-bit RAM enable Input
+ WEA => i_WEA, -- 1-bit Write Enable Input
+ SSRA => '0', -- 1-bit Synchronous Set/Reset Input
+ CLKA => i_clockA, -- 1-bit Clock Input
+ ADDRA => i_ADDRA, -- 10-bit Address Input
+ DOA => open, -- o_DOA, -- 16-bit Data Output
+ DOPA => open, -- 2-bit Data Parity Output
+ --
+ DIB => i_DIB, -- 16 bit data Input
+ DIPB => (others => '1'), -- 2 bit data parity Input
+ ENB => '1', -- 1-bit RAM enable Input
+ WEB => i_WEB, -- 1-bit Write Enable Input
+ SSRB => '0', -- 1-bit Synchronous Set/Reset Input
+ CLKB => i_clockB, -- 1-bit Clock Input
+ ADDRB => i_ADDRB, -- 10-bit Address Input
+ DOB => o_DOB, -- 16-bit Data Output
+ DOPB => open -- 2-bit Data Parity Output
+ );
+
+end rtl;
Index: tags/yavga-0.8.2/trunk/vhdl/README.txt
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/README.txt (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/README.txt (revision 14)
@@ -0,0 +1,30 @@
+########################################################
+#### This file is part of the yaVGA project ####
+#### http://www.opencores.org/?do=project&who=yavga ####
+########################################################
+
+FIles:
+
+charmaps_ROM.vhd
+ This file is the char map rom initialization. If you like you can modify it using
+ ../charmaps/convert.sh (it read chars.map and write on the standard output a BRAM
+ vhdl initialization chunk to be completed...)
+
+chars_RAM.vhd
+ This file is the char ram
+
+README.txt
+ This file
+
+s3e_starter_1600k.ucf
+ The ucf constraint to be used with the DIGILENT s3e_starter_1600k kit
+
+s3e_starter_1600k.vhd
+ The top vhdl to use to test the vga controller with the DIGILENT s3e_starter_1600k kit.
+ The test write random chars to the screen each few seconds.
+
+vga_ctrl.vhd
+ The vga controller main file
+
+waveform_RAM.vhd
+ This file is the waveform ram
Index: tags/yavga-0.8.2/trunk/vhdl/charmaps_ROM.vhd
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/charmaps_ROM.vhd (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/charmaps_ROM.vhd (revision 14)
@@ -0,0 +1,180 @@
+--------------------------------------------------------------------------------
+---- ----
+---- This file is part of the yaVGA project ----
+---- http://www.opencores.org/?do=project&who=yavga ----
+---- ----
+---- Description ----
+---- Implementation of yaVGA IP core ----
+---- ----
+---- To Do: ----
+---- ----
+---- ----
+---- Author(s): ----
+---- Sandro Amato, sdroamt@netscape.net ----
+---- ----
+--------------------------------------------------------------------------------
+---- ----
+---- Copyright (c) 2009, Sandro Amato ----
+---- All rights reserved. ----
+---- ----
+---- Redistribution and use in source and binary forms, with or without ----
+---- modification, are permitted provided that the following conditions ----
+---- are met: ----
+---- ----
+---- * Redistributions of source code must retain the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer. ----
+---- * Redistributions in binary form must reproduce the above ----
+---- copyright notice, this list of conditions and the ----
+---- following disclaimer in the documentation and/or other ----
+---- materials provided with the distribution. ----
+---- * Neither the name of SANDRO AMATO nor the names of its ----
+---- contributors may be used to endorse or promote products ----
+---- derived from this software without specific prior written ----
+---- permission. ----
+---- ----
+---- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ----
+---- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ----
+---- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ----
+---- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ----
+---- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ----
+---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
+---- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ----
+---- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ----
+---- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
+---- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ----
+---- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ----
+---- POSSIBILITY OF SUCH DAMAGE. ----
+--------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+-- Uncomment the following lines to use the declarations that are
+-- provided for instantiating Xilinx primitive components.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity charmaps_ROM is
+ port (
+ -- i_DI : in std_logic_vector(7 downto 0); -- 8-bit Data Input
+ -- i_DIP : in std_logic; -- 1-bit parity Input
+ -- i_EN : in std_logic; -- RAM Enable Input
+ -- i_WE : in std_logic; -- Write Enable Input
+ -- i_SSR : in std_logic; -- Synchronous Set/Reset Input
+ i_clock : in std_logic; -- Clock
+ i_ADDR : in std_logic_vector(10 downto 0); -- 11-bit Address Input
+ o_DO : out std_logic_vector(7 downto 0) -- 8-bit Data Output
+ -- o_DOP : out std_logic -- 1-bit parity Output
+ );
+end charmaps_ROM;
+
+architecture rtl of charmaps_ROM is
+
+begin
+ -- charmaps
+ -- |------| |-----------------|
+ -- | P | | D D D D D D D D |
+ -- |======| |=================|
+ -- | 8 | | 7 6 5 4 3 2 1 0 |
+ -- |======| |=================|
+ -- | Free | | Row char pixels |
+ -- |------| |-----------------|
+
+ Inst_charmaps_rom : RAMB16_S9
+ generic map (
+ write_mode => "NO_CHANGE", -- WRITE_FIRST, READ_FIRST or NO_CHANGE
+ INIT => B"000000000", -- Value of output RAM registers at startup
+ SRVAL => B"000000000", -- Ouput value upon SSR assertion
+ --
+ INIT_00 => X"000000FF0000FF0000FF0000FF00000000000000000000000000000000000000",
+ INIT_01 => X"0000242424242424242424242424000000000000FF0000FF0000FF0000FF0000",
+ INIT_02 => X"0000929292929292929292929292000000004949494949494949494949490000",
+ INIT_03 => X"0000AAAAAAAAAAAAAAAAAAAAAAAA000000005555555555555555555555550000",
+ INIT_04 => X"0000F3FCF3FCF3FCF3FCF3FCF3FC00000000FF00FF00FF00FF00FF00FF000000",
+ INIT_05 => X"00000C030C030C030C030C030C0300000000CF3FCF3FCF3FCF3FCF3FCF3F0000",
+ INIT_06 => X"00000066666666000066666666000000000030C030C030C030C030C030C00000",
+ INIT_07 => X"00000F0F0F0F0F0F0F0F0F0F0F0F00000000FF99999999FFFF99999999FF0000",
+ INIT_08 => X"0000000000000000FFFFFFFFFFFF00000000F0F0F0F0F0F0F0F0F0F0F0F00000",
+ INIT_09 => X"00000F0F0F0F0F0F0F0F0F0F0F0F00000000FFFFFFFFFFFF0000000000000000",
+ INIT_0A => X"0000007E42424242424242427E0000000000F0F0F0F0F0F0F0F0F0F0F0F00000",
+ INIT_0B => X"000024492449244924492449244900000000FF81818181818181818181FF0000",
+ INIT_0C => X"0000499249924992499249924992000000002492249224922492249224920000",
+ INIT_0D => X"0000AA55AA55AA55AA55AA55AA550000000055AA55AA55AA55AA55AA55AA0000",
+ INIT_0E => X"0000DB6DDB6DDB6DDB6DDB6DDB6D00000000DBB6DBB6DBB6DBB6DBB6DBB60000",
+ INIT_0F => X"0000FFFFFFFFFFFFFFFFFFFFFFFF00000000B66DB66DB66DB66DB66DB66D0000",
+ INIT_10 => X"0000001000001010101010101010000000000000000000000000000000000000",
+ INIT_11 => X"0000004444FE4444444444FE4444000000000000000000000044444444440000",
+ INIT_12 => X"0000000C12924C2010086492906000000000007C921212127C909090927C0000",
+ INIT_13 => X"000000000000000000101010101000000000007A84848A507090888848300000",
+ INIT_14 => X"0000001008080404040404080810000000000010202040404040402020100000",
+ INIT_15 => X"0000000010101010FE101010100000000000009292545438FE38545492920000",
+ INIT_16 => X"0000000000000000FE0000000000000000000020100808000000000000000000",
+ INIT_17 => X"0000000000804020100804020000000000000000001818000000000000000000",
+ INIT_18 => X"0000003810101010101010503010000000000038448282A2928A828244380000",
+ INIT_19 => X"0000007C820202027C020202827C0000000000FE808080807C020202827C0000",
+ INIT_1A => X"0000007C820202027C80808080FE00000000001C080808FE8888482818080000",
+ INIT_1B => X"00000038101010101008040202FE00000000007C828282827C808080807E0000",
+ INIT_1C => X"000000FC020202027C828282827C00000000007C828282827C828282827C0000",
+ INIT_1D => X"0000002010080800000018180000000000000000001818000000181800000000",
+ INIT_1E => X"0000000000FE0000000000FE000000000000000000020C30C0300C0200000000",
+ INIT_1F => X"0000001000101008040282824438000000000000008060180618608000000000",
+ INIT_20 => X"00000082828244447C442828281000000000003C42809EA2A29E828244380000",
+ INIT_21 => X"0000007C8280808080808080827C0000000000FC82828284F884828282FC0000",
+ INIT_22 => X"000000FE80808080FC80808080FE0000000000F8848482828282848488F00000",
+ INIT_23 => X"0000007C828282829E808080827C00000000008080808080FC80808080FE0000",
+ INIT_24 => X"0000003810101010101010101038000000000082828282827C82828282820000",
+ INIT_25 => X"0000008282848488F088848482820000000000708888080808080808081C0000",
+ INIT_26 => X"000000828282829292AAAAAAC6820000000000FE808080808080808080800000",
+ INIT_27 => X"0000007C8282828282828282827C000000000082868A8A8A92A2A2A2C2820000",
+ INIT_28 => X"0000007A848AB28282828282827C00000000008080808080FC828282827C0000",
+ INIT_29 => X"0000007C820202027C808080827C000000000082848890A0FC828282827C0000",
+ INIT_2A => X"0000007C82828282828282828282000000000010101010101010101092FE0000",
+ INIT_2B => X"00000082C6AAAAAA929282828282000000000010102828284444448282820000",
+ INIT_2C => X"0000001010101010282844448282000000000082824444283828444482820000",
+ INIT_2D => X"00000038202020202020202020380000000000FE824040203808040482FE0000",
+ INIT_2E => X"0000003808080808080808080838000000000000000204081020408000000000",
+ INIT_2F => X"000000FE00000000000000000000000000000000000000000082442810000000",
+ INIT_30 => X"0000003AC6828282C63A00000000000000000000000000000008101020200000",
+ INIT_31 => X"0000003CC2808080C23C000000000000000000B8C6828282C6B8808080800000",
+ INIT_32 => X"00000038C680FC82C6380000000000000000003AC6828282C63A020202020000",
+ INIT_33 => X"00000038C6027E82C638000000000000000000808080808080F88080423C0000",
+ INIT_34 => X"0000000C1210101010100000100000000000008282828282C6B8808080800000",
+ INIT_35 => X"000000828488B0C0B88680808000000000000070880404040404000004000000",
+ INIT_36 => X"0000009292929292D2AC0000000000000000000E102020202020202020200000",
+ INIT_37 => X"00000038C6828282C6380000000000000000008282828282C6B8000000000000",
+ INIT_38 => X"0000000202027E82C63A000000000000000000808080FC82C6B8000000000000",
+ INIT_39 => X"0000007C82027E80827C0000000000000000008080808080C6B8000000000000",
+ INIT_3A => X"0000003AC682828282820000000000000000003C4280808080F8808080800000",
+ INIT_3B => X"0000006C92929292928200000000000000000010284482828282000000000000",
+ INIT_3C => X"0000003008083C42820000000000000000000082443828448200000000000000",
+ INIT_3D => X"00000010202020408040202020100000000000FE40300804FE00000000000000",
+ INIT_3E => X"0000001008080804020408080810000000000010101010101010101010100000",
+ INIT_3F => X"00000000000000000000000000000000000000000000000C9260000000000000",
+ --
+ INITP_00 => X"0000000000000000000000000000000000000000000000000000000000000000", -- free
+ INITP_01 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => X"0000000000000000000000000000000000000000000000000000000000000000"
+ )
+ port map(
+ DI => (others => '1'), -- 8-bit Data Input
+ DIP => (others => '1'), -- 1-bit parity Input
+ EN => '1', -- RAM Enable Input
+ WE => '0', -- Write Enable Input
+ SSR => '0', -- Synchronous Set/Reset Input
+ CLK => i_clock, -- Clock
+ ADDR => i_ADDR, -- 11-bit Address Input
+ DO => o_DO, -- 8-bit Data Output
+ DOP => open -- 1-bit parity Output
+ );
+
+
+end rtl;
Index: tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.ucf
===================================================================
--- tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.ucf (nonexistent)
+++ tags/yavga-0.8.2/trunk/vhdl/s3e_starter_1600k.ucf (revision 14)
@@ -0,0 +1,66 @@
+################################################################################
+#### ####
+#### This file is part of the yaVGA project ####
+#### http://www.opencores.org/?do=project&who=yavga ####
+#### ####
+#### Description ####
+#### Implementation of yaVGA IP core ####
+#### ####
+#### To Do: ####
+#### ####
+#### ####
+#### Author(s): ####
+#### Sandro Amato, sdroamt@netscape.net ####
+#### ####
+################################################################################
+#### ####
+#### Copyright (c) 2009, Sandro Amato ####
+#### All rights reserved. ####
+#### ####
+#### Redistribution and use in source and binary forms, with or without ####
+#### modification, are permitted provided that the following conditions ####
+#### are met: ####
+#### ####
+#### * Redistributions of source code must retain the above ####
+#### copyright notice, this list of conditions and the ####
+#### following disclaimer. ####
+#### * Redistributions in binary form must reproduce the above ####
+#### copyright notice, this list of conditions and the ####
+#### following disclaimer in the documentation and/or other ####
+#### materials provided with the distribution. ####
+#### * Neither the name of SANDRO AMATO nor the names of its ####
+#### contributors may be used to endorse or promote products ####
+#### derived from this software without specific prior written ####
+#### permission. ####
+#### ####
+#### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ####
+#### "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ####
+#### LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ####
+#### FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ####
+#### COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ####
+#### INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ####
+#### BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ####
+#### LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ####
+#### CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ####
+#### LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ####
+#### ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ####
+#### POSSIBILITY OF SUCH DAMAGE. ####
+################################################################################
+
+#PACE: Start of Constraints generated by PACE
+
+#PACE: Start of PACE I/O Pin Assignments
+NET "i_clk" LOC = "c9" | IOSTANDARD = LVCMOS33 ;
+NET "o_b" LOC = "g15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
+NET "o_g" LOC = "h15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
+NET "o_hsync" LOC = "f15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
+NET "o_r" LOC = "h14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
+NET "o_vsync" LOC = "f14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
+
+#PACE: Start of PACE Area Constraints
+#AREA_GROUP "AG_u1_vga_ctrl" RANGE = SLICE_X84Y109:SLICE_X89Y100 ;
+#INST "u1_vga_ctrl" AREA_GROUP = "AG_u1_vga_ctrl" ;
+
+#PACE: Start of PACE Prohibit Constraints
+
+#PACE: End of Constraints generated by PACE