/* Imported from Wayback Machine Original URL : https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:dpram Snapshot date: 2025-12-16 Generator : wayback-archiver */ ==== Table of Contents ==== [[#dual_port_ram_prototype_board_for_rc2014|Dual Port RAM Prototype Board for RC2014]] [[#introduction|Introduction]] [[#features|Features]] [[#theory_of_operation|Theory of Operation]] [[#design_information|Design Information]] [[#design_examples|Design Examples]] [[#testing_a_newly_assembled_dpram_board|Testing a newly assembled DPRAM board]] [[#game_of_life_accelerator|Game of Life accelerator]] [[#sound_coprocessor|Sound Coprocessor]] [[#high-speed_serial_ports_coprocessor|High-speed Serial Ports Coprocessor]] ====== Dual Port RAM Prototype Board for RC2014 ====== ===== Introduction ===== DPRAM prototype board is for exploration of multiprocessor on RC2014. The key component is IDT7134 4K dual port RAM that's accessible to RC2014 as 4K of I/O space. A Z80 slave processor and a CPLD complete the prototype board. There are good bit of discussions about this board on [[https://groups.google.com/g/retro-comp/c/A98YbLhjHyI/m/xu6vTwEuBAAJ|Google Forum retro-comp]]. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=2fdf22&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_54161123.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=600&h=488&tok=cc8894&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_54161123.jpg?600x488|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_54161123.jpg}}]] ===== Features ===== IDT71342 4K dual port RAM with hardware semaphores Z80 coprocessor. EPM7064S CPLD as glue logic RC2014 bus interface Prototype area ===== Theory of Operation ===== IDT7134 is accessible to the main Z80 as 4K of contiguous I/O space using the “in a,( c )” and “out ( c ),a” instructions where reg pair BC points to the I/O address. The other memory port is mapped to 0x0-0x3FFF memory space of the Z80 coprocessor. On reset, Z80 coprocessor is held in reset while the dual port RAM is loaded with appropriate instructions and data. Once instruction is loaded, Z80 coprocessor is released to run. The coprocessor and main processor can communicate asynchronously over the dual port RAM. In fact, the coprocessor and main processor can be different CPU running different clocks. ===== Design Information ===== [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:dpram_scm_r0.pdf|Schematic]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:dpram_gerber_proto_r0.zip|Gerber photoplots]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:dpram_cpld_template.zip|CPLD design]] ← this is CPLD template with correct pin assignments. DPRAM base address is 0x40; release Z80 reset by writing to I/O 0xF4. ===== Design Examples ===== ==== Testing a newly assembled DPRAM board ==== Program the CPLD with the [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:dpram_cpld_template.zip|CPLD template]]. load [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:test_software_for_new_dpram_board.zip|DPRAM_tst]] and run from 0x1000. Read I/O port 0x40; the value should be changing constantly. ==== Game of Life accelerator ==== Conway's game of life running on 128×64 OLED display requires significant computation power. In this design example, the coprocessor drives the OLED display while the main processor and another coprocessor provides the data. Schematic Engineering change [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dpram:dpram_life_coprocessor.zip|CPLD design]] [[software:start|Software]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=2fdf22&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_54161123.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=407&tok=a84fb9&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_54161123.jpg?500x407|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_54161123.jpg}}]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=997898&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_54171123.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=413&tok=ce48bf&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_54171123.jpg?500x413|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_54171123.jpg}}]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=05e3bf&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_54221127.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=408&tok=3f5ab0&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_54221127.jpg?500x408|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_54221127.jpg}}]] ==== Sound Coprocessor ==== Z80 coprocessor drive the YM2149 sound chip, freeing up the main processor for other tasks. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=216881&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_60691014.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=411&tok=f7eae6&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_60691014.jpg?500x411|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_60691014.jpg}}]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=6a6434&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_60701014.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=398&tok=e53f2a&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_60701014.jpg?500x398|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_60701014.jpg}}]] ==== High-speed Serial Ports Coprocessor ==== Z80 coprocessor interface with the quad-serial ports which is capable of multi-megabit transfer on each serial channel. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=5cf3f1&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_60711014.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=418&tok=d04eb6&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_60711014.jpg?500x418|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_60711014.jpg}}]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=67f43f&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dpram/dsc_60721014.jpg|{{https://www.retrobrewcomputers.org/lib/exe/fetch.php?w=500&h=416&tok=85d2f2&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdpram%2Fdsc_60721014.jpg?500x416|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dpram_dsc_60721014.jpg}}]]