軟體與硬體設計的區別和聯絡
阿新 • • 發佈:2019-01-08
軟體設計指的是程式設計,硬體設計也是程式設計,但兩者是有區別的。
軟體編寫的程式最終轉化為機器語言,並在硬體上執行。
硬體編寫的程式最終轉化為電路,以實體的形式被製造出來。
也就是說,軟體設計的是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];