1 / 50
文档名称:

FPGA复习指南.ppt

格式:ppt   页数:50页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FPGA复习指南.ppt

上传人:分享精品 2016/2/17 文件大小:0 KB

下载得到文件列表

FPGA复习指南.ppt

相关文档

文档介绍

文档介绍:EDA与传统电子设计方法的比较2016-11-26传统设计方法EDA设计方法自底向上自顶向下手动设计自动设计硬软件分离打破硬软件屏障原理图方式设计原理图,VHDL语言等多种设计方式系统功能固定系统功能易变不易仿真易仿真难测试修改易测试修改模块难移置共享设计工作标准化,模块可移置共享设计周期长设计周期短FPGA/CPLD比单片机设计的优势FPGA/ CPLD 单片机?速度高低?可靠性高低(PC易跑“飞”)?复位方式可靠不可靠?软件易置性强差?编程方式先进多样单一?开发周期短长2016-11- 软核、固核和硬核的概念以及它们的重用显而易见,在具体实现手段和工艺技术尚未确定的逻辑设计阶段,软核具有最大的灵活性。而近年来电路实现工艺技术的发展是相当迅速的,为了逻辑电路设计成果的积累,和更快更好地设计更大规模的电路,发展软核的设计和推广软核的重用技术是非常有必要的。把在某一种专用半导体集成电路工艺的(ASIC)器件上实现的经验证是正确的总门数在5000门以上的电路结构掩膜,称之为“硬核”。把在某一种现场可编程门阵列(FPGA)器件上实现的,经验证是正确的总门数在5000门以上电路结构编码文件,称之为“固核”。由于Verilog HDL设计方法与工艺无关性,因而大大提高了Verilog 模型的可重用性。我们把功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog HDL模型称之为“软核”(Softcore),而把由软核构成的器件成为虚拟器件。利用软核和虚拟器件的可重复利用的特性就可大大缩短设计周期,加快了复杂电路的设计。 赋值语句和块语句赋值语句和块语句?赋值语句??在在Verilog HDLVerilog HDL语言中,信号有两种赋值方式:语言中,信号有两种赋值方式:?(1) 非阻塞(Non_Blocking)赋值方式( 如b <= a; )?块结束后才完成赋值操作。?b的值并不是立刻就改变的。?这是一种比较常用的赋值方法。(特别在编写可综合模块时)?(2) 阻塞(Blocking)赋值方式( 如b = a; )?赋值语句执行完后,块才结束。?b的值在赋值语句执行完后立刻就改变的。?在沿触发的always块中使用时,综合后可能会产生意想不到的结果。 条件语句条件语句??五点说明:五点说明:(1)三种形式的if语句中在if后面都有“表达式”,一般为逻辑表达式或关系表达式。(2) 第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。(3) 在if和else后面可以包含一个内嵌的操作语句(如上例),也可以有多个操作语句,此时用begin和end这两个关键词将几个语句包含起来成为一个复合块语句。(4) 允许一定形式的表达式简写方式。(5) if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。 if_else语句casecase语句是测试表达式与另外一系列表达式分支是否匹配的一个多路条件语语句是测试表达式与另外一系列表达式分支是否匹配的一个多路条件语句。句。?Case语句进行逐位比较以求完全匹配(包括x和z)。?Default语句可选,在没有任何条件成立时执行。此时如果未说明default,Verilog不执行任何动作。?多个default语句是非法的。重要内容:重要内容:使用default语句是一个很好的编程****惯,特别是用于检测x和z。Casez和casex为case语句的变体,允许比较无关(don‘t-care)值。?case表达式或case项中的任何位为无关值时,在比较过程中该位不予考虑。?在casez语句中,? 和z 被当作无关值。?在casex语句中,?,z 和x 被当作无关值。case语法:case <表达式><表达式>, <表达式>:赋值语句或空语句;<表达式>, <表达式>:赋值语句或空语句;default:赋值语句或空语句; 条件语句条件语句?case语句与if_else_if语句的区别主要有两点:?1) 与case语句中的控制表达式和多分支表达式这种比较结构相比,if_else_if结构中的条件表达式更为直观一些。?2) 对于那些分支表达式中存在不定值x和高阻值z位时,case语句提供了处理这种情况的手段。?【】?case(sig)?1 'bz: $display("signal is floating");? 1 'bx: $display("signal is unknown");? default: