关于fpga/cpld的不可综合语句

作者&投稿:貊容 (若有异议请与网页底部的电邮联系)
CPLD与FPGA有何区别?~

******FPGA基于SRAM的架构,集成度高,以LE(包括查找表、触发器及其他)为基本单元,有内嵌Memory、DSP等,支持IO标准丰富。具有易挥发性,需要有上电加载过程。在实现复杂算法、队列调度、数据处理、高性能设计、大容量缓存设计等领域中有广泛应用,如Altera Stratix系列。
******CPLD基于EEPROM工艺,集成度低,以MicroCell(包括组合部分与寄存器)为基本单元。具有非挥发特性,可以重复写入。在粘合逻辑、地址译码、简单控制、FPGA加载等设计中有广泛应用,如Altera MAX3000A系列。
********详细比较:尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点
①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

CPLD/FPGA 和 单片机是不同的。

VHDL,verilog是FPGA(或cpld)的编程语言。着两种都是硬件编程语言,也就是对硬件进行逻辑综合编程。

单片机是“已知硬件”,也就是说硬件都已经设计好了,需要做得是软件编程,一般是用C或汇编。

当然,做FPGA做到复杂的时候(操作系统)也要用到C编程。

说清楚了吧^_^

你好
1.不可综合语句既然不能对应生成电路,貌似是用来仿真的(可以这么说吧?),那么我们在程序中写它不就是没什么实际意义了么?反正不生成电路,写了反倒显得的程序复杂了,搞不清那些可综合那些不可以(我知道这么想不对,但是就是不明白)
第一,注释也是非常重要的,良好的代码中至少要有三分之一是注释。
第二,随着FPGA的快速发展,目前最大规模已经达到200万个查找表。仿真也是一个非常大的工程,不可综合的断言、延时、宏等语句在仿真之中可以起到非常大的调试作用。当您的代码在数万行之上,您会发现其强大的作用。这些不可综合的语句在很大的程度上是给您调试和测试工程师增加的方便。
2.我想设计一个简单的计数器,那么计数器重置时初值该如何赋给?
always @ (posedge clk)
begin
if(reset==0)
dout=12'b1;
else
dout=dout+1;
end
这样写合适么? 在程序中直接给一个值?这样可综合么?(初始值是确定的,不会变,我想不用设置成input吧)
第一:此逻辑是时序逻辑,那么需使用无阻塞赋值。
always @ (posedge clk)
begin
if(reset==0)
dout <=12'b1;
else
dout <=dout+1;
end
第二:计数器的第一个计数周期没有0是从1开始计数的,而计数越界之后会从0开始计起。
第三:程序用复位赋初值的思想没错!但要在敏感信号列表中这样写
always @ (posedge clk or negedge reset)
加入reset信号
呵呵

=和<=要规范,复位值可以的reset后跟的就是了。

1. 你平时所使用的Verilog语言,最多只是RTL级的代码。因此,你只能用到综合代码,最多仿真时所使用的语句(不可综合)。除了这些,Verilog语言还有很强大的CMOS级代码编写。其实,你平时编码用到的可综合性语句都是很少的,找本书来看看吧。
2. 计数器重置,一般需要有上电复位和逻辑复位/置位。你代码中所写的,是一种同步复位逻辑(注意看下DFF电路)。可以完成综合。
顺便说下,设计还是要先有硬件思想,再有HDL语言。

