The complete original Commodore Vic-20 hardware, including the CPU, recreated in a single FPGA. The design is about 1400 Xilinx slices in size, and has a gate count of about 350K gates.
It would be possible to take advantage of the re-configurable nature of FPGA’s and expand the capabilities of the original machine, for example greater colour depth, screen resolution or number of audio channels. This could even be achieved dynamically while the machine is running, and with careful mapping of the additional registers required, complete compatibility with the original could be maintained.
Particular thanks to Graham for risking his vintage machine and allowing me to stick logic analyser probes all over it.
A PS/2 keyboard interface is included, with a keymap the same as the popular ‘Vice’ software emulator. The design is believed to be complete, and I have run through lots of the examples in the original Programmers Reference Manual. It also contains a complete 6522 VHDL core which may prove useful in other machines of this vintage.
A simulation model of Vic-20 hardware Copyright (c) MikeJ – jan 2008
Download
Vic20 Core
IMPORTANT NOTE:NO ORIGINAL ROM CONTENTS ARE IN THIS DISTRIBUTION. YOU WILL NEED THE ORIGINAL/ALTERNATIVE ROM FILES
THIS CODE 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 AUTHOR 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.
You are responsible for any legal issues arising from your use of this code.