第十章从概念设计到芯片实现 信号处理的完整流程
第十章 从概念设计到芯片实现 ——信号处理的完整流程
10.1嵌入式系统及其开发流程 ·所谓嵌入式的系统,是指把单片的FPGA(Field Programmable Gate Array?现场可编程门阵列)或DSP (Digital Signal Processor数字信号处理器)芯片植入对 象的电路设备中,代替通用计算机,来完成对象的通 信、控制以及所有其他信号处理任务。与通用计算机 相比,嵌入式芯片具有体积小、重量轻、运行速度快、 便于集成、价格低、保密、工作可靠和便于大规模生 产等优点,所以适用于各种应用系统。统计资料说明, 从20世纪80年代出现这类系统以来,其所占有的市场 迅速扩大,目前已是通用计算机的几十至几百倍,而 且还在继续加大。可以预见,今后大部分信号处理系 统的开发人员在工作中所要面对的,将是这类系统
10.1 嵌入式系统及其开发流程 • 所谓嵌入式的系统,是指把单片的FPGA(Field Programmable Gate Array现场可编程门阵列)或DSP (Digital Signal Processor数字信号处理器)芯片植入对 象的电路设备中,代替通用计算机,来完成对象的通 信、控制以及所有其他信号处理任务。与通用计算机 相比,嵌入式芯片具有体积小、重量轻、运行速度快、 便于集成、价格低、保密、工作可靠和便于大规模生 产等优点,所以适用于各种应用系统。统计资料说明, 从20世纪80年代出现这类系统以来,其所占有的市场 迅速扩大,目前已是通用计算机的几十至几百倍,而 且还在继续加大。可以预见,今后大部分信号处理系 统的开发人员在工作中所要面对的,将是这类系统
这种单片集成电路可以把一个复杂的系统集成在一个 芯片上,所以也称为芯片上的系统(System On Chip一 SOC)。在硬件结构方面的特点,它采用了很多种专 门技术,来提高信号处理的速度。例如①大多数芯片 采用定点式数据结构;②大量采用流水线结构,使芯 片在同一个时间能执行多条指令,③设计了一些专用 的硬件计算结构,如专用的乘法累加器,专用的F℉T硬 件等,④创建多机并行的接口和功能,.等等,这些 都可以提高速度。随着半导体集成电路的发展,时钟 频率的提高,执行一条乘加(MAC)指令的时间己降 低到10ns以下。软件方面则是采用专用的直接指挥芯 片内部寄存器累加器运算的汇编语言,它的运算速度 虽然快,但也带来了开发上的难度
• 这种单片集成电路可以把一个复杂的系统集成在一个 芯片上,所以也称为芯片上的系统(System On Chip— SOC)。在硬件结构方面的特点,它采用了很多种专 门技术,来提高信号处理的速度。例如① 大多数芯片 采用定点式数据结构;② 大量采用流水线结构,使芯 片在同一个时间能执行多条指令,③ 设计了一些专用 的硬件计算结构,如专用的乘法累加器,专用的FFT硬 件等,④ 创建多机并行的接口和功能,…等等,这些 都可以提高速度。随着半导体集成电路的发展,时钟 频率的提高,执行一条乘加(MAC)指令的时间已降 低到10ns以下。软件方面则是采用专用的直接指挥芯 片内部寄存器累加器运算的汇编语言,它的运算速度 虽然快,但也带来了开发上的难度
·用汇编语言写代码是底层设计,比如算一个1024点FFT, 用MATLAB只是一条语句,而运行时却要执行15000多 次乘法和加法的代码,一个应用系统需要的代码可能 多达几百万、几千万条,无论编写、调试、验证都是 非常耗时而痛苦的一件事。开发周期长、容易出错是 最大的问题。许多芯片制造商一直在不断地改进其开 发环境,已经有了从C语言到各种芯片程序代码的编译 软件。 ·MATLAB可以在概念和数学上验证用户的设计思想, 对于一个复杂的系统,我们可以写出一套MATLAB程 序,验证它的功能。但是在把这个思想付诸实现时, 却需要另外写一套汇编程序。写这样两套程序来实现 同一种功能,本身就是一种极大的负担和浪费
• 用汇编语言写代码是底层设计,比如算一个1024点FFT, 用MATLAB只是一条语句,而运行时却要执行15000多 次乘法和加法的代码,一个应用系统需要的代码可能 多达几百万、几千万条,无论编写、调试、验证都是 非常耗时而痛苦的一件事。开发周期长、容易出错是 最大的问题。许多芯片制造商一直在不断地改进其开 发环境,已经有了从C语言到各种芯片程序代码的编译 软件。 • MATLAB可以在概念和数学上验证用户的设计思想, 对于一个复杂的系统,我们可以写出一套MATLAB程 序,验证它的功能。但是在把这个思想付诸实现时, 却需要另外写一套汇编程序。写这样两套程序来实现 同一种功能,本身就是一种极大的负担和浪费
·自然而然会想到,是不是可以由顶层设计出发, 自动地向下生成代码,并且可以把仿真、检验 等功能和工具也都成套地建立起来。当然,数 学概念和代码实现两者的约束条件是不同的, 比如一个滤波器的系统函数,其实现的信号流 图就有很多种;选定了一个信号流图,它所采 用的系数的字长和阶码又可以有多种选择;再 下去还有多种芯片可以选择;.读者不难想象 到,这是一个多级的变换链,需要多种不同的 工具在不同层次上完成特定的任务
• 自然而然会想到,是不是可以由顶层设计出发, 自动地向下生成代码,并且可以把仿真、检验 等功能和工具也都成套地建立起来。当然,数 学概念和代码实现两者的约束条件是不同的, 比如一个滤波器的系统函数,其实现的信号流 图就有很多种;选定了一个信号流图,它所采 用的系数的字长和阶码又可以有多种选择;再 下去还有多种芯片可以选择;…读者不难想象 到,这是一个多级的变换链,需要多种不同的 工具在不同层次上完成特定的任务