1. 程式人生 > >軟體與硬體設計的區別和聯絡

軟體與硬體設計的區別和聯絡

軟體設計指的是程式設計,硬體設計也是程式設計,但兩者是有區別的。

軟體編寫的程式最終轉化為機器語言,並在硬體上執行。

硬體編寫的程式最終轉化為電路,以實體的形式被製造出來。

也就是說,軟體設計的是0/1的二進位制碼,硬體設計的是實際的電路。

但既然硬體設計也是通過程式設計實現的,那麼,軟體工程遵循的原則也應該適用於硬體設計。

比如:需求分析/程式設計規範/版本控制等等。

在具體的程式設計上,由於衡量準則/操作顆粒度不同,對程式設計的要求也不同。

軟體的衡量準則是時間複雜度和空間複雜度,硬體的衡量準則是工作頻率,面積,功耗。

軟體操作的最小單位絕大多數是位元組,硬體操作的最小單位是位元。

這些不同是造成軟體設計和硬體設計區別的最大原因。

例:計算數的二進位制表示中1的個數,如,5的二進位制表示是101,1的個數為2,7的二進位制

表示是111,1的個數是3。

軟體的解決方法是:

num=0;

while(n!=0) {

    n = n & (n-1);

    num++;

}

硬體的解決方法是:

assign num[6:0] = n[0]+n[1]+n[2]+...+n[31];