View unanswered posts | View active topics It is currently Thu Mar 28, 2024 9:41 am



Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3  Next
 Homemade Z80 project 
Author Message

Joined: Tue Dec 11, 2012 8:03 am
Posts: 285
Location: California
Is the 4013 fast enough? 4000-series logic is awfully slow, but it's good when you need operation at up to 15V. The 4013's maximum propagation delay time at 5V is 350ns. Is there another 74-series FF that would do?

_________________
http://WilsonMinesCo.com/ lots of 6502 resources


Thu Jul 24, 2014 10:40 pm
Profile WWW

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
Garth wrote:
Is the 4013 fast enough? 4000-series logic is awfully slow, but it's good when you need operation at up to 15V. The 4013's maximum propagation delay time at 5V is 350ns. Is there another 74-series FF that would do?


Thanks for that warning. That's a very valid point, and when I give it some though, there's no reason at all why I can't just keep using the 7474. The only difference would be Active Low inputs for the RESET-pin instead of Active High, but that's controlled by the Arduino anyway, so I can pick whatever I like. From the CLK/DATA perspective they're the same, apart from propagation time.

The only reason 4013 was in there was because I was trying to figure out a way to do it using SET/RESET between 4013 and 7474, and once I reached this method instead, my mind had already switched to the 4013, which of course is pointless here. :)

Thanks.


Fri Jul 25, 2014 7:29 am
Profile

Joined: Tue Dec 11, 2012 8:03 am
Posts: 285
Location: California
If you want CMOS (which is definitely a better choice in almost every situation than 7400 TTL is), you could use 74HC74 or 74AC74 (and optionally put a "T" after the "C" for TTL-level input thresholds). 74HC74 is very slightly faster than 74LS74 according to my data books (and contrary to popular claims), and 74AC is about three times as fast as 74HC and 74LS. These operate at super low power compared to the 74XX, and their DC input loading is basically zero, unlike the 74XX; ie, if the frequency is low enough, the fanout is infinite. 4000-series was the first CMOS family as far as I'm aware, and it still has its place (when you need it to work at higher voltages), but it's too slow for use in things like computer address decoding. It's much faster at 15V than it is at 5V, but still slow compared to anything that starts with 74 except 74C which in many cases seems to be a re-numbering of 4000. For example, the 74C04 (with no "H" in there) inverter is the same as the 4584 or 40106.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources


Fri Jul 25, 2014 7:54 am
Profile WWW

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
Garth wrote:
If you want CMOS (which is definitely a better choice in almost every situation than 7400 TTL is), you could use 74HC74 or 74AC74 (and optionally put a "T" after the "C" for TTL-level input thresholds). 74HC74 is very slightly faster than 74LS74 according to my data books (and contrary to popular claims), and 74AC is about three times as fast as 74HC and 74LS.


Yeah, the main reason for choosing the 74LS74 is simple. I have a bunch of them. :) I think it'll be good enough for this job. I changed the schematic to use a 74 instead of the 4013 now, so once I test it successfully, it should be great.

I need to start rebuilding everything, this time from the schematics, to verify their functionality.


Fri Jul 25, 2014 8:25 am
Profile

Joined: Tue Dec 11, 2012 8:03 am
Posts: 285
Location: California
That's often a good reason. You said 7474 before; so if it's really 74LS74, that's a step in the right direction.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources


Fri Jul 25, 2014 8:28 am
Profile WWW

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
Spent the weekend (and a bit more than that to be honest) to get schematics down, and make preliminary PCB layouts for all five parts (CPU, RAM, Arduino, Audio, Video) I've messed with so far. Down below are links to schematics and images of how KiCAD renders them in its 3D view (front and back for each part).

I really need to start putting things together on breadboards from the schematics soon now. :)

CPU Module (Schematic)
Image Image

RAM Module (Schematic)
Image Image

Arduino Module (Schematic)
Image Image

Audio Module (Schematic)
Image Image

Video Module (Schematic)
Image Image


Sun Jul 27, 2014 5:31 pm
Profile

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
I've been restructuring parts of the design again. On the video and audio module, the I/O-address decoding has been changed from using a 74HC540+74LS30 into a 74HC688 instead. A bit slower propagation than the previous setup, but easier to grasp and more compact (cheaper) PCB's. The backplane bus also has a few more VCC lines (since I had some unused anyway), and the power lines on the PCB's have been expanded to 20mil instead of the 10mil everything else uses.

And as usual, the links and images for this (now defined as revision 3).

CPU Module (Schematic)
Image Image

