Presentation on theme: "Ch.10 SoC Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology."— Presentation transcript:
Ch.10 SoC Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology
System Design Behavior Description Behavior Partitioning Behavior Design （ Algorithm design ） Discrete Time 、 Quantization 、 Precision Power, Cost, Interface Structure Design Parallel/Pipeline Processing High Level Synthesis (Scheduling/Allocation) SW/HW, Processor 、 ASIC 、 ASIP, IP Optimal Realization for required System Performance High Level Synthesis
System Specification the clarification of any possible ambiguity the careful definition of the project scope approximated costs for development Identification of competition subsequent improvement on their capabilities
System Design Target Platform / Computation model ASIP, Processor with or without RTOS, ASIC, FPGA Fixed Point Arithmetic Multiplication/ Division Memory Pin Assignment
10.1 Algorithm Design System Development Tool System Description Language Hardware Oriented Algorithm
a. System Development Tool MATLAB/SIMULINK MATLAB® is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. Using the MATLAB product, you can solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran. Control, DSP, Image Processing, Communication, Neural Network, Statics, Optimization, Differential Equations
Key Features High-level language for technical computing Development environment for managing code, files, and data Interactive tools for iterative exploration, design, and problem solving Mathematical functions for linear algebra, statistics, Fourier analysis, filtering, optimization, and numerical integration 2-D and 3-D graphics functions for visualizing data Tools for building custom graphical user interfaces Functions for integrating MATLAB based algorithms with external applications and languages, such as C, C++, Fortran, Java, COM, and Microsoft Excel
SystemC sc_prim_channel is the base class for all primitive channels, and provides such channels with unique access to the update phase of the scheduler. This standard provides a number of predefined primitive channels to model common communication mechanisms. Some of them are sc_mutex sc_fifo sc_semaphore
c. Hardware Oriented Algorithm Inner Product –Distributed Arithmetic- Hardware Algorithm for Inner Product DFT, DCT, Digital Filters Basic Idea Input data is decomposed into a group of bits. By replacing order of calculation in such a way that multiplication between coefficent and each bit is performed and accumulated at first and accumulate the results with shifting.
Bit Manupilation Inner Product Bit 2’s complement Representation of xn By substituting and changing an order of operations as, Realized by ROM with N-bits address and NBc-bits data
10.2 Architecture Design a. High Level Synthesis b. ASIP Design c. FPGA Design
a. High Level Synthesis Scheduling : to decide the time and Op unit for each operation. Allocation: to decide registers or memory to store the data Output: Data path and its control logic circuit are derived. CDFG: Control and Data flow Graph is constructed. Software Language (C/C++, System C) simulation is available on PC.
Alternative Method Systolic Array Low parallel Efficiency inefficient Data Memory Bottle Neck for I/O PE number uniquely decided Restricted to local communication between PEs Memory Sharing Processor Array （ MSPA) High parallel Efficiency Minimization of Data Memory Restriction to I/O ports Restriction to PE number Not restricted to local communication
MSPA Theory Find out appropriate cordinate Of Time and Space, which may Not violate the precedence Relation between operations.
Widow-MSPA I MSPA for Widow Operation Minimize I/O ports and decide #PE Fast Parallel Operation Flexible #PE and processing time Applicable various Image Processing such as motion vector search Window Image 出力
WINDOW-MSPA ARCHITECTURE WINDOW--MSPA Internal data parallel distribution network WPE Output Network Input Network External Image Data Memory External Output Data Memory Widow-MSPA II
① PE00 でデータを 9 クロックで受信して処理（ 1 行目ポート１、－ －－） ② PE01 でデータを 9 クロックで受信して処理（①より 1 クロック遅 れる） ③ PE02 でデータを 9 クロックで受信して処理（②より 1 クロック遅 れる） ④ PE03 でデータを 9 クロックで受信して処理（③より 1 クロック遅 れる） ⑤ PE04 でデータを 9 クロックで受信して処理（④より 1 クロック遅 れる） ⑥ PE11 でデータを 9 クロックで受信して処理（①より 3 クロック遅 れる） ① ② ③ ④ ⑤ ⑥ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ Widow-MSPA 理論 3 （ 1996-1998 ）
Problem Description [Problem] Find out a 3x3 direction type, Which is included the most among Line pattern in target image. [Software Solution] To count the number of direction Types among the line pattern In the target image.
Hardware Solution 1. Describe a direction pattern by 9 bit signals such as (000111111) for the first direction type. 2. Use each direction pattern as 9 bit address data of ROM, whose data is a increment signal of corresponding accumulation registers. ROM Address 9 bits Data 24 bits Direction Type 0 Direction Type 1 Direction Type 2 Direction Type 23 Increment signals Select the largest number in the registers Direction of Line pattern