软件与硬件设计的区别和联系
2011-02-08 14:02
901 查看
软件设计指的是编程,硬件设计也是编程,但两者是有区别的。
软件编写的程序最终转化为机器语言,并在硬件上执行。
硬件编写的程序最终转化为电路,以实体的形式被制造出来。
也就是说,软件设计的是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];
软件编写的程序最终转化为机器语言,并在硬件上执行。
硬件编写的程序最终转化为电路,以实体的形式被制造出来。
也就是说,软件设计的是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];
相关文章推荐
- 【设计模式】简单工厂模式、工厂方法模式和抽象工厂模式区别与联系
- TMS320C6678外部存储器SPI FLASH硬件设计以及软件调试
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 硬件电路设计基础:快恢复二极管与肖特基二极管的区别
- 概要设计与详细设计的区别与联系
- gdb里的软件观察点 (software watchpoint) 和硬件观察点 (hardware watchpoint)区别
- 承接中小外包项目、软硬件开发设计、毕业设计(430/51/凌阳/单片机/上位机软件)---长期有效
- SoC嵌入式软件架构设计之二:虚拟内存管理原理、MMU硬件设计及代码分块管理
- 设计模式之静态工厂、工厂方法和抽象工厂的联系与区别
- 概要设计和详细设计的区别与联系
- 天越室分设计软件和基于visio的设计软件的区别
- 软件断点和硬件断点及在调试PMON时应注意之区别
- 软件概要设计与详细设计的区别
- MVC框架(二)----前端与后端MVC、MVVM等设计模式区别与联系
- 概要设计和详细设计的区别与联系
- 硬件中断和软件中断以及中断与函数调用的区别
- 浅谈软件硬件联系
- Flash性能分析工具Adobe Scout(Monocle)与Flash反编译软件ASV2013有什么区别和联系?
- TMS320C6678外部存储器DDR3硬件设计以及软件调试
- 软件概要设计与详细设计的区别