tyler1313 wrote
When you say, "The clock is permanently connected to the simulator's system clock" and "all synchronous chips in HDL tick and tock", what is the system clock exactly and what does it mean to tick and tock?
The system clock is the "master clock" that makes sure that all the synchronous parts in the computer update (store their data and present new output values) at the same time. Physically the master clock is usually a crystal oscillator which is an electronic circuit that provides a periodic signal that has very stable frequency.
See 3.1 "Clock" for tick and tock; basically it means the clock changed from 0 to 1 or 1 to 0.
Is it just one wire that is connected to every single register in memory that is either a 1 or 0 at any given time? If so, what is that wire connected to? (what is the input coming from) I don't think that could be the case though because wouldn't that set every register to the 16 bit input value of the memory when the "system clock" changes to a 0?
The Registers are made from Bits that only load when their "load" input is true and the clock changes from 1 to 0.
As I understand currently, when the system clock changes to 0, this makes the register value equal to the input value (the input of the register), and when the clock is set to 1, this makes the register value the previous input value. While the clock is set to 1, the input value can change but the register value will remain the same (t-1). Have I misunderstood anything about this?
Master/Slave DFFs are tricky. Experiment with this one
http://www.play-hookey.com/digital/sequential/d_nand_flip-flop.htmlThe left 4 Nands are the Master Latch; the right 4 are the Slave Latch.
While CLK is 0, the D input is ignored. If you change it, the Master does not change its outputs.
While CLK is 0, the Slave tracks the output of the Master, but because the output of the Master can not change, the Slave does not change.
When CLK goes 0->1, the Slave is disabled so it no longer is tracking the Master.
While CLK is 1, the Master tracks the D input, and because the Slave is disabled, it does not change.
When CLK goes 1->0, the Slave loads the output of the Master and simultaneously the Master is disabled.
--Mark