Week 5: Designing large combinational circuits 

[16/03, 17/03/] 

[P3P4] Other arithmetic circuits and Arithmetic and Logic Units (ALU) 
online 
Other basic operations in radix2: comparison, multiplication, bitshifting. Study the 1bit comparator complete tutorial example Comp_1bit, in this case a plan A (flat design based on an SoP structural architecture).
Other basic operations in radix2: multiplication. Play with an 8bit multiplier (Mult_8bit).
Other arithmetic circuits for 2C integers similar to the ones proposed in your PLA#1.2 (the design of a selectable_add_subt_comp_12bit) to allow further practice about the plan C2:
Play with an 8bit integer multiplier (Int_mult_8bit)
The circuit Int_comp_8bit has to include 3 outputs: GT (greater than) to detect when A > B, EQ (equal to) to detect when A = B, and LT (less than) to detect when A < B.
Let's discuss how to plan and implement the Int_add_subt_8bit. All the source VHDL files for this are stored in P4.
The general architecture of an arithmetic and logic unit (ALU): performing several operations in parallel and then selecting only one result. Example classic chip: 74LS181.

[23/03, 24/03, 30/03] 

[P4] Planning circuits for maximising processing speed. [P5] Chapter II: Sequential systems. 1bit asynchronous memory cell: RS latch 
online 
 The introductory ideas on propagation time in logic circuits, technology flat schematic for a target chip and its postsynthesis model in VHDL (the VHO file)
This is the Project D in P3: A 4bit carrylookahead adder. The idea of a circuit's processing speed. Comparing internal design strategies: ripplecarry versus carry lookahead. All the necessary files are in this link.
Thus, to summarise this lesson, two kind of experiments are possible:
(1) A circuit synthesised for different PLD's. Different technologies or different vendors imply different speeds of processing.
(2) A circuit planned using different strategies synthesised in a given PLD. For instance, a ripplecarry and a carry lookahead adder will have different speeds of processing. Tutorial on the design of the Adder_4bit using carrylookahead techniques.

Let's start the Chapter 2 on sequential circuits discovering the RS latch that works like this.
This device allows writing and reading a bit of data, and thus implements the memory of a digital circuit, which is a fundamental concept.
The first question to rise is: How to build a RS latch from logic gates that you know from Chapter 1?

[27/03, 03/04] 

[P4] Radix2 and 2C numbers and circuits. Measurement of a circuit's operational speed Circuit propagation delay. Gatelevel simulation for circuit's propagation delay measurement 
online

A final layout of the main topics to be covered of arithmetic circuis and technologies.
The basics of propagatio delays. This is the tutorial on gatelevel simulation and the timing analyser tool: Measure the maximun speed of processing for a given target chip of the Int_Add_Subt_8bit in P4. All the necessary files for developing and testing this circuit.
In the lab we have some commercial CPLD and FPGA target chips where to synthesise our circuits. For instance:
CPLD  FPGA  
Xilinx  XC2C256TQ144  7  Spartan3E XC3S500EFG320 
IntelAltera  MAX II EPM2210F324C3  Cyclone IV EP4CE115F29C7N 
Lattice  ispMach4128V TQFP100  MachXO 

Let's repeat again with another example: use the 10bit binary adder required in the PLA#1.2 (Adder_10bit) for demonstrating both, how to translate a plan C2 schematic into VHDL, and how to measure the propagation delay of a circuit. Let's use for instance the Adder_8bit plan and VHDL file to copy and adapt them in this session.
Outcomes: These are example files developed in the session: Entity Adder_10bit, Plan C2 for the Adder_10bit, and the VHDL file Adder_10bit.vhd, which has the components Adder_4bit.vhd and Adder_1bit.vhd the tutorials. This is a convenient testbench Adder_10bit_tb.vhd.
And finally, which is the difference between a ripple carry and a carrylook ahead adder?
Other ideas
 Discuss the method of the plan C2 to implement larger circuits using simpler blocks hierarchically:
Examples of proposed arithmetic circuits: Adder_8bit  Int_add_subt_8bit, Comp_8bit  Int_comp_8bit, Mult_8bit  Int_mult_8bit, etc.
Examples of proposed logic blocks built on expanding circuits of the same kind (plan C2): Octuple_Mux_4 (Mux_2), Dec_4_16 (Dec_2_4), Enc_10_4 (Enc_4_2), etc.
 Discussion and Q & A on the Selectable _add_subt_comp_10bit for the PLA#1.2.