新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 業(yè)界動(dòng)態(tài) > 為什么硬件設(shè)計(jì)容易軟件難?

為什么硬件設(shè)計(jì)容易軟件難?

作者: 時(shí)間:2015-07-06 來(lái)源:eettaiwan 收藏
編者按:因?yàn)橛布辛烁嗟哪K,及其解決方案,給人一種假象:硬件設(shè)計(jì)好像很簡(jiǎn)單的一樣,實(shí)際呢,硬件設(shè)計(jì)才真正是考驗(yàn)功底的。

  或許是我個(gè)人對(duì)于硬體的偏見(jiàn)吧!但根據(jù)我多年來(lái)的觀察,在嵌入式領(lǐng)域的硬體設(shè)計(jì)一向比軟體設(shè)計(jì)更簡(jiǎn)單。我在此所指的主要是指數(shù)位硬體設(shè)計(jì),它能利用具有清楚定義輸入與輸出的邏輯模組。幾年前,你只需利用幾個(gè)LSI(大規(guī)模整合)與MSI(中等規(guī)模整合)元件,加上一些記憶體,然后連接在印刷電路板(PCB)上即可。這種硬體設(shè)計(jì)(至今仍然)是非常簡(jiǎn)單的。

本文引用地址:http://butianyuan.cn/article/276819.htm

  如今,你可能會(huì)使用、記憶體,甚至一顆MCU。你還會(huì)用到一、兩個(gè)電源模組與連接器,以便連接到其他板卡或機(jī)箱。你甚至還可能利用一款無(wú)線周邊元件或一顆類比數(shù)位轉(zhuǎn)換器(ADC)。

  無(wú)論如何,這些都是非常明確定義的“模組”,具有標(biāo)準(zhǔn)的介面與匯流排。即使是,你也只是用了相同的設(shè)計(jì)手法——除非你得將幾個(gè)預(yù)定義的功能(IP核心)連接至標(biāo)準(zhǔn)的匯流排、記憶體以及幾個(gè)固定功能的周邊。

  這樣的設(shè)計(jì)模式相當(dāng)簡(jiǎn)單,而且已經(jīng)成功實(shí)現(xiàn)數(shù)十年了。只需連接一些明確定義的高性能模組(但我們?cè)谠騃P核心中整合的功能越多,這些模組也越變?cè)酱?,就可以創(chuàng)造出所需的系統(tǒng)或子系統(tǒng)。一個(gè)搭載以及標(biāo)準(zhǔn)元件與連接器的典型電路板案例是Diligent Inc.針對(duì)Xilinx Zynq SoC FPGA系列推出的Zybo開(kāi)發(fā)套件。



  硬體設(shè)計(jì)并不難

  然而,當(dāng)你必須為MCU或FPGA編寫軟體時(shí),最棘手部份才算開(kāi)始。硬體設(shè)計(jì)人員解決問(wèn)題的方式可能是先問(wèn):“哪里有明確定義的模組可讓我用來(lái)打造軟體設(shè)計(jì)?”

  我們會(huì)期待有高性能模組所用的介面、預(yù)先定義的記憶體模組來(lái)保存各種結(jié)構(gòu)、圖表與初始化向量。有許多時(shí)候,硬體模組能夠輕松地利用參數(shù)與初始化暫存器加以客制化。但專為通用演算法與結(jié)構(gòu)所用的客制化編碼模組在哪里呢?

  現(xiàn)在,我們也許能幸運(yùn)地找到馬達(dá)控制演算法或一些相當(dāng)高階的數(shù)位訊號(hào)處理功能,但擁有無(wú)縫連接主模組的通用介面或記憶體緩沖結(jié)構(gòu)的機(jī)會(huì)有多大?也許目前有許多驅(qū)動(dòng)器可用于連接至UART或乙太網(wǎng)路(Ethernet)埠等介面元件,但那些通常只是較低階的功能,主要在于使其易于控制MCU或FPGA上的硬體。

  所以,我認(rèn)為嵌入式軟體十分復(fù)雜,因?yàn)楣餐O(shè)計(jì)“流程”必須從頭開(kāi)始打造。嵌入式軟體設(shè)計(jì)并不容許直接套用硬體的設(shè)計(jì)“流程”——像硬體世界一樣提供一連串具有通用“匯流排”的標(biāo)準(zhǔn)軟體“元件”選擇。

  但我經(jīng)常只是想編寫幾個(gè)控制部份,可能再加上一種“特殊配方”的演算法。

  數(shù)位硬體領(lǐng)域可以采用這種模組化的方式,為什么在軟體設(shè)計(jì)時(shí)卻不能?



關(guān)鍵詞: 硬件設(shè)計(jì) FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