关于FPGA和CPLD:
1.CPLD早出来,是基于乘积式的
FPGA晚出来,是基于查表式的,
就是说内部结构不一样
2.乘积式对于每次输入都很勤劳的算一遍
查表式根据输入查找对应的结果,是很偷懒的一种
查表式对应的结果哪里来?
就是由EDA软件来算的,最后将得到的结果配置到FPGA里.
由此可以理解为FPGA就是一个RAM
3.既然是RAM,FPGA就需要配置芯片(譬如FLASH),CPLD不要
4.FPGA门电路数量通常比CPLD多
5.CPLD内部延时固定,FPGA内部延时不固定(在几ns之间变化)
6.如果用于实现组合逻辑,多用CPLD;
用于实现时序逻辑,多用FPGA
当然都用FPGA也可以,不过两者各有各自发挥的优势(价格,功耗等方面)
总之,两者各有各自发挥的优势和适用的场合.虽然硬件结构不同,但是对于编程者来说开发语言却是可以相同的,下面说下开发语言:
关于VHDL和verilog:
1.VHDL和verilog综合出来效果是不太一样的, 但是对于一般用户没什么区别
2.verilog的语法比较灵活(有点像C语言),适合设计规模比较小的系统
3.VHDL语法相对来说比较严格,适合比较设计规模比较大的系统
4.国内,欧美用verilog比较多,日本据说用VHDL比较多
我推荐学verilog,比VHDL语法灵活,更容易上手. |