硬件設計熱門培訓內容之軟件與硬件設計的區別和聯系

時間:2018-12-06 17:16:06

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

軟件編寫的程序最終轉化為機器語言,并在硬件上執行。

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

也就是說,軟件設計的是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];
 

? 江苏快3号码表