RAM Module (Schematic)
Image Image

Arduino Module (Schematic)
Image Image

Audio Module (Schematic)
Image Image

Video Module (Schematic)
Image Image


Sat Aug 09, 2014 12:24 pm
Profile
User avatar

Joined: Fri Jan 10, 2014 9:46 pm
Posts: 37
[removed due to user inquiry]


Fri Jan 09, 2015 3:38 pm
Profile

Joined: Wed Jan 14, 2015 2:56 pm
Posts: 8
Location: South Wales, UK
Interesting project. I have a batch of Z80 chips ive been meaning to use for a while. Z80 assembler was the first assembly language i learnt


Thu Jan 15, 2015 2:57 pm
Profile
User avatar

Joined: Fri Jan 10, 2014 9:46 pm
Posts: 37
[removed due to user inquiry]


Thu Jan 15, 2015 5:30 pm
Profile

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
legacy wrote:
about the VDU, i see you have {R,G,B,H_sync,C_sync}
C_sync stands for "Composite SYNC output"

so the VDU is RGB-S compatible ?

there is a bit of confusion in my mind about that

also, what is H_sync useful for ?


In the first build (before schematics) I drove a SCART signal directly from the RGB + Csync (PAL into a Commodore 1084), so yes, it gives RGB-S out of the package (something the TMS9918/28/29 doesn't do).

The Hsync is simply the horisontal part of the Csync signal. The Csync of course contains both Hsync and Vsync. There is no separate Vsync output, but I'm sure there are ways to split them up if one has an RGBHV-display capable of PAL/NTSC frequencies. I assume there are displays that accept Csync directly as Vsync, but require separate Hsync signal. In the world of computer video, you'll find just about any combination of weird setups you can sensibly come up with.


Sat Jan 17, 2015 11:30 am
Profile
User avatar

Joined: Fri Jan 10, 2014 9:46 pm
Posts: 37
[removed due to user inquiry]


Sat Jan 17, 2015 11:30 am
Profile

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
legacy wrote:
@stefanberndtsson
a few questions:
1) have you planned to use D41464 type 10, or type 12 ?
2) why don't you use 6 DRAM instead of 4 ?
3) have you got any testing code for this board ?


1. The actual IC's in use will be TMS4464 because that's what I have at home. I'm not sure what speed they are, but I don't think that matters too much really.

2. The board design was mainly based on the test rig I had which used 4 of the 6 possible DRAM's. I might redesign that board into having three separat slots for plugging in DRAM-modules instead. The DRAM-modules can be made identical and the slot defines which CAS-pin is used (CAS0, CAS1 or CASX).

3. I may have some code somewhere, but at the moment it's been ripped apart and reassembled quite a few times, so I can't easily provide anything now (especially since I'm at work).


legacy wrote:
about question 2)

It looks to me that is possible to attach 192Kb of VRAM to the V9958 but it also seems ti goes fairly useless because the V9958 cannot address all of that RAM at once and it requires
bankswitching commands to access that extra piece of RAM.

Is it right ? Is any software known to exsist using the expansion RAM ?


128kB of the 192 possible is available as video memory. The remaining 64kB can, as far as I know, be used with the various mem-copy features of the V9958 to basically store spritedata and other graphics without having to load it from CPU-RAM. Sort of like uploading textures to a modern graphics card. Copying within VRAM should be far quicker than copying from CPU via the 8bit interface. If anything uses it, I have no idea. Exactly how it's used I haven't bothered to find out yet either.


Wed Jan 21, 2015 12:07 pm
Profile
User avatar

Joined: Fri Jan 10, 2014 9:46 pm
Posts: 37
[removed due to user inquiry]


Wed Jan 21, 2015 8:11 pm
Profile

Joined: Wed Jul 02, 2014 9:36 pm
Posts: 32
legacy wrote:
hi
i am new with KiCAD, i am used to use Eagle/CAD, it seems very good, is there any KiCAD's design project about the VDU in your repo ?
i'd like to use this project as motivation to learn the KiCAD as i do not have any Eagle/Cad license and i am using it with its "demo" limitations.


The entire repo https://github.com/stefanberndtsson/z80-video is the KiCAD project (video.pro is the main project file). There are also z80-arduino, z80-cpu, z80-audio and z80-memory64k for the other boards under my repository list

Also check Chris Gammell's videos at https://www.youtube.com/user/contextual ... /playlists with lots of info on how to use KiCAD in all stages from nothing to PCB production.


Wed Jan 21, 2015 8:27 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 41 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: Bing [Bot], trendictionbot and 5 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
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software