我做过FPGA的相关verilog编写;这种情况下一般是用寄存器打拍,例如:
always@(clk)
begin
reg1<= input;
reg0<=reg1;
end
input经过两次clk打拍后,reg0就是与clk同步的信号
这是我的理解,希望能帮到你,有错误也请指正
CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。
其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。
关于FPGA和CPLD:
1CPLD早出来,是基于乘积式的
FPGA晚出来,是基于查表式的,
就是说内部结构不一样
2乘积式对于每次输入都很勤劳的算一遍
查表式根据输入查找对应的结果,是很偷懒的一种
查表式对应的结果哪里来
就是由EDA软件来算的,最后将得到的结果配置到FPGA里
由此可以理解为FPGA就是一个RAM
3既然是RAM,FPGA就需要配置芯片(譬如FLASH),CPLD不要
4FPGA门电路数量通常比CPLD多
5CPLD内部延时固定,FPGA内部延时不固定(在几ns之间变化)
6如果用于实现组合逻辑,多用CPLD;
用于实现时序逻辑,多用FPGA
当然都用FPGA也可以,不过两者各有各自发挥的优势(价格,功耗等方面)
总之,两者各有各自发挥的优势和适用的场合虽然硬件结构不同,但是对于编程者来说开发语言却是可以相同的,下面说下开发语言:
关于VHDL和verilog:
1VHDL和verilog综合出来效果是不太一样的, 但是对于一般用户没什么区别
2verilog的语法比较灵活(有点像C语言),适合设计规模比较小的系统
3VHDL语法相对来说比较严格,适合比较设计规模比较大的系统
4国内,欧美用verilog比较多,日本据说用VHDL比较多
我推荐学verilog,比VHDL语法灵活,更容易上手
FPGA和cpld在执行硬件描述语言上没有区别。cpld掉电不丢代码,保密性好一些,成本也低一些,当然资源也少一些,不适合做比较大的项目。
FPGA内部有PLL这个在倍频和相移等 *** 作时很方便。FPGA内部有RAM可以用来做fifo等类似结构来进行数据缓冲而不消耗逻辑单元。如果用cpld做则会消耗原本就不多的逻辑单元,cpld虽然内部有flash但 *** 作起来很麻烦,也占用有限的逻辑资源。高端一点的FPGA还可以装软核,内部有dsp等资源。随着FPGA价格降低,cpld快被淘汰了。cpld一般只是教学或做一些简单的组合逻辑。
硬件描述语言和逻辑图形设计有点类似于C和汇编。正如单片机编程一样都用C,做FPGA开发也都用硬件描述语言。用逻辑图形设计效率低很难进行大规模电路设计。硬件描述语言一般用verilog
CPLD是Complex Programmable Logic Device(复杂可编程逻辑器件)的缩写,代表的是一种可编程逻辑器件,它可以在制造完成后由用户根据自己的需要定义其逻辑功能。CPLD 的特点是有一个规则的构件结构,该结构由宽输入逻辑单元组成,这种逻辑单元也叫宏单元,并且 CPLD 使用的是一个集中式逻辑互连方案。]
以上就是关于关于CPLD编程问题:使用VHDL语言编写程序,使外部过来的脉冲信号与芯片内部的信号同步,去掉竞争全部的内容,包括:关于CPLD编程问题:使用VHDL语言编写程序,使外部过来的脉冲信号与芯片内部的信号同步,去掉竞争、cpld是什么、初学可编程IC,是选择FPGA还是CPLD语言是选择VHDL还是Verilog等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)