6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Nov 22, 2024 10:58 pm

All times are UTC




Post new topic Reply to topic  [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: Mon Aug 14, 2017 7:21 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Ax2013 wrote:
Using ROMs in SR logic does not limit max speed more - those same ROMs are being used in control logic already so the limitation exists already.

To me, the critical delay path now looks like this:
Phase counter > Microcode ROMs > register read decoder + register read > ALU > flag evaluation logic + ROM > SR.

For functional testing, feeding the CPU external data bus with a DIP switch (plus pullup resistors) would be nice for a start.
If a permanent $A9 on the data bus loads the accumulator with $A9 while incrementing the PC,
quite some part of the CPU seems to work as intended...

BTW: peeling most of the bugs out of the M02 microcode took about 3 months. :)


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 14, 2017 8:22 am 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
ttlworks wrote:
For functional testing, feeding the CPU external data bus with a DIP switch (plus pullup resistors) would be nice for a start.
If a permanent $A9 on the data bus loads the accumulator with $A9 while incrementing the PC,
quite some part of the CPU seems to work as intended...


Yes of course. That's what I have been doing so far. Everything works with manual control. Including phase control, IR load, PC++, register loads, mem read/write, (ALU) SHL, etc.
Breadboard wiring and testing so far: 35h

It was nice that my timing/clock design worked on first try. Phase control/IR load/PC++ in Phase0 before actual operations was one of my design goals. Whether everything continues to work with the actual control logic... that remains to be seen...

Axel.


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 14, 2017 12:07 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
ttlworks wrote:
To me, the critical delay path now looks like this:
Phase counter > Microcode ROMs > register read decoder + register read > ALU > flag evaluation logic + ROM > SR.


There is no new delay due to Flag ROM, because between "ALU output"/"memory output"/"memory input" etc AND phase end there must be a long delay. RAM write has 85ns max delay while ROM read has 70ns. So if Flags ROM+logic is below 85ns it is not limiting my second time period.
If you take a look the timing diagram, thats the time period between "IR latch" and "Register latches".
Dropping delays of logic chips out of the equation the max frequency is 5.9MHz. One instruction phase is one clock cycle in this state machine.

I would consider 1MHz a victory and probably won't go much faster than that (well... we'll see about that... :-) )

Axel.


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 18, 2017 6:02 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
Microcode ROMs in and testing:

LDA #$62
ADC #$13
STA $0008

$0008=
Attachment:
75.jpg
75.jpg [ 70.56 KiB | Viewed 1083 times ]


Looks like I may call this a computer :-)

Axel.


Last edited by Ax2013 on Sat Aug 19, 2017 7:23 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 19, 2017 6:37 pm 
Offline

Joined: Tue Nov 10, 2015 5:46 am
Posts: 230
Location: Kent, UK
Pull back! I'd love to see a photo of the whole thing powered on.


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 20, 2017 5:09 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
sark02 wrote:
Pull back! I'd love to see a photo of the whole thing powered on.


Here you go:
Attachment:
TTL6502_20170820.JPG
TTL6502_20170820.JPG [ 544.33 KiB | Viewed 1027 times ]


Top to bottom:
Databus value
PC
AR (control signal logic on right)
Membus multiplexer (Run/Prog mode)
RAM (and Prog mode address+value)
IR (control signal logic on right)
Phase counter + microcode ROMs
Full address + substraction (=XORs) and reset
A and T regs
Clock signal generation + manual clock/555 oscillator
Flag generator + Zero flag calculator + SR


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 20, 2017 6:55 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
Well done!


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 20, 2017 9:09 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
BigEd wrote:
Well done!


Thanks. I'm starting to route the first version of pcb soon. It seems that everything on board works as planned.
Btw: what happens in real 6502 when reset is released in the middle of clock pulse? In my case it starts to execute cleared IR (opcode $00) which happens to be a valid instruction. That needs to be resolved somehow...

Axel.


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 20, 2017 9:36 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8544
Location: Southern California
It does not matter what part of the clock cycle you're in when you release RST\. It always does the same thing, regardless.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 20, 2017 11:50 pm 
Offline

Joined: Tue Nov 10, 2015 5:46 am
Posts: 230
Location: Kent, UK
Ax2013 wrote:
Here you go:

A huge amount of work. Well done! Nice labels!


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 23, 2017 4:37 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
9.7x8"
douple side
few cups of coffee...


Attachments:
PCB_ver3.JPG
PCB_ver3.JPG [ 319.52 KiB | Viewed 963 times ]


Last edited by Ax2013 on Wed Aug 23, 2017 7:57 pm, edited 1 time in total.
Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 23, 2017 7:05 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Ax2013 please verify the actual case dimensions of your ICs. The ones with 14 pin (U67/68) might actually be larger so that the space between them is nearly zero and then there is no room left for what I assume are decoupling Cs. If you will use sockets the space between them may be sufficient for small axial type Cs, but w/o sockets ... :shock:


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 23, 2017 7:50 pm 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
Thanks for the heads-up. There is enough space - actually I've added 25mils extra between decoupling caps and ICs. The space between ICs is about twice of a ceramic cap width.

Axel.


Attachments:
ICs_check.JPG
ICs_check.JPG [ 503.72 KiB | Viewed 950 times ]
Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 23, 2017 9:08 pm 
Offline
User avatar

Joined: Sun Oct 18, 2015 11:02 pm
Posts: 428
Location: Toronto, ON
Amazing progress! I really like the way the datapath is laid out. One question: how does your microcode handle writing PC to the stack since both PC and SP connect directly to the address bus?

_________________
C74-6502 Website: https://c74project.com


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 24, 2017 5:17 am 
Offline

Joined: Thu Jul 27, 2017 7:48 pm
Posts: 68
Thanks Drass!
PC address to stack can be written through T reg. (HI/LO Addressbus gateway to left ALUbus - see the logical diagram few posts earlier).

Axel.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 27 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