HW SW Codesign Lecture2
HW SW Codesign Lecture2
HW SW Codesign Lecture2
Lecture -2
October 2017
Course Introduction – Class Example
An Example → Simple 4bit Multiplier → H I N T S
1. Assume for now that you only have an 8085 processor at 1MHz. How would you code
it.
• Think of left shift multiplicand, conditional add
2. Assume you have a 8bit multiplier hardware block, attached to the 8085 processor.
How would you code it.
• Think of sending operands to hardware block, read results.
• Cost of Area at the gain of higher throughput.
3. W hat would you do if you do have h/w flexibility, but not as much as a 8bit multiplier
block. A N D s/w flexibility that it’s ok if it is not a single cycle. In other words, its ok
to have a multiplier throughput of say 500kHz or 256kHz (two flavors).
• Think of sending operands to hardware block, read results.
• W hat will reduce Area at the expense of throughput.
• W hat is the system requirements, W hat is the sweet spot.
Key concepts
Validation Methodology
Analysis and Estimation :: Different models of the same system behavior need
to be analyzed and estimated for performance. Performance would include
tradeoffs for Area, Speed, Power. Cost to build, Time to Market are other
factors.
• Processor cores
• ASIC development
Cross-fertilization Between Hardware
and Software Design
VLSI SOFTWARE
DESIGN ENGINEERING
SOFTWARE VLSI
ENGINEERING DESIGN
• Cellular communications
Components of the Co-design Problem
• Specification of the system
• Hardware/Software Partitioning
• Architectural assumptions - type of processor, interface
style between hardware and software, etc.
• Partitioning objectives - maximize speedup, latency
requirements, minimize size, cost, etc.
• Partitioning strategies - high level partitioning by hand,
automated partitioning using various techniques, etc.
• Scheduling
• Operation scheduling in hardware
• Instruction scheduling in compilers
• Process scheduling in operating systems
• Modeling the hardware/software system during the design
process
Typical Codesign Process
System
FSM- Description Concurrent processes
directed graphs (Functional) Programming languages
SW HW
Another
HW/SW Software Interface Hardware
Synthesis Synthesis Synthesis
partition
• Analysis Paralysis :: Since there are many ways of doing it, there could be too
many factors which do not allow the system designer to take decisions. A few
ways of taking ”judgement” decisions are based on fixing a set of topmost
criteria and then working backwards.
• Systems becoming too complex to achieve accurate “first pass” design using
conventional techniques
• Incremental development
“Growing” software
Requiring top-down design
• Description languages
• Simulation
• Standards
4
Example
7
Example
9
Example
Problem Statement of a touch screen system – Requirements
1. Level 0 :: W hat are the basic components required
(a) An A D C which can do a ”voltage sensing”
(b ) A u P which can take in the Digital Input from A D C and do processing.
i. Write a small flow chart on how the data and control would flow from A D C to
u P and control the events based on touch.
1. Level 1 :: W hat are the basic components which we can fix (pin down)
(a) The technology node based on requirements
(b) The A D C
(c) The u P or D S P
2. Level 2 :: Can we prototype this system using off the shelf components
(a) Create the I P required to interface A D C with the u P / D S P busses. A dd any
hardware acceleration required.
Example
Problem Statement of a touch screen system – Design Block Diagram
12
Example
5. Send changes in touch status and position to the higher level graphics software.
13
Example
Problem Statement of a touch screen system – Software Design
Configure the controller hardware.
2. When the controller is in the detection mode and a touch is detected, an internal
interrupt can be generated called PEN DOWNIRQ.
3. This detection is based on Y-axis touch plane tied high, X-axis touch plane tied low,
and on the basis of touch the planes are shorted together and Y-axis plane is pulled
low.
14
4. The driver task would not consume any C P U time until the PEN DOWNIRQ event occurs.
It would wake up and go into conversion mode only once the user touches screen.
Example
Problem Statement of a touch screen system – Software Design
Acquire Stable, debounced position measurements – Reading touch data
1. In an ideal scenario, the calibration would be run once during initial product power up
and reference values saved in ”non-volatile” memory.
2. Create a function named TouchTask ( ) . This routine calls the actual task the user
intended to be run while using the touch screen.
16
Acknowledgements
3. http://www.eetimes.com/design/embedded/4006455/Writing-drivers-fo
common-touch-screen-interface-hardware
17