100MHz TTL 6502: Here we go!
Re: 100MHz TTL 6502: Here we go!
ttlworks wrote:
I vote for the alternative mix, and for having 2.5V and 3.3V polygons on one PCB layer if possible.
Quote:
Drass, it would be helpful if you could post a more detailed block diagram of the CPU.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
joanlluch wrote:
I am curious about what are you using for your instruction decoder. It looks to me that the typical ROMs are totally out of specs for your speed requirements, so what are you using instead?
Quote:
(It would also be great if at some time you eventually post a CPU diagram showing the modules you listed for your critical path calculations)
Quote:
I'm intrigued about self modifying code in relation to your cpu implementation, because I suppose that it is only problematic if it happens to an instruction that is already in the pipeline, which should be relatively rare in real life code. So maybe it can generally be ignored (?). How this subject fits in your pipelined processor?, are you supporting this in some way?
Edit: Here is a relevant post on the thread that you might find interesting. It specifically discusses Self-Modifying Code (SMC).
Last edited by Drass on Sat Nov 21, 2020 7:35 pm, edited 2 times in total.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
Bil Herd wrote:
Simply put, traces that align directly with the row of the glass fibers will have a different impedance than the trace that experiences alternating bundles of fibers.
Quote:
Drass: once we have a PCB layout, maybe it would be a good idea that you nicely/politely ask Bil Herd if he could take a look at it...
C74-6502 Website: https://c74project.com
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: 100MHz TTL 6502: Here we go!
Drass wrote:
One question: is it practical to use solder paste and stencils when there are components on both the top and bottom layers? How do you keep the bottom components from falling off or shifting when heating the boards?
I'll add to what Arlet said. Besides the matter of surface tension keeping already-soldered parts from falling off the bottom, if you're going to solder it by hand, you probably won't be getting the other side quite hot enough to melt. Before doing our first design with parts of both sides a couple of years ago (where it wasn't just a few parts that could be added by hand on the bottom later), I asked one of our suppliers about it. I believe what they used to do in the early years was to put a tiny drop of epoxy under the part to keep it from falling off when turned upside down and the solder was re-melted when doing the second side; but they said what they do now is to use a different solder that melts at a different temperature; then the first side is done with the higher-temperature solder, so when it's turned over to do the second side, the solder used on the first side doesn't quite melt.
Quote:
Quote:
When you can't put vias under pads, they take more board space. If you're going to solder this by hand, there may be no problem with putting vias in the pads.
Pololu and DirtyPCBs and probably many other companies as well offer a solderpaste-stencil-making service. I haven't tried them, but the other engineer who used to work at our company did, and was rather pleased. He only did a very small but dense board, for a switching regulator with the controller IC in a tiny MAX-10 package. You'll have to decide if it's worth it though, because I believe solderpaste is quite expensive and its shelf life is very short. If you only do one or two pieces, it might be worth it to do by hand, not just for this reason but because it also lets you put vias in the pads. I cannot speak from experience on the stencils. I put vias in the pads in the 4Mx8 10ns 5V SRAM memory modules I supply, since I knew I wasn't going to have enough sales volume to pay the set-up cost for automated assembly.
If price is no object, they can make vias down to .002" now, with a laser. I have no idea how they can get that plated through when the board thickness is thirty times the hole diameter! You still need a pad around the via though, at least on the layers that connect to it. The pads on non-connecting layers can be eliminated, possibly saving some space.
As for the 50Ω transmission lines, the precise characteristic impedance won't really matter if the load is not even remotely matched to the line. To match it, you would have to have terminations, and they take board space too, enlarging the board, making the lines longer. I don't know at what point it's worth it, or if your ICs can even drive such a heavy load. You probably might as well keep the traces down to whatever minimum width the board manufacturer can make without charging more than you want to pay (I've seen down to .002", and that was almost 30 years ago!), and then take advantage of the fact that that will let you make a smaller board with shorter connections. I think about these things but again have not had an occasion (so far) to go to this extent.
Dr. Howard Johnson goes into this stuff and a lot more in his book "High Speed Digital Design: A Handbook of Black Magic." Most of the information is available in his archived articles. These articles appeared as a column in one of the industry magazines and I cut them out and kept them in those years when they were being published. The book goes into more of the math though.
This is some rather extreme stuff, but a 100MHz TTL 6502 is definitely getting there.
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: 100MHz TTL 6502: Here we go!
GARTHWILSON wrote:
If price is no object, they can make vias down to .002" now, with a laser. I have no idea how they can get that plated through when the board thickness is thirty times the hole diameter!
I suppose they could also go from inner to inner, if these are opposite sides of same physical board layer.
Re: 100MHz TTL 6502: Here we go!
Arlet wrote:
Maybe insert a small diode between the 3.3V net and 2.5V pin ?
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
GARTHWILSON wrote:
As for the 50Ω transmission lines, the precise characteristic impedance won't really matter if the load is not even remotely matched to the line. To match it, you would have to have terminations, and they take board space too, enlarging the board, making the lines longer. I don't know at what point it's worth it, or if your ICs can even drive such a heavy load. You probably might as well keep the traces down to whatever minimum width the board manufacturer can make without charging more than you want to pay (I've seen down to .002", and that was almost 30 years ago!), and then take advantage of the fact that that will let you make a smaller board with shorter connections.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
If you choose to use a diode to drop the voltage, make sure you place your decoupling capacitors after the diode, near the 2.5V IC pin.
Re: 100MHz TTL 6502: Here we go!
Rather than creating a detailed block diagram, I thought I might simply publish the Logisim file. It has the significant advantage of being already complete and accurate -- two important things that a detailed block diagram currently lacks!
For those that do not have Logisim, I have include here a png image which can be zoomed into to reveal all the CPU circuitry: For those that do have Logisim, I am using Logisim "Evolution". When you load the C74-100 circuit file, you will be greeted by the following: To set the CPU running the Dormann Test Suite:
You will find the following files the attached zip file:
As always, I would be happy to answer any questions or provide any additional explanations.
Cheers for now,
Drass
EDIT: Added link to Logisim Evolution
For those that do not have Logisim, I have include here a png image which can be zoomed into to reveal all the CPU circuitry: For those that do have Logisim, I am using Logisim "Evolution". When you load the C74-100 circuit file, you will be greeted by the following: To set the CPU running the Dormann Test Suite:
- Right click on the RAM module and select "Load Memory Image"
- Load the file "Test_6502_RAM_Image" included in the attached zip file
- Set the RDY and BE pins to "1"
- Start the clock
- Press the "RES" button.
You will find the following files the attached zip file:
- C74-100 Critical Path (V1).pdf -- a detailed listing of all signal paths through the CPU with estimated tpd
- C74-100 Decoder Values (V1).pdf -- a table showing the encoding used for both microinstruction and instruction decoding
- C74-100 V1.circ -- the Logisim file
- Test_6502_RAM_Image
As always, I would be happy to answer any questions or provide any additional explanations.
Cheers for now,
Drass
EDIT: Added link to Logisim Evolution
- Attachments
-
- Attachments.zip
- (1.94 MiB) Downloaded 111 times
Last edited by Drass on Wed Nov 25, 2020 2:50 pm, edited 1 time in total.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
Hi Drass,
It looks very professionaly done and works very well.
Maybe it needs to be clarified that this is intended to run on Kevin Wash "Logisim Evolution" fork, a.k.a Logisim Holy Cross Edition; unless I am using a wrong version, it actually does not load on the mainstream reds-heig version. Just in case you were not aware of it, the Holy Cross edition also features the File Viewer component, which when properly formatted, allows you to visually display the assembly source file, with the currently fetched instruction highlighted. I really love that.
From your simulation I learned that it is a lot more effective (read faster) to just build the model out of native logisim components, than attempting to emulate 74xx ics down to logic gates as I've been doing so far. Btw, I like the D.IN, D.OUT trick to get memory out of the 6502 subcircuit.
Drass wrote:
For those that do have Logisim, I am using Logisim "Evolution". When you load the C74-100 circuit file, you will be greeted by the following:
Maybe it needs to be clarified that this is intended to run on Kevin Wash "Logisim Evolution" fork, a.k.a Logisim Holy Cross Edition; unless I am using a wrong version, it actually does not load on the mainstream reds-heig version. Just in case you were not aware of it, the Holy Cross edition also features the File Viewer component, which when properly formatted, allows you to visually display the assembly source file, with the currently fetched instruction highlighted. I really love that.
From your simulation I learned that it is a lot more effective (read faster) to just build the model out of native logisim components, than attempting to emulate 74xx ics down to logic gates as I've been doing so far. Btw, I like the D.IN, D.OUT trick to get memory out of the 6502 subcircuit.
Re: 100MHz TTL 6502: Here we go!
joanlluch wrote:
it is a lot more effective (read faster) to just build the model out of native logisim components, than attempting to emulate 74xx ics down to logic gates as I've been doing so far.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
Drass wrote:
but you do need to keep the 7400 series ICs in mind as well. In this case I’ve marked various Logisim components with the 7400 series equivalents I intend to use. I’m also careful to reflect the correct pinouts. For example, I put inverters in front of inputs which I know are active-low on the 7400 series ICs but are active-high in Logisim. That keeps the logic straight from the start.
Re: 100MHz TTL 6502: Here we go!
Btw, I don’t quite get how you perform the sbc function in the model. That should require the negation of one of the ALU inputs and I was curious about how that would add to the FET adder propagation delay. I’ve been looking for XOR gates at one of the ALU inputs but I can’t see them. Please can you elaborate on this?
Re: 100MHz TTL 6502: Here we go!
joanlluch wrote:
Btw, I don’t quite get how you perform the sbc function in the model.
C74-6502 Website: https://c74project.com
Re: 100MHz TTL 6502: Here we go!
joanlluch wrote:
Since I already had many 74xx ics modelled in sub circuit boxes I just have now replaced their down-to-logical-gates implementations by native logisim components at the bottom level, and it’s definitely much faster.
C74-6502 Website: https://c74project.com