Professional Documents
Culture Documents
<rehan.hafiz@seecs.edu.pk>
http://lms.nust.edu.pk/
Acknowledgement: Material from the following sources has been consulted/used in these slides: 1. [CIL] Advanced Digital Design with the Verilog HDL, M D. Ciletti 2. [SHO] Digital Design of Signal Processing System by Dr Shoab A Khan 3. [STV] Advanced FPGA Design, Steve Kilts 4. Some slides from : [ECEN 248 Dr Shi]
Tuesday @ 5:30-6:20 pm, Friday @ 6:30-7:20 pm By appointment/Email VISpro Lab above SEECS Library
1 2 3
3
Introduction Verilog+ Combinational Logic Verilog + Sequential Logic Synthesis in Verilog Micro-Architecture <Micro-Coded-Machines> Optimizing Speed Optimizing Area FIR Implementation CDC Issues Fixed-Point Arithmetic Adders Multipliers CORDIC Algorithmic Transformations for System Design Algorithmic Transformations Project Project
4 5 6 7 8 10 11 12 13 13 14
Outline & Introduction, Initial Assessment of students, Digital design methodology & design flow Combinational Logic Review + Verilog Introduction, Combinational Building Blocks in Verilog Sequential Common Structure in Verilog (LFSR /CRC+ Counters + RAMS), Sequential Logic in Verilog Synthesis of Blocking/Non-Blocking Statements Design Partitioning + RISC Microprocessor + Micro architecture Document Architecting Speed in Digital System Design: [Throughput, Latency, Timing] Architecting Area in Digital System Design: [Area Optimization] FIR Implementations + Pipelining & Parallelism in Non Recursive DFGs Cross-Clock Domain Issues & RESET circuits Arithmetic Operations: Review Fixed Point Representation Adders & Fast Adders Multi-Operand Addition Multiplication , Multiplication by Constants + BOOTH Multipliers CORDIC (sine, cosine, magnitude, division, etc), CORDIC in HW DFG representation of DSP Algorithms, Iteration Bound & Retiming
15
16 17
Rule
If
n = 1, one-to-one mapping is the only option. If n >1, there are opportunities to save hardware
Algorithm Mapping
5
n=1
n>1
recursive
Time Folding
Rolling
up the pipeline
Logic Reuse the required components
Function Multiplexing
Control based
Resource Sharing
Intelligently minimizing
<Technique-1>
Time Folding
7
Sharing logic resources that are repeated across pipeline stages Useful for recursive dataflow So how can we Roll-up ???
[STV]
[STV]
<Technique-1>
A multiplier may be architected with an accumulator that adds a shifted version of A depending on the bits of B
No
special control signals A counter to tell: when to stop the shift and add
a3 a3 a3b0 a3b1 a3b2 a3b3 a2b3 a2b2 a1b3 a2b1 a1b2 a0b0
b1 b1 b1b0 b0b1
b0 b0 b0b0
a0a3
a0a3 a0a3 a0a3 a0a2 a0a2 a0a1 a0a2 a0a1 a0a0
a0a2
a0a1 a0a0 a0b3
a0a1
a0a0 a0b3 a0b2
a0a0
a0b3 a0b2 a0b1
a0b3
a0b2 a0b1 a0b0
a0b2
a0b1 a0b0
a0b1
a0b0
a0b0
[STV]
12
[STV]
This is confusing
[STV]
[REF-Required-to-be-added]
Shift Sample Memory ONLY on arrival of a new Sample During every cycle compute 1 product
higher-level architectural resource sharing Can be used whenever there are functional blocks that can be used in other areas of the design or even in different modules
Any idea ?
55.8KHz
System Timer ?
55.8KHz