1.不可综合的意思如你所说,不能生成实际电路,也就是不能做时序仿真,但是可以做功能仿真,用于初期的基本功能仿真,比如testbench的编写等就很方便。
(1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter。
(2)所有综合工具都不支持的结构:time,defparam,$finish,fork,join,initial,delays,UDP,wait。
(3)有些工具支持有些工具不支持的结构:casex,casez,wand,triand,wor,trior,real,disable,forever,arrays,memories,repeat,task,while。

2.在verilog中,变量一般要用reg寄存器型,你的dout是输出计数器的值,应该设为output型,而非input型,在边沿触发器中,一般要采用非阻塞赋值“<=”的型式,而不是阻塞赋值“=”,建议可以先看下夏宇闻编写的verilog程序设计,很经典的。在程序中,一般可以直接赋值,但最好有条件,譬如采用if...else结构。上述程序的正确写法如下:
input clk,reset;
output [11:0] dout;
reg [11:0] dout;
always @ (posedge clk)
begin
if(reset==1'b0) //reset只有一位,比较也只需一位比较。
dout<=12'b1;
else
dout<=dout+1'b1; //常量最好带位数,不然综合会有警告提示
end


fpga有哪些
FPGA的种类主要包括以下几类:一、按照集成度分类 小型FPGA(Low-End Devices)和大型FPGA(High-End Devices)。这种分类是基于FPGA所包含的逻辑单元数量和可编程资源(如I\/O接口和嵌入式功能)的多少来进行区分的。小型FPGA一般适用于原型设计或小规模应用,而大型FPGA则适用于高性能计算和复杂系统设计。...

fpga算法是什么意思?
FPGA算法是指基于FPGA(Field-Programmable Gate Array)芯片设计和开发的算法。FPGA是一种可编程逻辑器件,与ASIC不同,它不需要定制的硬件布局。因此,FPGA算法具有可重构性和可编程性。FPGA算法能够实现各种计算、信号处理和控制应用,普遍应用于高速信号采集、数字信号处理、图像处理、计算机视觉、自动驾驶等...

什么是FPGA 关于FPGA的介绍
1、FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。2、简介:FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他...

fpga和单片机的区别
单片机和FPGA的区别是:1、FPGA更偏向于硬件电路,是用来设计芯片的芯片(FPGA)。通过硬件编程语言在FPGA芯片上自定义集成电路的过程。2、单片机偏向于软件,是在已有的固化电路的芯片(单片机)上设计开发。通过软件编程语言描述软件指令在硬件芯片上的执行。fpga和单片机的特点是:1、FPGA的特点:采用FPGA...

可编程逻辑器件有哪些
CPLD是一种相对简单的可编程逻辑器件,它结合了多个不同的逻辑门电路来实现复杂的逻辑功能。与FPGA相比,CPLD的编程相对简单,但是其性能和资源相对于FPGA有限。它常用于需要固定功能的数字逻辑设计和小规模的数据处理任务。常见的应用领域包括通信设备、汽车电子设备、自动化系统等。3. ASIC(可编程定制逻辑...

fpga芯片有哪些
Altera FPGA芯片是Intel公司旗下的一款可编程逻辑器件,广泛应用于通信、数据处理、视频处理等领域。Altera FPGA具有高速、低功耗和可编程性等优点,能够满足各种高性能计算的需求。3. Lattice FPGA芯片 Lattice半导体公司是一家专注于FPGA和智能互联解决方案的供应商,其FPGA芯片主要面向低功耗和小型化应用。

什么是FPGA?看完你就了解了!
FPGA是在PAL、GAL、CPLD等可编程器件的基础上发展起来的。它作为专用集成电路(ASIC)领域的一种半定制电路出现,既解决了定制电路的不足,又克服了原有可编程器件门电路个数有限的缺点。从图中我们可以看到一个数字时钟电路,包括晶振、蜂鸣器、数码管和各种74系列小芯片。这些小芯片的功能相当于几个逻辑...

fpga是什么意思
FPGA的意思是指现场可编程门阵列。以下是关于FPGA的详细解释:1. FPGA的基本定义:FPGA是一种数字集成电路,它允许用户在制造后通过编程来配置其逻辑功能。这种设备由许多可编程的逻辑块和可编程的互连资源组成。由于其可编程的特性,FPGA广泛应用于各种计算和控制系统中,包括通信、数据处理、工业控制等。2...

请问FPGA是什么
FPGA,即现场可编程门阵列,是一种半定制电路,它是在PAL、GAL、CPLD等早期可编程器件基础上发展起来的。相比于传统逻辑电路,FPGA的独特性在于其结构和灵活性。它通过逻辑细胞阵列(LCA)组成,包括可配置逻辑模块(CLB)、输出输入模块(IOB)和内部连线,允许用户通过编程数据改变其内部逻辑功能和连接方式...

fpga是什么
在汽车电子领域,FPGA可用于实现汽车的控制和安全功能。而在航空航天领域,由于其高性能和可靠性要求,FPGA是理想的选择。总之,FPGA是一种可编程的数字集成电路,具有高灵活性、高性能并行处理和低功耗等特点,广泛应用于通信、图像处理、工业自动化和航空航天等领域。由于其强大的功能和广泛的应用前景,...

五大连池市15970325363: cpld和fpga的优缺点有哪些 -
吕毓复方: 1、FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了...

五大连池市15970325363: 关于fpga/cpld的不可综合语句 -
吕毓复方: 你好1.不可综合语句既然不能对应生成电路,貌似是用来仿真的(可以这么说吧?),那么我们在程序中写它不就是没什么实际意义了么?反正不生成电路,写了反倒显得的程序复杂了,搞不清那些可综合那些不可以(我知道这么想不对,但是...

五大连池市15970325363: CPLD与FPGA的应用 -
吕毓复方: 1.电路设计中FPGA的应用 连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石.事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方...

五大连池市15970325363: fpga和cpld有什么不同,分别用在什么场合 -
吕毓复方: FPGA是现场可编程门阵列,一般逻辑单元较多,还富含很多硬件IP,适合于大型逻辑设计或者需要用到硬件内核的场合;CPLD是可编程逻辑器件,一般只有较少的逻辑单元数,且不含有硬件IP,只适合于常规的组合逻辑和时序逻辑电路,且规模比较小,多用于控制.

五大连池市15970325363: CPLD与FPGA的区别 -
吕毓复方: CPLD触发器资源少,FPGA多 CPLD适合做小规模组合逻辑,例如cpu外围片选和地址组合 FPGA适合做大一些的逻辑,尤其适合做时序电路 另外fpga一般调试要方便一些

五大连池市15970325363: CPLD和FPGA结构上的相同点和不同点分别是什么? -
吕毓复方: FPGA与CPLD(Complex Programmable Logic Device)相比,两者都包括了一些相对大数量的可编程逻辑单元.但是两者有明显差别:在逻辑门的集成度上,CPLD的密度在几千到几万个逻辑单元之间,而FPGA通常是几万到几百万;在系统结...

五大连池市15970325363: cpld和单片机的区别 -
吕毓复方: 本人研发cpld fpga和单片机有好多年了.这个问题对于学习cpld和单片机的人来说,必须要弄懂,要不然会深刻的影响到后续的学习进度的.cpld是硬件逻辑器件,说的直白点就是cpld里面没有程序,都是逻辑器件,你写的所谓的“程序”,其实在里面是不运行的.在里面都生成了硬件逻辑,也就是说cpld内部就是各种二极管和三极管,它根据你的程序这些二极管和三级来连接达到乘法或者除法等功能.所以说cpld是硬件逻辑器件.而单片机是微控制器,是程序运行,一切的运算逻辑都是程序计算出来的,是软件计算出来的.

五大连池市15970325363: CPLD与FPGA有什么区别,学哪种要好些? -
吕毓复方: 其实这两者没什么区别的,无非就是FPGA的门和逻辑器件多些,内部结构有所不同而已,他们所能实现的功能和用途都是一样的.FPGA比CPLD先进些,不过他们的编程都是一样的用的是硬件描述语言,一般还是选用VHDL语言较好,比起其他的硬件语言,如veilog hdl,有更好的应变能力,适应较大程序的编写. 至于初学者,到底学什么怎么学,就如junky163说的:会CPLD的人基本也会FPGA,而会FPGA的当然也会CPLD.具个例吧:比如作家,会写诗的,多半也会写下散文;而会写散文的,多半也会写下诗.不过我当初是从FPGA学的,挺好学的,入门较为简单,所以啊,现在学FPGA的人很多,现在我在搞arm7. 好好学哦,关键是要精通!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网