6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 3:36 pm

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Sun Nov 26, 2017 2:29 am 
Offline

Joined: Sun Nov 26, 2017 12:32 am
Posts: 1
Hi,

I'm building a retro 8-bit computer using breadboard and through-hole components. It's based off of Philip Stevens design for a Z-180 computer, https://feilipu.me/2017/02/26/yet-another-z180-v2/, but he uses a lot of SMD components not really suited for breadboard.

I know that he uses GALs for his design, but I have seen other retro designs that incorporate CPLDs for glue logic, such as the FAP80, the MTX+ 512, http://www.primrosebank.net/computers/m ... cpu_v3.htm, the HD6309, https://github.com/tomcircuit/hd6309sbc, etc.

I've gotten as far as getting the CPLD (in this case an Altera MAX 7000, EPM7128S) detected by the ISE in Windows (Quartus), but I really have no idea what to do after that.

My design for the computer has an Z8S180 CPU, AM9511a APU, a BQ4845P RTC, 512k SRAM (A0-A18), 256k Flash (A0-A17), an 82C55 PIO an FD232 for Flash programming, an FT245 as an USB to UART controller, as well as 2x PCF8584P parallel-to-serial controllers, and that's basically it, in addition to the above CPLD.

What do I need to do with the CPLD to tie all these together? Do all the CE or CS liines go through the CPLD, and how? How do I implement the memory map? Do I need to implement address decoding? for example, what do I do with memory pin A19, which is neither tied to RAM or Flash?

I'm a complete n00b at this, and have only gotten this far thanks to Stevens' documentation, but since my design differs from his because of the through-hole components, there are some gaps I need to fill.

Any pointers or replies are appreciated, thanks!


Top
 Profile  
Reply with quote  
PostPosted: Sun Nov 26, 2017 6:27 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8509
Location: Midwestern USA
el_barto wrote:
I'm building a retro 8-bit computer...What do I need to do with the CPLD to tie all these together?

Just so you know, this is a 6502-family forum. There may be some members who are familiar with the Z-180 hardware, but I'm not one of them. Use of a CPLD in retro designs is not new—several of us have designed 6502-based systems with CPLD glue logic.

You haven't described what sort of computer hardware knowledge and experience you possess, so some of what I'm about to say may come off as patronizing, for which I apologize. You cannot approach a computer build from the position of being a total newbie. Many of us here who have scratch-designed and built machines have professional electronics experience of some sort, so we didn't go into it completely clueless. I had never scratch-built a computer before I built my first unit, but have had years of experience working with computer hardware, as well as a formal education in electronics. So I had a pretty good idea what I was getting into.

The first step is to read everything you can about electronics and computer hardware, especially as relates to the Z-180. I suggest you join a forum that supports the Z-80 family so you can learn as much as possible about how to incorporate it into a system. People who have already built around the Z-180 will be able to answer a lot of your questions on bus design, timing issues and all those other little things that have to be considered in your design. That will get you started.

You need to establish some realistic goals about what you hope to achieve with your machine and not build something whose complexity exceeds your ability to troubleshoot it if it fails to work or doesn't work right. A route I suggest you take is to first build a basic "proof-of-concept" unit using discrete logic so you can test out your ideas on how you want your contraption to work. Also, playing around with your proof-of-concept unit will get you very familiar with the Z-180's behavior and help you visualize how it all works. Only then would I recommend looking at a CPLD for glue logic.

Part and parcel with developing your hardware is being able to write software for it, specifically firmware that will get it to a usable state at boot-time. I don't know about the Z-180, but in the 6502 universe we usually develop firmware in assembly language. So you may find yourself getting very up close and personal with an assembly language development package. Alternatively, you could write the firmware in C if you have access to a Z-180 C compiler.

I don't want to discourage you, but I recommend you learn how to fly a single-engine airplane before you step into the cockpit of a 747. If you've not done this before, incorporating a CPLD into a first design is, in my opinion, too big a leap.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Sun Nov 26, 2017 9:14 am 
Offline

Joined: Sat Jan 02, 2016 10:22 am
Posts: 197
Since I had more than a little to do with the MTX+, I'd also echo BDD's small steps process. The link you've referenced is the Version 3 CPU board, there were a lot of incremental steps before we got to that point.

The basic test CPU board had no programmable logic on it at all. It was a minimal design using a couple of 74 series chips and small amounts of ROM & RAM.

The next design had programmable logic in the form of a 22V10 and 16V8 GAL type devices, and had more of the support chips, RTC, timer etc.

It was only when the design had expanded to the point where there were the prototype had 7 GALs and had spilled out onto a 2nd board that the CPLD was needed.

For "learning" how to use the 65c02, I started with one of Grant Searle's minimal designs.http://searle.hostei.com/grant/6502/Simple6502.html and played with it for a while.

Once I was confident I could build something of my own, I did the 6502 boards for the MTX/MTX+ http://primrosebank.net/computers/mtx/projects/macopro/mtxcopro.htm

(edit:typo correction)


Last edited by Martin A on Sun Nov 26, 2017 6:07 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Sun Nov 26, 2017 9:45 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
Welcome el_barto! I'm sure some of the things you're trying to do - most of them even - are things which would be common to a 6502 system. It sounds like you need to understand address decoding and address maps, and the logic behind them. Perhaps see the first few sections of Garth's guide:
http://wilsonminesco.com/6502primer/
and perhaps also see what you can find on electronics stackexchange by searching various keywords and looking for related questions:
https://electronics.stackexchange.com/q ... oprocessor


Top
 Profile  
Reply with quote  
PostPosted: Sun Nov 26, 2017 10:40 am 
Offline

Joined: Sat Jun 04, 2016 10:22 pm
Posts: 483
Location: Australia
Also, for anything z80/z180 specific, AnyCPU.org might well be a good place to ask.


Top
 Profile  
Reply with quote  
PostPosted: Sun Nov 26, 2017 1:00 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
Anycpu is good, and also check out retrobrew computers.

http://anycpu.org/forum

https://www.retrobrewcomputers.org/forum


Top
 Profile  
Reply with quote  
PostPosted: Mon Nov 27, 2017 8:41 am 
Offline

Joined: Sun Apr 10, 2011 8:29 am
Posts: 597
Location: Norway/Japan
On retrobrewcomputers you'll also find other Z180 projects, and they are discussed reasonably often, so some active threads should be easy to find.


Top
 Profile  
Reply with quote  
PostPosted: Tue Nov 28, 2017 5:42 am 
Offline

Joined: Tue Nov 28, 2017 5:34 am
Posts: 1
el_barto,

Just for your interest, your question looks very similar to one that I answered on GitHub just a few weeks ago.

YAZ180 GitHub Issue 1

If that answer doesn't set you in the right direction, then please raise another issue in the same place where the response will be on topic.
:)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron