FPGA内部技术培训课件_第1页
FPGA内部技术培训课件_第2页
FPGA内部技术培训课件_第3页
FPGA内部技术培训课件_第4页
FPGA内部技术培训课件_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

产品研发中心应用产品组蒋伟2012年2月

内部技术培训产品研发中心应用产品组蒋伟

内部技术培训1目录2什么是?1语言基础3如何使用开发环境4开发实践目录2什么是?1语言基础3如何使用开发环境4开发实践1、什么是?1.1可编程逻辑器件基础1、什么是?1.1可编程逻辑器件基础1、什么是?1.1可编程逻辑器件基础18x1818K+4,

™,333,,

Bank0Bank1Bank

2Bank31、什么是?1.1可编程逻辑器件基础18x181.1可编程逻辑器件基础

可编程逻辑器件(,)

顾名思义,完全由用户通过软件进行配置和编程,从而完成某种特定的功能,而且可以反复擦写的器件。

产品

编程只读存储器

现场可编程逻辑阵列

可编程阵列逻辑

通用阵列逻辑

可擦除的可编程逻辑阵列

复杂可编程逻辑器件

()现场可编程门阵列,属于可编程逻辑器件的一种。通过可编程互连连接的可配置逻辑块()矩阵构成的可编程半导体器件。1、什么是?1.1可编程逻辑器件基础1.1可编程逻辑器件基础

1、什么是?1.1可准确地将用户设计转换为电路模块能够高效地利用器件资源能够快速地完成编译和综合提供丰富的核资源用户界面友好,操作简单开发软件

优秀的开发软件公司的公司的、1、什么是?1.1可编程逻辑器件基础准确地将用户设计转换为电路模块开发软件

优秀的开发软件1.2工作原理四输入一输出的电路模块??ABZCD1、什么是?1.2工作原理1.2工作原理?ABZCD1、什么是?1.查找表()本质就是一个。多使用4输入一输出的,一个等效于为一个有4位地址线的16×1的。将真值表写入后,每输入一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容后输出即可。4LUT=CDZABTruthTable图1-1原理示意图1、什么是?1.2工作原理查找表()本质就是一个。4LUT=CZATruthT工作原理的实质的工作状态实质是由片内()决定的,所以通过对片内进行编程(配置,更新真值表),就能完成某种特定功能。1、什么是?1.2工作原理工作原理的实质的工作状态实质是由片内()决定的,所以通过对片芯片结构

主要由6个部分组成:(可配置输入输块)(可配置逻辑块)(时钟管理单元)(嵌入式块)(布线资源)核(内嵌底层功能单元和专用硬件模块)1.3芯片结构1、什么是?1.2工作原理芯片结构

主要由6个部分组成:1.3芯片结构1、什BRAMBRAM图1-2芯片的内部结构1、什么是?1.2工作原理BB图1-2芯片的内部结构1、什么是?1定义:芯片与外界电路的接口部分。

功能:

匹配不同的电气特性、标准、物理特性。比如调整驱动电流的大小、上下拉电阻、频率、、。(可编程输入输出块)(布线资源)布线资源用于连通内部的所有单元。

第一类:全局布线资源,用于芯片内部全局时钟和全局复位布线。

第二类:长线资源,用于间的高速信号。

第三类:短线资源,用于基本逻辑单元间的互连和布线。

第四类:分布式资源,用于专用时钟、复位等控制信号。1、什么是?1.2工作原理定义:芯片与外界电路的接口部分。

功能:

(嵌入式块)4096x4Dual-PortDOA[3:0]DOB[3:0]WEAENARSTAADDRA[11:0]CLKADIA[3:0]WEBENBRSTBADDRB[11:0]CLKBDIB[3:0]1、什么是?1.2工作原理(嵌入式块)4096x4Dual-PortDOA[(嵌入式块)1、什么是?1.2工作原理(嵌入式块)1、什么是?1.2工作原理(时钟管理单元)1、什么是?1.2工作原理(时钟管理单元)1、什么是?1.2工作原理(时钟管理单元)DCMDCMDCMDCM1、什么是?1.2工作原理(时钟管理单元)DCMDCMDCMDCM1、什么是?是内部基本的逻辑单元。

包含:一个可配置的开关矩阵、一些选型电路(多路复用器)和触发器组成。(可配置逻辑块)的

CLB=+4+附加逻辑。

(开关矩阵)(2+2)是定义的基本逻辑单位。由2个4/6输入的查找表、进位逻辑、算数逻辑、存储逻辑、复用器组成。1、什么是?1.2工作原理是内部基本的逻辑单元。

包含:一个可配置的开关S0X0Y0S1X0Y1S2X1Y0S3X1Y1示意图(可配置逻辑块)1、什么是?1.2工作原理S0S1S2S3示意图(可配置逻辑块)1、什么是?核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。核(内嵌底层功能单元和专用硬件模块)软核:对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等,以用文本形式提交给用户。

固核:

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

硬核:基于半导体工艺的物理设计,布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。

1、什么是?1.2工作原理核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。1、什么是?1.3开发流程1.3开发流程设计方法硬件设计包括:芯片电路、存储器、输入\输出接口电路以及其他设备。软件设计思想:自顶向下顶层系统2级模块A2级模块B2级模块C3级模块A33级模块A23级模块A13级模块C23级模块C11、什么是?1.3开发流程1.3开发流程设1、什么是?1.3开发流程软件设计流程1、什么是?1.3开发流程软件设计流程1、什么是?1.4公司简介1.4公司简介公司目前有两大类产品:类和类。前者面向低成本的中低端应用。后者面向高端应用。两者的差异仅限于芯片的规模和专用模块上。1、什么是?1.4公司简介1.4公司简介公司1、什么是?1.4公司简介1.4公司简介1、什么是?1.4公司简介1.4公司简介2、语言基础2.1简介:具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言。这种特殊结构能够: –描述电路的连接 –描述电路的功能 –在不同抽象级上描述电路 –描述电路的时序 –表达具有并行性主要有两种:和。起源于C语言,因此非常类似于C语言,容易掌握什么是硬件描述语言2、语言基础2.1简介:具有特殊结构能2、语言基础2.1简介•是在1983年由()公司的所创。后来成为的主要设计者和公司的第一个合伙人。•在1984~1985年间,设计出了第一个的仿真器。•1986年,提出了用于快速门级仿真的算法。•1990年,公司收购了公司•1991年,公司公开发表语言,成立了()组织来负责语言的发展。•1995年制定了的标准,即1364。的历史2、语言基础2.1简介•是在1983年由(2、语言基础2.1简介二选一选择器的实现:(,a,);a,b,;;;@(ab) (!)=a;=b;的基本程序结构2、语言基础2.1简介二选一选择器的实现:的基2、语言基础2.2基本概念词法约定空白符:空格、换行、制表。除了字符串中的空白符,空白符仅仅用于分辨标识符,编译的时候忽略。注释:单行注释,多行注释/**/操作符:单目、双目、三目操作符数字声明:声明位数和不声明位数(默认十进制),建议声明位数。不确定值X,高阻值Z。8’b0x11_00z1,12’,16’d255,25,’o25,-6’d3字符串:””标识符:字母、数字、_、$组成,区分大小写,第一个字符必须是字母或者下划线。关键字:特殊标识符,全小写。2、语言基础2.2基本概念词法约定空白符:空格、换2、语言基础2.2基本概念数据类型(表示数字电路硬件中的数据存储和传送元素)四值逻辑:0、1、X、Z主要包含:型、型、型和型,共19种型硬件单元之间的连接,连线。a,b,c=1’b1,d;e[7:0];位宽为8的信号,向量2、语言基础2.2基本概念数据类型(表示数字电路硬2、语言基础2.2基本概念型存储元件,保持原有数字,直到被改写。数据存储单元的抽象。a,b,c=1’b1,d;位宽为1的寄存器e[7:0];位宽为8的寄存器型对变量建立数组来对存储器建模,描述、a[0,1024];1K的1位寄存器[7:0]e[0:1024];1K的8位寄存器,宽度和深度2、语言基础2.2基本概念型型2、语言基础2.2基本概念型定义常量,提高可读性和可维护性∏=3.1415926;[3:0]S0=4’h0,S1=4’h1,S2=4’h2,S3=4’h3;2、语言基础2.2基本概念型2、语言基础2.2基本概念、、、字符串型通用的寄存器数据类型,用于对数量进行操作。;[0:7];;;[8*3-1,0];=“”;2、语言基础2.2基本概念、、、字符串型2、语言基础2.2基本概念编译指令‘:定义文本宏‘16’:将一个文件包含在另一个文件中‘“”2、语言基础2.2基本概念编译指令‘:定义文本2、语言基础2.3操作符和表达式算术操作符2、语言基础2.3操作符和表达式算术操作符2、语言基础2.3操作符和表达式关系操作符2、语言基础2.3操作符和表达式关系操作符2、语言基础2.3操作符和表达式逻辑操作符2、语言基础2.3操作符和表达式逻辑操作符2、语言基础2.3操作符和表达式按位操作符2、语言基础2.3操作符和表达式按位操作符2、语言基础2.3操作符和表达式等价操作符2、语言基础2.3操作符和表达式等价操作符2、语言基础2.3操作符和表达式条件操作符、移位操作符、拼接操作符、缩减操作符、2、语言基础2.3操作符和表达式条件操作符、移位操作2、语言基础2.3操作符和表达式缩减操作符A=4’b0110;;相当于0&1&1&02、语言基础2.3操作符和表达式缩减操作符A=42、语言基础2.3操作符和表达式条件操作符、拼接操作符、缩减操作符条件运算符:?:A?B:C拼接运算符:{,}A=4’b0100;B=4’b1100;C=4’b1001;{A,B,C,4’b0010}=0100_1100_1001_0010;2、语言基础2.3操作符和表达式条件操作符、拼接操2、语言基础2.3操作符符和表达式操作符优先级2、语言基础2.3操作符符和表达式操作符优先级2、语言基础2.3运算符和表达式赋值运算符=,<=A=b;c=1’b1;阻塞赋值??C<=d;d<=2’b01;非阻塞赋值??2、语言基础2.3运算符和表达式赋值运算符2、语言基础2.4模块和端口模块•能够表示:–物理块,如或单元–逻辑块,如一个设计的部分–整个系统•每一个模块的描述从关键词开始,有一个名称(如7474,,等等),由关键词结束。2、语言基础2.4模块和端口模块•能够表示:2、语言基础2.4模块和端口端口•注意模块的名称,端口列表及说明•模块通过端口与外部通信2、语言基础2.4模块和端口端口•注意模块的名称2、语言基础2.4模块和端口端口列表和声明();,a,;;b;;2、语言基础2.4模块和端口端口列表和声明(2、语言基础2.4模块和端口模块例化2、语言基础2.4模块和端口模块例化2、语言基础2.5门级建模(结构化描述)门类型,,,,,,,举例:(A,B,,,);x1(S1,A,B);x2(,S1,);A1(T3,A,B);A2(T2,B,);A3(T1,A,);O1(,T1,T2,T3);定义:对电路结构的描述2、语言基础2.5门级建模(结构化描述)门类型,2、语言基础2.6数据流建模语法格式:=;采用连续赋值来实现,只能实现组合逻辑。左值必须是线网(标量或者向量),右值可以是线网、寄存器、函数调用。赋值语句总是处于激活状态,只要右边操作数发生变化,立即将结果赋给左边的线网。(,a,b,c,);a,b,e,f;[15:0]c,d;,;=a&b;[15:0]=c[15:0]&d[15:0];#10=e&f;定义:对数据流的具体行为的描述2、语言基础2.6数据流建模语法格式:2、语言基础2.7行为级建模定义:对电路外部行为的角度进行描述。行为级建模主要包括:过程结构、语句块、时序控制、流控制过程结构过程结构采用4种过程语句来实现:语句、语句、语句、语句语句、语句又是最基本的两种语句,其他所有行为语句都只能出现在这个两个语句中。语句只用于仿真,不可综合。语句可被综合。语句、语句都是同时并行执行,但语句只执行一次,语句则是重复执行。只有寄存器类型信号才可以在语句、语句被赋值2、语言基础2.7行为级建模定义:对电路外部行为的2、语言基础2.7行为级建模语句语法格式:

………………块能变量说明、行为语句应用举例:;;a=1’b1;

#5b=1’b1;#10c=1’b1;2、语言基础2.7行为级建模语句语法格式:应用举例2、语言基础2.7行为级建模语句语法格式:@(敏感事件列表)………………块能变量说明、行为语句实现组合逻辑和时序逻辑应用举例:;;@()…a=0;0;0;………………@(abc)#2a=;d=a?b:c;

#5b=;#10c=;组合逻辑中,敏感变量(等式右边所有的标识符)必须全写。组合逻辑中,使用阻塞赋值“=”时序逻辑中采用非阻塞赋值“<=”2、语言基础2.7行为级建模语句语法格式:应用举例2、语言基础2.7行为级建模过程赋值语句更新寄存器、整数、实数或者时间变量。只有在执行到的时候才起作用。分为:阻塞赋值”=“与非阻塞赋值语句”<=“

a=1’b1;#5b=1’b1;#10c=1’b1;

a<=1’b1;#5b<=1’b1;#10c<=1’b1;

允许赋值调度!2、语言基础2.7行为级建模过程赋值语句更新寄存器2、语言基础2.7行为级建模语句块在语句或语句中,位于…块语句之间的一组行为语句。两者可混合使用(包括嵌套使用)。……:用来组合需要顺序执行的语句,称为顺序块。a=1’b0;b=1’b1;c={a,b};d={b,c};

……:用来组合并行执行的语句,称为并行块。a=1’b0;b=1’b1;c={a,b};竞争!(同一时刻对同一变量产生影响)d={b,c};竞争!

2、语言基础2.7行为级建模语句块在语句或语句中,2、语言基础2.7行为级建模时序控制分为:延时控制和事件控制延时控制:#5a=b;事件控制:@(abc)等价@(a,b,c)@()2、语言基础2.7行为级建模时序控制分为:延时控制2、语言基础2.7行为级建模流控制流控制语句包括:跳转、分支和循环语句语句()()

语句()()()表达式:声明;:声明;

循环语句()、()、、2、语言基础2.7行为级建模流控制流控制语句包括:2、语言基础2.7行为级建模任务声明:………();@(1)

(,a,b);变量的指定必须按照定义的顺序!@(2)

(,c,d);;自动任务;,;

=&;

;2、语言基础2.7行为级建模任务声明:………(2、语言基础2.7行为级建模任务();@(1)

c=(a,b);[7:0];自动函数,生成一个名为函数标识符的寄存器变量,;

=&;

;2、语言基础2.7行为级建模任务();2、语言基础2.7行为级建模和的区别1、函数至少有一个输入变量,任务不定。2、函数必须有一个返回值。任务不返回值,可通过变量传递值。3、函数不能包含延迟、事件、时序控制,任务可包含。4、函数可调用函数,不能调用任务。任务可调用任务和函数。2、语言基础2.7行为级建模和的区别1、函数至少有aa&&

3、如何使用开发环境3.1开发流程aa&&

3、如何使用开发环59

3、如何使用开发环境3.2交互窗口3、如何使用开发环境3.2交互a

3、如何使用开发环境3.2交互窗口a3、如何使用开发环境3.2交互窗口

a

3、如何使用开发环境3.2交互窗口a3、如何使用开发环境aa

,

3、如何使用开发环境3.2交互窗口aa3、如何使用开发环境3.2交互窗口

&=!=?=aX=3、如何使用开发环境3.2交互窗口3、如何使用开发环境3.2aa:

&3、如何使用开发环境3.2交互窗口aa3、如何使用开发环境3.2交互窗口

&

(™)

3、如何使用开发环境3.2交互窗口

3、如何使用开发环境3.2交互窗口4、开发实践基于3A开发板,完成霓虹灯功能,实现50频率降频到10,霓虹灯显示周期200。1、建立工程2、添加模块3、添加时钟管理核4、添加文件5、霓虹灯功能实现6、逻辑功能仿真7、在线逻辑分析(创建文件)4、开发实践基于3A开发板,完成霓虹灯功能,67谢谢!谢谢!演讲完毕,谢谢观看!演讲完毕,谢谢观看!产品研发中心应用产品组蒋伟2012年2月

内部技术培训产品研发中心应用产品组蒋伟

内部技术培训70目录2什么是?1语言基础3如何使用开发环境4开发实践目录2什么是?1语言基础3如何使用开发环境4开发实践1、什么是?1.1可编程逻辑器件基础1、什么是?1.1可编程逻辑器件基础1、什么是?1.1可编程逻辑器件基础18x1818K+4,

™,333,,

Bank0Bank1Bank

2Bank31、什么是?1.1可编程逻辑器件基础18x181.1可编程逻辑器件基础

可编程逻辑器件(,)

顾名思义,完全由用户通过软件进行配置和编程,从而完成某种特定的功能,而且可以反复擦写的器件。

产品

编程只读存储器

现场可编程逻辑阵列

可编程阵列逻辑

通用阵列逻辑

可擦除的可编程逻辑阵列

复杂可编程逻辑器件

()现场可编程门阵列,属于可编程逻辑器件的一种。通过可编程互连连接的可配置逻辑块()矩阵构成的可编程半导体器件。1、什么是?1.1可编程逻辑器件基础1.1可编程逻辑器件基础

1、什么是?1.1可准确地将用户设计转换为电路模块能够高效地利用器件资源能够快速地完成编译和综合提供丰富的核资源用户界面友好,操作简单开发软件

优秀的开发软件公司的公司的、1、什么是?1.1可编程逻辑器件基础准确地将用户设计转换为电路模块开发软件

优秀的开发软件1.2工作原理四输入一输出的电路模块??ABZCD1、什么是?1.2工作原理1.2工作原理?ABZCD1、什么是?1.查找表()本质就是一个。多使用4输入一输出的,一个等效于为一个有4位地址线的16×1的。将真值表写入后,每输入一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容后输出即可。4LUT=CDZABTruthTable图1-1原理示意图1、什么是?1.2工作原理查找表()本质就是一个。4LUT=CZATruthT工作原理的实质的工作状态实质是由片内()决定的,所以通过对片内进行编程(配置,更新真值表),就能完成某种特定功能。1、什么是?1.2工作原理工作原理的实质的工作状态实质是由片内()决定的,所以通过对片芯片结构

主要由6个部分组成:(可配置输入输块)(可配置逻辑块)(时钟管理单元)(嵌入式块)(布线资源)核(内嵌底层功能单元和专用硬件模块)1.3芯片结构1、什么是?1.2工作原理芯片结构

主要由6个部分组成:1.3芯片结构1、什BRAMBRAM图1-2芯片的内部结构1、什么是?1.2工作原理BB图1-2芯片的内部结构1、什么是?1定义:芯片与外界电路的接口部分。

功能:

匹配不同的电气特性、标准、物理特性。比如调整驱动电流的大小、上下拉电阻、频率、、。(可编程输入输出块)(布线资源)布线资源用于连通内部的所有单元。

第一类:全局布线资源,用于芯片内部全局时钟和全局复位布线。

第二类:长线资源,用于间的高速信号。

第三类:短线资源,用于基本逻辑单元间的互连和布线。

第四类:分布式资源,用于专用时钟、复位等控制信号。1、什么是?1.2工作原理定义:芯片与外界电路的接口部分。

功能:

(嵌入式块)4096x4Dual-PortDOA[3:0]DOB[3:0]WEAENARSTAADDRA[11:0]CLKADIA[3:0]WEBENBRSTBADDRB[11:0]CLKBDIB[3:0]1、什么是?1.2工作原理(嵌入式块)4096x4Dual-PortDOA[(嵌入式块)1、什么是?1.2工作原理(嵌入式块)1、什么是?1.2工作原理(时钟管理单元)1、什么是?1.2工作原理(时钟管理单元)1、什么是?1.2工作原理(时钟管理单元)DCMDCMDCMDCM1、什么是?1.2工作原理(时钟管理单元)DCMDCMDCMDCM1、什么是?是内部基本的逻辑单元。

包含:一个可配置的开关矩阵、一些选型电路(多路复用器)和触发器组成。(可配置逻辑块)的

CLB=+4+附加逻辑。

(开关矩阵)(2+2)是定义的基本逻辑单位。由2个4/6输入的查找表、进位逻辑、算数逻辑、存储逻辑、复用器组成。1、什么是?1.2工作原理是内部基本的逻辑单元。

包含:一个可配置的开关S0X0Y0S1X0Y1S2X1Y0S3X1Y1示意图(可配置逻辑块)1、什么是?1.2工作原理S0S1S2S3示意图(可配置逻辑块)1、什么是?核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。核(内嵌底层功能单元和专用硬件模块)软核:对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等,以用文本形式提交给用户。

固核:

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

硬核:基于半导体工艺的物理设计,布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。

1、什么是?1.2工作原理核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。1、什么是?1.3开发流程1.3开发流程设计方法硬件设计包括:芯片电路、存储器、输入\输出接口电路以及其他设备。软件设计思想:自顶向下顶层系统2级模块A2级模块B2级模块C3级模块A33级模块A23级模块A13级模块C23级模块C11、什么是?1.3开发流程1.3开发流程设1、什么是?1.3开发流程软件设计流程1、什么是?1.3开发流程软件设计流程1、什么是?1.4公司简介1.4公司简介公司目前有两大类产品:类和类。前者面向低成本的中低端应用。后者面向高端应用。两者的差异仅限于芯片的规模和专用模块上。1、什么是?1.4公司简介1.4公司简介公司1、什么是?1.4公司简介1.4公司简介1、什么是?1.4公司简介1.4公司简介2、语言基础2.1简介:具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言。这种特殊结构能够: –描述电路的连接 –描述电路的功能 –在不同抽象级上描述电路 –描述电路的时序 –表达具有并行性主要有两种:和。起源于C语言,因此非常类似于C语言,容易掌握什么是硬件描述语言2、语言基础2.1简介:具有特殊结构能2、语言基础2.1简介•是在1983年由()公司的所创。后来成为的主要设计者和公司的第一个合伙人。•在1984~1985年间,设计出了第一个的仿真器。•1986年,提出了用于快速门级仿真的算法。•1990年,公司收购了公司•1991年,公司公开发表语言,成立了()组织来负责语言的发展。•1995年制定了的标准,即1364。的历史2、语言基础2.1简介•是在1983年由(2、语言基础2.1简介二选一选择器的实现:(,a,);a,b,;;;@(ab) (!)=a;=b;的基本程序结构2、语言基础2.1简介二选一选择器的实现:的基2、语言基础2.2基本概念词法约定空白符:空格、换行、制表。除了字符串中的空白符,空白符仅仅用于分辨标识符,编译的时候忽略。注释:单行注释,多行注释/**/操作符:单目、双目、三目操作符数字声明:声明位数和不声明位数(默认十进制),建议声明位数。不确定值X,高阻值Z。8’b0x11_00z1,12’,16’d255,25,’o25,-6’d3字符串:””标识符:字母、数字、_、$组成,区分大小写,第一个字符必须是字母或者下划线。关键字:特殊标识符,全小写。2、语言基础2.2基本概念词法约定空白符:空格、换2、语言基础2.2基本概念数据类型(表示数字电路硬件中的数据存储和传送元素)四值逻辑:0、1、X、Z主要包含:型、型、型和型,共19种型硬件单元之间的连接,连线。a,b,c=1’b1,d;e[7:0];位宽为8的信号,向量2、语言基础2.2基本概念数据类型(表示数字电路硬2、语言基础2.2基本概念型存储元件,保持原有数字,直到被改写。数据存储单元的抽象。a,b,c=1’b1,d;位宽为1的寄存器e[7:0];位宽为8的寄存器型对变量建立数组来对存储器建模,描述、a[0,1024];1K的1位寄存器[7:0]e[0:1024];1K的8位寄存器,宽度和深度2、语言基础2.2基本概念型型2、语言基础2.2基本概念型定义常量,提高可读性和可维护性∏=3.1415926;[3:0]S0=4’h0,S1=4’h1,S2=4’h2,S3=4’h3;2、语言基础2.2基本概念型2、语言基础2.2基本概念、、、字符串型通用的寄存器数据类型,用于对数量进行操作。;[0:7];;;[8*3-1,0];=“”;2、语言基础2.2基本概念、、、字符串型2、语言基础2.2基本概念编译指令‘:定义文本宏‘16’:将一个文件包含在另一个文件中‘“”2、语言基础2.2基本概念编译指令‘:定义文本2、语言基础2.3操作符和表达式算术操作符2、语言基础2.3操作符和表达式算术操作符2、语言基础2.3操作符和表达式关系操作符2、语言基础2.3操作符和表达式关系操作符2、语言基础2.3操作符和表达式逻辑操作符2、语言基础2.3操作符和表达式逻辑操作符2、语言基础2.3操作符和表达式按位操作符2、语言基础2.3操作符和表达式按位操作符2、语言基础2.3操作符和表达式等价操作符2、语言基础2.3操作符和表达式等价操作符2、语言基础2.3操作符和表达式条件操作符、移位操作符、拼接操作符、缩减操作符、2、语言基础2.3操作符和表达式条件操作符、移位操作2、语言基础2.3操作符和表达式缩减操作符A=4’b0110;;相当于0&1&1&02、语言基础2.3操作符和表达式缩减操作符A=42、语言基础2.3操作符和表达式条件操作符、拼接操作符、缩减操作符条件运算符:?:A?B:C拼接运算符:{,}A=4’b0100;B=4’b1100;C=4’b1001;{A,B,C,4’b0010}=0100_1100_1001_0010;2、语言基础2.3操作符和表达式条件操作符、拼接操2、语言基础2.3操作符符和表达式操作符优先级2、语言基础2.3操作符符和表达式操作符优先级2、语言基础2.3运算符和表达式赋值运算符=,<=A=b;c=1’b1;阻塞赋值??C<=d;d<=2’b01;非阻塞赋值??2、语言基础2.3运算符和表达式赋值运算符2、语言基础2.4模块和端口模块•能够表示:–物理块,如或单元–逻辑块,如一个设计的部分–整个系统•每一个模块的描述从关键词开始,有一个名称(如7474,,等等),由关键词结束。2、语言基础2.4模块和端口模块•能够表示:2、语言基础2.4模块和端口端口•注意模块的名称,端口列表及说明•模块通过端口与外部通信2、语言基础2.4模块和端口端口•注意模块的名称2、语言基础2.4模块和端口端口列表和声明();,a,;;b;;2、语言基础2.4模块和端口端口列表和声明(2、语言基础2.4模块和端口模块例化2、语言基础2.4模块和端口模块例化2、语言基础2.5门级建模(结构化描述)门类型,,,,,,,举例:(A,B,,,);x1(S1,A,B);x2(,S1,);A1(T3,A,B);A2(T2,B,);A3(T1,A,);O1(,T1,T2,T3);定义:对电路结构的描述2、语言基础2.5门级建模(结构化描述)门类型,2、语言基础2.6数据流建模语法格式:=;采用连续赋值来实现,只能实现组合逻辑。左值必须是线网(标量或者向量),右值可以是线网、寄存器、函数调用。赋值语句总是处于激活状态,只要右边操作数发生变化,立即将结果赋给左边的线网。(,a,b,c,);a,b,e,f;[15:0]c,d;,;=a&b;[15:0]=c[15:0]&d[15:0];#10=e&f;定义:对数据流的具体行为的描述2、语言基础2.6数据流建模语法格式:2、语言基础2.7行为级建模定义:对电路外部行为的角度进行描述。行为级建模主要包括:过程结构、语句块、时序控制、流控制过程结构过程结构采用4种过程语句来实现:语句、语句、语句、语句语句、语句又是最基本的两种语句,其他所有行为语句都只能出现在这个两个语句中。语句只用于仿真,不可综合。语句可被综合。语句、语句都是同时并行执行,但语句只执行一次,语句则是重复执行。只有寄存器类型信号才可以在语句、语句被赋值2、语言基础2.7行为级建模定义:对电路外部行为的2、语言基础2.7行为级建模语句语法格式:

………………块能变量说明、行为语句应用举例:;;a=1’b1;

#5b=1’b1;#10c=1’b1;2、语言基础2.7行为级建模语句语法格式:应用举例2、语言基础2.7行为级建模语句语法格式:@(敏感事件列表)………………块能变量说明、行为语句实现组合逻辑和时序逻辑应用举例:;;@()…a=0;0;0;………………@(abc)#2a=;d=a?b:c;

#5b=;#10c=;组合逻辑中,敏感变量(等式右边所有的标识符)必须全写。组合逻辑中,使用阻塞赋值“=”时序逻辑中采用非阻塞赋值“<=”2、语言基础2.7行为级建模语句语法格式:应用举例2、语言基础2.7行为级建模过程赋值语句更新寄存器、整数、实数或者时间变量。只有在执行到的时候才起作用。分为:阻塞赋值”=“与非阻塞赋值语句”<=“

a=1’b1;#5b=1’b1;#10c=1’b1;

a<=1’b1;#5b<=1’b1;#10c<=1’b1;

允许赋值调度!2、语言基础2.7行为级建模过程赋值语句更新寄存器2、语言基础2.7行为级建模语句块在语句或语句中,位于…块语句之间的一组行为语句。两者可混合使用(包括嵌套使用)。……:用来组合需要顺序执行的语句,称为顺序块。a=1’b0;b=1’b1;c={a,b};d={b,c};

……:用来组合并行执行的语句,称为并行块。a=1’b0;b=1’b1;c={a,b};竞争!(同一时刻对同一变量产生影响)d={b,c};竞争!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论