All cards Flashcards
Propagation delay
Time between the input changing and the output responding.
Behaves as you would expect
Inertial delay
Exists due to capacitances in the gates. Similar to propagation delay, but if pulses are too small (shorter than the inertial delay) then the output will not respond to it
Transport delay
Time taken for a signal to propagate along a wire.
0 for an ASIC but matters for PCBs etc
Verilog ‘net’
Connect things together, like wires in am actual circuit
Verilog ‘registers’
Hold information. ‘Variable’ data type
Verilog ‘wires’
Default for ports. They take the value from the circuit driving them, but don’t store it. Like a multimeter in a circuit. ‘Net’ data type
Verilog ‘integers’
Used for numerical stuff. -ves are done using 2’s complement
Logic synthesis
Going from a behavioural model of how you want a system to behave, to an actual implementation of that system
Dataflow models
Models a combinational logic system as data with operations performed on it. Are synchronous
Register Transfer Level (RTL) dataflow model
A dataflow model that focuses on operations performed on data as it goes between registers
Transparent latch
A module with 2 inputs - 1 data in, 1 input boolean. The output will either equal the data in or maintain its current state, depending on the input boolean
Combinational behaviour
Output is ONLY a function of the present inputs (no memory)
Sequential behaviour
Output is a function of present AND past inputs (has memory)
Verilog ‘initial’ block
Runs once, never repeats. Similar to a setup loop. Single pass behaviour
Verilog ‘always’
Cyclic behaviour - can execute many times. Executes when there is an ‘event’ (change to a variable) on its sensitivity list
Blocking assignment
Evaluated and assigned in a single step. Execution flow in the procedure is ‘blocked’. Statement must be executed before further statements can execute
Non-blocking assignment
2 stage - RHS processed immediately but assignment is delayed. Waits until other evaluations in the current time step have been done. Flow is not blocked. Outcome is independent of the ordering of statements
Instruction Set Architecture (ISA)
The set of instructions (in assembly code) that a system can perform (e.g. ADD, MOV etc)
Arithmetic Logic Unit (ALU)
Made up of an arithmetic part and a logic part, with select lines to choose one. Receives DATA from memory or registers
Control Unit (CU)
Controls the interpretation of instructions (e.g. fetching operands). Fetches machine language INSTRUCTIONS from memory and decodes them
Von Neumann Architecture
Has a single memory interface used for both code and data. It is up to the programmer to make sure that the interpretation is correct
Harvard Architecture
Has 2 separate memory interfaces for data and code
Tristate buffer
3 output states - high, low or high-Z
Why is the (Memory) Address Register required if there is already a Program Counter
The AR can be used for holding both instructions and data- the AR is a convenient place to store the data. Also, latching the address of instructions in the AR means that the PC can be incremented at the same time as an instruction fetch
Why are bi-directional buffers needed to connect the data bus to memory chips?
Data goes between the CPU and memory via the bus.
When writing to memory: The buffers are needed to drive the memory because the CPU does not have the capacity to drive them on its own. The buffers are placed on the bus rather than the CPU itself because of power consumption limitations.
When reading from memory: The bus is noisy, so Schmitt triggers are used
Why is the Instruction Register necessary
It provides the input to the FSM, and this value needs to be consistent. The FSM output goes to the control path, so if the input to the FSM changed then operation would be unpredictable
Why does the Program Counter need access to the internal data bus?
In order to carry out jump instructions - a value has to be loaded in
Microcode
A sequence of hardware-level control words, used to implement higher-level machine code instructions. The microcode sequences are held in ROM, which is connected to control inputs of the CPU’s internal components.
Hardwired control
Instructions are implemented in hardware - e.g. a block of multipliers and adders to make up an instruction. An FSM picks between the blocks of logic to use, based on the op-code.
Give the benefits and disadvantages of microcode vs hardwired control
Hardwired control is faster, but it is in hardware so can only be changed by changing the hardware. It is better for RISC processors as there are fewer instructions. Microcode is easier to design and modify and is much better for complex instructions. But it is slower so it can be less efficient if complex instructions are rarely used.