原创 FPGA个人总结_LC

2014-8-9 17:07 1407 9 10 分类: FPGA/CPLD

一:常识

QuartusII是Altera公司在21世纪推出的FPGA/CPLD开发环境,具有功能强大,界面友好,使用便捷等优点。

1:quartusII的特点

  1支持多时钟定时分析,LogicLock基于块的设计,SOPC,内嵌  SignalTapII逻辑分析器,功率估算器等高级工具。

   2易于引脚分配和时序分析。

   3具有强大的HDL综合能力。

   4支持器件种类多

   5支持Windows,Linux等多种操作系统。

   6支持第三方工具的链接。   

2:支持的器件

   Stratix系列,Cyclone系列,Max系列,等等


一:基于quartusII的开发流程

 

 

 

Design Entry(设计输入):

1.原理图输入:原理图是图形化的表达式,使用元件符号和连线来描述设计。

2.HDL文本输入:硬件描述语言是一种用文本形式来描述设计电路的语言。(VHDL和Verilog HDL)

Synthesis(综合):

综合是一个很重要的步骤,是指将较高级抽象层次的设计描述自动转化为较低层次描述的过程。

(1).将算法表示、行为描述转换到寄存器传输级(RTL),即从行为描述到结构描述。

(2).将RTL级描述转换到逻辑门级(包括触发器),称为逻辑综合。

(3).将逻辑门表示转换到版图表示,或转换到PLD器件的配置网表;根据版图信息能够进行ASIC生产,有了配置网表可完成基于PLD器件的系统实现。

综合工具:Synplify\Synplify Pro 

同时进行时序约束

 

 

综合之后进行布局布线

Fitter会努力按照时序约束的 要求进行布局和布线优化的

 

 

布局布线:将综合生成的电路逻辑网表映射到具体的目标器件中实现,并产生最终的可下载文件的过程。布局布线完成后会产生延时网表结构,以便于进行精确的时序仿真。布局:是将已分割的逻辑小块放到器件内部逻辑资源的具体位置,并使他们易于连接。布线:是利用器件的布线资源完成各功能之间和反馈信号之间的连接。

 

Functional Simulation(功能仿真):

不考虑信号时延等因素的仿真,有称为前仿真。

在综合与布局布线之前

Fitting(适配):

将由综合器产生的网表文件配置与指定的目标器件中。

Timing Analysis and Simulation(时序分析与仿真):

时序分析:设计者提出一些特定的时序要求(即所谓的添加时序约束),套用特定时序模型,针对特定电路进行分析。总的来说是基于延时的考虑。

时序仿真:他是在选择具体器件并完成布局布线后进行的包含延时的仿真,又称为后仿真。

仿真工具:ModelSim 

搭建仿真测试平台:Testbench

 

IP核:软核,固核,硬核。

IP(Intellectual Property)就是常说的知识产权。美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC、ASSP和PLD等当中,并且是预先设计好的电路模块。IP核模块有行为(Behavior)、结构(Structure)和物理(Physical)三级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。

什么是软核?
    IP软核通常是用HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据各种不同半导体工艺,设计成具有不同性能的器件。软IP内核也称为虚拟组件(VC-Virtual Component)。

什么是固核?
    IP固核的设计程度则是介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。

什么是硬核?
    IP硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Verilog HDL

 硬件描述语言(Hardware Discription Language HDL):以文本形式来描述数字系统的硬件结构和行为,是一种用形式化来描述数字电路和系统的语言。用一系列分层次的模块来表示复杂的数字系统,并逐层进行验证仿真,再把具体的模块组合由综合工具转化为门级网络表,然后再利用布局布线工具把网络表转化为具体电路结构的实现。

 

 

任务和函数的区别

      比较点

任务

函数

     输入、输出

可以有任意多个各种类型的参数

至少有一个输入,不能有输出和双向端口

     调用

任务只能在过程语句中调用,而不能在连续赋值语句中调用

函数可作为赋值操作的表达式,用于过程赋值和连续赋值语句

    触发事件控制

