---
# System prepended metadata

title: 'Lecture06: Digital System Design Flow'
tags: [數位系統設計]

---

###### tags: `數位系統設計`

:::info
[回共筆首頁](https://hackmd.io/zrsmsRtEQ-OrnGslDxT0NQ)
[回科目首頁](https://hackmd.io/vXoSKbhKRV2nufoPIyxgyQ)
:::
[上課投影片](https://moodle2.ntust.edu.tw/pluginfile.php/237264/mod_resource/content/1/L06_flow.pdf)
[TOC]
# Lecture06: Digital System Design Flow
## Example of a Complex Digital System
![](https://i.imgur.com/m9xVHAj.png)
- 設計系統最困難的部分，往往是在系統整合
- 台灣在這塊的能力相較於國外是比較弱的
- 因為台灣的學生比較不敢去 Challenge 既有的設計，沿用前輩留下來的成果，進一步優化、改良、研發。

## Design a Grading System 前段
- 需求
![](https://i.imgur.com/bkGhoEb.png =90%x)
- 先設計邏輯，但是是 Combinational Circuit，大部分的 Digital System 是 Sequential Circuit，所以會把他們分成階段性的工作 => **Data Flow**
![](https://i.imgur.com/JgUq1kp.png =100%x)
- 分成六個階段，同一個時脈去控制。
![](https://i.imgur.com/irFzuQv.png)
- 從中間綠色的圈圈可以發現，做五個 OR，可以只用一個 OR Gate 達成，因為這五次是在不同的階段，所以可以簡化設計的規則
:::warning
現在是用肉眼、人腦去簡化，在茲勳工程的幫助下，我們可以用演算法找出可以簡化的部分。
:::
## Design a Grading System 後段
:::info
IP (intellectual property) => 智慧財產
:::
- Floorplanning
    - 把我需要的邏輯閘規劃要如何擺放
    - 考慮需要用幾個 row 擺放，還有很多其他需要考慮的問題
    - 考慮的大方向
        1. **線路的複雜程度**，太複雜可能會接不出來，或是線變長 delay 時間變長，Performance 變差。
        2. **空間浪費程度**，浪費較少，可能會犧牲掉簡單的電路設計。
        
![](https://i.imgur.com/20yswe9.png =50%x)

- Routing
    - 選擇好要規劃的 Floorplanning，就可以接線
    - 原本的線叫做**飛線**（Flying line）
    - 實際的線路只有垂直跟水平的，步驟過程叫做 **Routing**
![](https://i.imgur.com/ZQSqvuW.png =60%x)

## CAD
- CAD - Computer-Aided Design
    - Design entry
        - 邏輯閘設計圖
        - HDL 硬體描述語言
            - Verilog, VHDL
    - Simulation 模擬
    - Physical realization 實際設計電路
        - ASIC, FPGA, PLD
## 研發流程
![](https://i.imgur.com/dlDGPTp.png)
- 一般來說，設計前段會使用 Top-Down 的方式設計，而且是使用硬體描述語言。

## Traditional Waterfall Model
![](https://i.imgur.com/AtfvEpF.png)

## Spiral SOC Design Flow
![](https://i.imgur.com/LTChyCe.png)
- 目前主流的 Design Flow