主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃
一般用于编写简单的逻辑,比如,译码电路。cpld的逻辑功能是用户自行设定的。这个编程过程一般是用户首先用vhdl/verilog语言或原理图编写“源代码”,然后用厂商提供的工具把代码编译成二进制image,然后烧写进cpld。
cpld也可以在运行的时候动态修改,但一般不会这么用,因为cpld里面一般用flash存储image,flash的写入次数是有限的。
如果需要运行时刻动态加载,可以使用fpga,二者内部结构不同,但功能基本相同。主要的不同点是,cpld一般密度较小,用来实现不同芯片之间的"粘合",而fpga可以用来实现复杂的功能,如usb, uart,codec等等。
手机CPU因为体积的原因,很多把cpu、flash、ram封装在一起,形成一个多功能芯片,也有把flash和ram单独封装在一起的。
能做软件"加速"功能的一般是FPGA,fpga内部有很多乘法器,ram,很容易实现并行运算,比如fft这类需要数组乘法的东西,用fgpa可以在几个时钟周期内完成一个大的数组运算。
软件访问fpga的加速功能,通常要把fpga挂在cpu的总线上,模拟成一片ram,这样软件就可以把数据写到fpga里面,完成运算后再读出来。
codec不知道你说的是哪种东西,软件的codec通常说的是音频编码格式的转换,硬件的codec一般是adc/dac,嵌入式cpu通常都内置音频的codec。也可以在fpga里面实现,但是量产产品基于成本考虑一般不用fpga做复杂的逻辑。
成本上来说,定制芯片(如S3C2440)通常叫做ASIC,制造成本低,设计成本高,适合大量生产的产品,而cpld/fpga设计成本低,制造成本高,适合量比较小的东西。
- 相关回复 上下关系8
压缩 5 层
🙂注意这两条 1 邓侃 字145 2009-03-02 16:07:51
😁看样子在这里讨论硬件要歪楼吃披萨。 1 素里太守 字58 2009-03-02 16:15:21
🙂又是一个大坑 4 邓侃 字790 2009-03-02 07:04:59
🙂CPLD
🙂试着答一下 4 密银 字465 2009-03-02 11:50:20
🙂CPLD的作用 1 邓侃 字178 2009-03-02 16:02:29
🙂CPLD是硬件逻辑不是软件程序 5 密银 字543 2009-03-02 18:04:42
🙂有个帮手的感觉真爽。花谢。 1 WiFi 字0 2009-03-03 02:30:54