任务中不能出现always语句,initial语句;可以包含延时控制语句(#),但只能面向仿真,不能综合

 

 

函数中不能出现(always、#)这样的语句,要保证函数的执行在零时间内完成

调用其他任务和函数

可以调用其他任务和函数

只能调用函数,不能调用任务

返回值

没有返回值

只有一个返回值

其他说明

任务调用语句可以作为一条完整的语句出现

函数调用语句不能单独作为一条语句出现,只能作为赋值语句的右端操作数

 

 

一:电路的三种描述形式:

1:结构描述形式,从电路结构来描述电路模块。

2:数据流描述形式,对线型变量进行操作。

3:行为级描述形式,从功能和行为的角度来描述电路模块。

 

二:电路的五种模型:

系统级,算法级,RTL级,门级,开关级。

(前三种属于行为描述,“门级”就属于结构描述)

 

三:数据类型

网线类型:表示Verilog Hdl中结构化元件之间的物理连线。

寄存器类型:表示数据的存储单元。

区别:寄存器类型数据保持最后一次赋值,而网线类型数据则需要持续更新。

 

Verilog HDL程序模块中I/O信号类型默认为wire型。Wire型可以用作方程式的输入,也可以用作assign语句的或实例元件的输出。

Reg型一般用在always中,一般输出端口默认为wire型,所以要将用到的端口改为reg型。

寄存器可以取任意长度。Reg型数据的默认值是未知的,可以为正值或负值。但当一个reg型数据是表达式中操作数时,它的值被当做无符号值,即是正值。

如果一个4位的reg型数据被写入一个-1,在表达式运算时,被当做15;(1的补码)(补码等于反码加一)

Reg [3:0]a;

a=-1;     //a的值为15(1111),1的反码:1110,补码:1111;

四:算术运算符

操作符“+”,“-”,“*”,是可综合的,而“/”,“%”这两种操作符,只有当除数和模值为2的幂次方时(2,4,8,16......)才是可综合的。

五:移位运算符

操作符“<<”,“>>”

“<<”:左移一位,值乘以2;   //a<<1;

“>>”:右移一位,值除以2; //a>>1;

(记忆:原数都在左边,移位数都在右边)

六:case语句

Case语句虽然可以缺少default分支语句,但一般不要缺省,否则在组合逻辑中,会和if语句中缺少else分支一样,生成锁存器。

 

 

 

 

 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户403664 2014-8-12 14:59

图片都挂了呢
相关推荐阅读
用户430828 2014-08-09 21:04
AD/DA总结——LC
一:AD (1):常用的AD芯片有哪些? 1.AD7705:带信号调理、1mW功耗、双通道16位AD转换器 【介绍】:AD7705是AD公司出品的适用于低频测量仪器的AD转换器。它能将...
用户430828 2014-08-09 17:13
FPGA个人时序分析(B)_LC
移除时间(Removal Time)检查原则:异步控制信号变化的时刻不能介于寄存器的latch edge和相应的保持时间之间,否则会导致寄存器的保持时间违规,数据输出会进入亚稳态。1:输入引脚—寄存器...
用户430828 2014-08-09 17:12
FPGA个人时序分析(A)_LC
建立时间(Setup Time)检查Setup Time:时钟上升沿到来之前数据必须保持稳定的时间。1:输入引脚--寄存器(pin to register)2:寄存器--寄存器(register to...
用户430828 2013-12-04 19:21
ModelSim+Synplify+Quartus的Altera FPGA的仿真与验证(2)
  3、自动布局布线(APR)   步骤一:开启QuartusII,然后建立一个Project。※先点选File,再点选NewProjectWizard…。※设定WorkDirectory,Proje...
用户430828 2013-12-04 19:21
ModelSim+Synplify+Quartus的Altera FPGA的仿真与验证(1)
软件要求:ModelSimSE、SynplifyPro、QuartusII适用人群:初学者源代码:mux4_to_1.v   工作内容: 1、设计一个多路选择器,利用ModelSimSE做功能仿真;2...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条