??? 10/15/07 21:19 Modified: 10/15/07 21:24 Read: times |
#145786 - sure they are unrelated.... Responding to: ???'s previous message |
... except they are both conceptual, taken out of thin air.
Richard Erlacher said:
I hope you'll forgive me for being critical. Oh, au contraire, I pray you be critical. That's why this thread is started. Richard Erlacher said:
I see no relation between the QX6 and the 805x, Sure, as I said, there is none, except what I've written in the subject of this post, and the desire to be able to express myself. Richard Erlacher said:
and, frankly, I find the illustrations confusing and disjointed. Although I am not happy to hear this, most probably this is what I needed to hear. Richard Erlacher said:
The drawings seem to mix software concepts with hardware concepts quite randomly I don't quite see how could I "ware" more "hard". What I've drawn is just a step away from a regular schematics... Richard Erlacher said:
and shed little light on how the data paths are concatenated to perform core operations. Well, than I really don't know how to do it. Richard Erlacher said:
The first block doesn't suggest how operations are performed, nor does it suggest what the operations are. It was the intention of the drawing to show, that the drawing itself (which is close to the actual schematics) is not enough to convey this information. Richard Erlacher said:
It looks to me as though the drawing contains an assortment of logical components that were known to be needed, but shows little about how they're interconnected or how they interact to accomplish the operations. There's one thing which is maybe not common in this sort of drawings, I did not draw the actual data bus (which is the only bus in the design). I replaced it by a box with letters "DB" inside. That is certainly confusing, but I spared quite a bit of long lines, which I don't draw too well. Richard Erlacher said:
What's more, there's not much information presented about how the thing works. That is supposed to be in the description. Richard Erlacher said:
What causes things to happen? The clock. Richard Erlacher said:
How is the PC incremented and when? The PC is a reloadable synchronous counter ('161/'163 or such). I don't care what's inside, for me it's a blackbox - as I said many times, I don't know the relative cost of the building blocks anyway, and I am sure this changes from technology to technology (74xx -> CPLD -> FPGA -> GA/SoG -> SC -> raw transistors). It's incremented upon each and every leading edge of the clock, except when the opcode register contains a JMP instruction, when it is loaded from the JUMP register rather than incremented. Richard Erlacher said:
How is it loaded? When the opcode register contains a JMP instruction, the content of JUMP register (which had to be previously set up - rather tediously) it is synchronously loaded at the leading edge of the clock. Richard Erlacher said:
How is it connected to the address bus? There is no address bus. The output of PC is connected directly to the addresses of the code memory (ROM). Richard Erlacher said:
Is there a stack? As it is usual in RISC, there is no stack. Upon each jump, the next address after the address containing the JMP instruction is stored in the return register. It is the responsibility of the user to read the return register and store it wherever he wants, or just ignore it. It is also the responsibility of the user to copy the return register into the jump register, if he wants to perform a return (there is no explicit return instruction, just the JMP). I promised a quintessential RISC, no complex redundant instructions, just the very rudimentary ones... :-) Richard Erlacher said:
What is the role of the "general purpose registers"? Well, store any data the user might find important to store... What else would you expect from "general purpose registers"? Richard Erlacher said:
What operations does the ALU support? Whatever you want. There are 64 ALU operations to burn. I'd certainly implement addition/subtraction with/without carry, shifts and rotations (barrel shifts are not out of reach, data width is only 6 bits, the barrel shift can be performed from both sources that's 11 shifts both direction, or combinations of it), and/or/xor - well, I think we have still at least half of the available operations left... Suggest some if you want. The basic implementation would be a 27C040 EPROM (or equivalent FLASH), that's a full matrix of 19 bit input to 8 bit output (6 data bit, carry and zero flags). Richard Erlacher said:
There's apparently a clock. What purpose does it serve? To keep the things running. The whole thing is running on a synchronous counter (the PC) and a bunch of latches, that's all. I don't think I could draw this much better on a computer. If the operation of the thing is not clear from the drawing, the straighter lines would be of no more help... Would a real schematics help? JW |