03 FPGA DSP PPC ARM总体简介
Last edited by
Tags
Fpga Applications
Digital Signal Processing
Embedded Systems
Last edited time
Sep 12, 2024 01:11 PM
AI summary
本文介绍了FPGA、DSP、PPC和ARM在雷达系统中的应用,重点讨论了Verilog和VHDL的语法及其在硬件描述中的使用,包括case、always、assign语句等。此外,分析了DSP的性能指标、PowerPC处理器的嵌入式应用及ARM处理器的多种系列,最后提到最新的雷达工程处理器发展和面临的挑战。
第一节本次内容一、FPGA基本概念和工程实现主要点自上而下设计系统硬件的过程FPGA特点VHDL系统设计的基本点Verilog HDL与VHDL的主要区别三、ISE/VIVADO各自特点四、从ISE 一个工程开始过渡五、硬件总体概述(六)第二节本次内容一、Verilog基本设计单元二、VHDL深入讲解三、原语使用精华(一)四、ISE软件使用技巧五、vivado从一个工程开始第三节本次内容一、原语使用精华(二)二、 DSP在雷达系统中的应用和基本简介Texas Instruments DSP/DSC - Portfolio三、 PPC在雷达系统中的应用和基本简介四、ARM在雷达系统中的应用和基本简介五、最新雷达工程处理器发展和概述
第一节
本次内容
- FPGA基本概念和工程实现主要点
- VHDL/Verilog的选择和归宿
- ISE/VIVADO各自特点
- 从ISE 一个工程开始过渡
- 硬件总体概述(六)
本专题后续讲解FPGA设计技巧和DSP/PPC/ARM的基本特点和在雷达工程应用方面
一、FPGA基本概念和工程实现主要点
FPGA 现场可编程门阵列 也是EDA设计的一种。全球EDA厂商有近百家之多,大体可分为两类:一类是EDA专业软件公司,较著名的有Mentor Graphics、Cadence Design Systems、Synopsys Viewlogic Systems和Protel等;另一类是半导体器件厂商,为了销售他们的产品而开发的EDA工具,较著名的公司有Xilinx等。
EDA专业软件公司独立于半导体器件厂商,推出的EDA系统具有较好的标准化和兼容性,也比较注意追求技术上的先进性,适合于进行学术性基础研究的单位使用。
FPGA是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既弥补了定制电路的不足,又克服了原有可编程器件门电路数目有限的缺点。
FPGA具有更高的集成度、更强的逻辑实现能力以及更优秀的设计灵活性,因此具有强大的功能和市场应用前景,受到电子设计工程
师的普遍欢迎。
FPGA器件具有高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本、设计灵活方便、可无限次反复编程、可现场调试验证等优点。

自上而下设计系统硬件的过程

FPGA特点
新一代的FPGA集成了中央处理器(CPU)或数字信号处理器(DSP)内核,可在一片FPGA上进行软硬件协同设计,为实现片上可编程系统(SOPC)提供了强大的硬件支持。现在有的FPGA已经集成了AD和DA转换模块,构成真正的SOPC系统。FPGA既继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普通ASIC设计周期长、投资大、灵活性差的缺点,逐渐成为复杂数字硬件电路设计的理想首选。
当今FPGA有如下特点:
(1)规模越来越大
随着VLSI工艺的不断提高,单芯片内部可容纳上百万个晶体管,FPGA芯片的规模也越来越大。单片逻辑门数已愈千万,如Xilinx Virtex-IV的XC4VLX180已达到千万门的规模。芯片的规模越大所实现的功能越强,同时也更适合实现片上系统(SOC)。
(2)开发过程投资小
FPGA芯片在出厂之前都做过严格的测试,且FPGA设计灵活,发现错误可以直接更改设计,减少了投片的风险,节省了许多潜在的花费。所以不但许多复杂系统使用FPGA进行设计,甚至设计ASIC时也要把实现FPGA功能样机作为必需要的步骤。
(3)设计灵活性强
FPGA一般可反复地编程、擦除,在不改变外围电路的情况下,设计不同片内逻辑就能实现不同的电路功能。所以用FPGA试制功能样机,能以最快的速度占领市场。甚至在有些领域,因为相关标准协议发展太快,设计ASIC跟不上更新速度,只能依靠FPGA完成系统的研制和开发。
(4)开发工具智能化
FPGA开发工具种类繁多、智能化高、功能强大。应用各种工具可以完成从输入、综合、布局、布线到配置芯片等一系列功能。还有很多工具可以完成对设计的仿真、优化、约束、在线调试等功能。这些工具简单易学,可使设计人员更能集中精力进行电路设计,快速将产品推向市场。
(5)系统可重构
FPGA具有高速、灵活、可靠、可编程、低功耗、接口丰富、处理速度快、实时性好等特点。雷达信号处理系统所涉及的主要技术,包括数据重采样、参数估计、自适应滤波、恒虚警处理、脉冲压缩、自适应波束形成和旁瓣对消等,通常需要完成大量具有高度重复性的实时计算。FPGA可利用硬件乘加器、片内存储器、逻辑单元、流水线处理技术等特有的硬件结构,高速完成FFT、FIR、复数乘加、相关、三角函数以及矩阵运算等数字信号处理算法。因此,FPGA非常适合雷达数字信号处理算法的实现。
FPGA三大组成:LUTS、D、连线资源
FPGA一个核心:时序设计和优化
FPGA一个要点:原语
二、VHDL/Verilog的选择和归宿
- 随着EDA技术的发展,使用HDL语言设计已经成为一种趋势。
- HDL语言是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言,主要用来描述离散电子系统的结构和行为。HDL语言从1962年诞生以来,已逐步发展成为用于描述复杂设计的语言,与软件描述语言(Software Description Language)的发展类似,HDL语言经历了从机器码(晶体管和焊接)到汇编语言(网表)再到高等语言(HDL语言)的一系列过程。
- 目前最主要的HDL语言是Verilog HDL和VHDL。
Verilog HDL硬件描述语言的一些主要特点:
(1)可形式化地表示电路结构和行为。借用高级语言的结构和语句,例如条件语句、赋值语句和循环语句等,既简化了电路的设计,又方便设计人员的学习和使用。
(2)可在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器级到功能级和系统级,都可以描述。设计的规模可以是任意的,语言不对设计的规模加以限制。
(3)Verilog HDL具有混合建模能力,即在一个设计中各个模块可以在不同设计层次上建模和描述。
(4)基本逻辑门,例如and、or和nand等都内置在语言中;开关级结构模型,例如pmos和nmos等也内置在语言中,用户可以直接调用。
(5)用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。Verilog HDL还具有内置逻辑函数。
据有关文献报道,目前在美国使用Verilog HDL进行设计的工程师大约有60000人,全美国有200多所大学教授使用Verilog HDL语言的设计方法。在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授Verilog HDL有关的课程。
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本(简称93版)。现在VHDL和Verilog HDL作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为VHDL与Verilog HDL语言将承担起大部分的数字系统设计任务。
VHDL系统设计的基本点
应用VHDL进行工程设计的优点是多方面的:
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了其成为系统设计领域最佳的硬件描述语言之一。
(2)强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(3)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(4)VHDL语句的行为描述能力和结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。
对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么,而进行独立的设计。
- Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL是在1987年成为IEEE标准,Verilog HDL则在1995年才正式成为IEEE标准。之所以VHDL比Verilog HDL更早成为IEEE标准,这是因为VHDL是美国军方组织开发的,而Verilog HDL则是从一个普通的民间公司的私有财产转化而来,基于Verilog HDL的优越性,才成为的IEEE标准,因而具有更强的生命力。
- Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。
Verilog HDL与VHDL的主要区别
Verilog HDL | VHDL | |
语法结构 | 在C语言的基础上发展起来的一种硬件描述语言,语法较自由 | 发展的较早,语法严格 |
书写方式 | 书写自由,比较容易出错 | 书写规则比较烦琐,不易出错 |
适用环境 | Verilog HDL语法更接近于硬件结构,所以较为适合系统级(System)、算法级(Alogrithem)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)设计 | VHDL适于特大型(几百万门级以上)的系统级(System)设计 |
教材 | Verilog HDL的参考书相对较少 | 从国内来看,VHDL的参考书很多,便于查找资料 |
国外教学经验 | 国外电子专业很多在研究生阶段教授Verilog HDL | 国外电子专业很多在本科阶段教授VHDL |
三、ISE/VIVADO各自特点
ISE组合套件----ISE14.7
VIVADO2012.1------VIVADO2017.2
四、从ISE 一个工程开始过渡
(待补充)
基本建立 后续深入讲解技巧
五、硬件总体概述(六)
折衷设计
一、折衷类型
- 算法空间
- 软件-硬件折衷
- 软件空间-时间折衷
- 硬件空间-时间折衷
- 算法和硬件结构之间的映射

最终回归到算法
算法复杂度的因素包括:
- 算法本身的性能要求(操作的数量,要处理的数据量,处理时间)
- 数据的取值范围和精度
- 复杂指令的数量(指那些执行时间比平均指令执行时间长很多的指令)
- 程序执行是否依赖于数据,即指令的执行是否受输入数据的影响
- 算法内部的先后关系和数据的有效时间
- 数据交换是本地的还是异地的
- 数据的访问是随机的还是规律性的
- 有多少不同的处理操作
第二节
本次内容
- Verilog-HDL深入讲解
- VHDL深入讲解
- 原语使用精华(一)
- ISE软件使用技巧
- vivado从一个工程开始
- 后续在 专题五FPGA具体硬件模块 中简介具体IP CORE
一、Verilog基本设计单元
Verilog HDL 的基本设计单元是“模块(module)”。
一个模块由两部分组成:一部分描述接口;一部分描述逻辑功能,即定义输入是如何影响输出的。
一个模块的基本语法如下:

用Verilog HDL语言对该电路进行描述如下:
信号类型声明:说明逻辑描述中所用信号的数据类型。
如:reg[7:0] out; //定义out的数据类型为8bit的reg(寄存器)型功能描述:主要是描述电路所实现的功能。模块中最重要的部分是逻辑功能定义部分。有三种方法可在模块中产生逻辑。
- “assign”声明语句
如:assign a = b && c;
这种方法的语法很简单,只需书写一个关键字“assign”,后面再加一个表达式即可。例子中的表达式描述了一个有两个输入的与门。
- 实例元件
如:and and_inst(.(q),.a(a),.b(b));
采用实例元件的方法跟在电路图输入方式下调入库元件一样,键入元件的名字和相连的引脚即可。本例表示在设计中用到一个实例名为and_inst的与门,其输入端为a和b,输出为q。要求每个实例元件的名字必须是唯一的,以避免与其他调用与门(and)的实例混淆。
- “always”声明语句
- 标识符
Verilog HDL中的标识符可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。以下是标识符的几个例子:
Verilog HDL定义了一系列保留字,叫做关键词,它仅用于某些上下文中。附录A列出了语法中的所有关键词。注意只有小写的关键词才是保留字。例如,标识符always(这是个关键词)与标识符ALWAYS(非关键词)是不同的。
- 注释
在Verilog HDL中有两种形式的注释。
- 格式
Verilog HDL区分大小写。即大小写不同的标识符是不同的。此外,Verilog HDL是自由格式的,即结构可跨越多行编写,也可在一行内编写。空(新行、制表符和空格)没有特殊意义。下面通过具体例子解释说明。
与下面的指令效果一样:
Verilog HDL语法中共有19种数据类型。数据类型是用来表示数字电路中数据存储和传送单元的。这里只介绍三种最基本的数据类型:parameter型、reg型以及wire型。其它数据类型有兴趣的读者可以查阅附录中Verilog HDL语法参考书的有关章节逐步掌握。其它的类型如下:large型、medium型、scalared型、time型、small型、tri型、trio型、tri1型、triand型、trior型、trireg型、vectored型、wand型、wor型。这些数据类型除time型外都与基本逻辑单元建库有关,与系统设计没有很大的关系。在一般电子设计自动化的环境下,仿真用的基本部件库是由半导体厂家和EDA工具厂家共同提供的,系统设计工程师不必过多地关心门级和开关级的Verilog HDL语法内容。
在Verilog HDL源代码中,数值一直保持不变的量称为常量。下面对Verilog HDL中使用的数字及其表示方式进行介绍。
- 数字
(1)整数
在Verilog HDL中,整数型常量有下面四种表示形式:
二进制表示(b或B)
八进制表示(o或O)
十进制表示(d或D)
十六进制表示(h或H)
数字表达方式有以下三种:
<位宽><进制><数字>是一种全面的描述方式
<进制><数字>在这种描述方式中,数字的位宽采用缺省位宽(这由具体的机器系统决定,但至少32位)
<数字>在这种描述方式中,采用缺省进制十进制
本文提到的位宽如无特殊说明均指二进制的宽度。
数的表示
8’b01010000; //位宽为8位的二进制数01010000
12’h1fc; //位宽为12位的十六进制数1fc
可以使用下划线来分隔开数的表达以提高程序可读性。但不可以用在位宽和进制之间,只能用在具体的数字之间。
(2)x和z
x表示不定值,z表示高阻值。每个字符代表的位宽取决于所采用的进制。
例:
4’b011z; //最低位为高阻z
8’h1z; //低四位为高阻z
“?”是高阻z的另外一种表示方法。
(3)负数
一个数字可以被定义为负数,只需在位宽表达式前加一个减号,减号必须写在数字定义表达式的最前面。注意减号不可以放在位宽和进制之间也不可以放在进制和具体的数之间。
例 :负数的表示
-8'd5 //这个表达式代表5的补码(用八位二进制数表示)
8'd-5 //非法格式
- parameter常量
在Verilog HDL中用parameter来定义常量,即用parameter来定义一个标识符代表一个常量,称为符号常量,即标识符形式的常量,采用标识符代表一个常量可提高程序的可读性和可维护性
parameter型数据是一种常数型的数据,其说明格式如下:
parameter 参数名1=表达式,参数名2=表达式,…,参数名n=表达式;
parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句表。在每一个赋值语句的右边必须是一个常数表达式。也就是说,该表达式只能包含数字或先前已定义过的参数。
parameter msb=7; //定义参数msb为常量7
parameter e=25, f=29; //定义二个常数参数
parameter byte_size=8, byte_msb=byte_size-1; //用常数表达式赋值
parameter average_delay = (r+f)/2; //用常数表达式赋值
参数型常数常用于定义延时时间和变量宽度。
变量是在Verilog HDL源代码中值可以改变的量,主要介绍线型(wire)和寄存器型(reg)两种:
- 线型(wire)
wire变量表示的是硬件资源中的连线资源,常用来表示以assign语句赋值的组合逻辑信号,也可以用作任何表达式的输入。Verilog HDL语法中的I/O信号类型缺省值自动定义为wire型。
wire型变量定义形式如下:
wire 数据名;
wire[n:1] 数据名;
wire[n-1:0] 数据名;
wire是wire型数据的确认符,[n-1:0]和[n:1]代表该数据的位宽,即该数据有几位bit,最后跟着的是数据的名字。如果一次定义多个数据,数据名之间用逗号隔开。声明语句的最后要用分号表示语句结束。
wire data ;
wire[7:0] data_bus ;
wire[8:1] addr_bus ;
- 寄存器型(reg)
reg变量表示的是硬件资源中的寄存器资源,只能在always,initial中赋值。寄存器是数据储存单元的抽象。寄存器数据类型的关键字是reg。通过赋值语句可以改变寄存器储存的值,其作用与改变触发器储存的值相同。Verilog HDL语法提供了功能强大的结构语句使设计者能有效地控制是否执行这些赋值语句。这些控制结构用来描述硬件触发条件,例如时钟的上升沿。另外,在always以及initial中被赋值的每个信号只能是reg型变量。
reg型变量定义形式如下:
reg 数据名;
reg [n:1] 数据名;
reg [n-1:0] 数据名;
reg是reg型数据的确认标识符,[n-1:0]和[n:1]代表该数据的位宽,即该数据有几位(bit),最后跟着的是数据的名字。如果一次定义多个数据,数据名之间用逗号隔开。声明语句的最后要用分号表示语句结束。
reg data ;
reg [7:0] data_bus ;
reg [8:1] addr_bus ;
Verilog HDL的运算符范围很广,按功能分为以下几类:算术运算符、逻辑运算符、关系运算符、等式运算符、缩减运算符、条件运算符、位运算符、移位运算符和拼接运算符共9类。如果按照运算符所带的操作数的个数来区分,运算符可以分为3类,分别为:
- 单目运算符:运算符只带一个操作数;
- 双目运算符:运算符带两个操作数;
- 三目运算符:运算符带三个操作数。
- 算术运算符
算术运算符包括:
+(加法)
-(减法)
算术运算符也是双目运算符。
wire[7:0] a ;
wire[7:0] b ;
wire[7:0] out1 ;
wire[7:0] out2 ;
assign out1=a-b;
assign out2=a+b;
- 逻辑运算符
逻辑运算符有:
&&(逻辑与)
|| (逻辑或)
! (逻辑非)
其中逻辑与和逻辑或是双目运算符,逻辑非是单目运算符,运算结果为真(1)或者假(0)。
"&&"和"||"是双目运算符,它要求有两个操作数,如(a>b)&&(b>c),(a<b)||(b<c)。"!"是单目运算符,只要求一个操作数,如!(a>b)。下表为逻辑运算的真值表。它表示当a和b的值为不同的组合时,各种逻辑运算所得到的值。
- 关系操作符
关系操作符有:
> (大于)
< (小于)
>=(不小于)
<=(不大于)
关系运算符是双目运算符,关系运算符的结果为真(1)或假(0)。
例:
wire[3:0] num_a ;
wire[3:0] num_b ;
wire flag ;
assign num_a = 4’h8; //给num_a赋值为8
assign num_b = 4’h4; //给num_b赋值为4
assign flag = (num_a > num_b); //num_a大于num_b,所 //以flag为1
- 位运算符
Verilog HDL作为一种硬件描述语言,是专门用于设计硬件电路的。在硬件电路中信号有四种状态值1,0,x,z。在电路中信号进行与或非时,反映在Verilog HDL中则是相应操作数的位运算。Verilog HDL提供了以下五种位运算符:
~(一元非)
&(二元与)
| (二元或)
^ (二元异或)
~^(二元异或非)
这些操作符在输入操作数的对应位上按位操作,其中~、&、|是单目运算符,^、~^是双目运算符。
- 等式运算符包括:
==(等于)
!=(不等于)
如果比较结果为假,则结果为0;否则结果为1,等式运算符是双目运算符。
若A=5’b10001;B=5’b10011;
则A==B的结果是假,为0。
- 缩减运算符
- & (与)
- ~& (与非)
- | (或)
- ~| (或非)
- ^ (异或)
- ~^ (异或非)
缩减运算符是单目运算符,其结果就是操作数的每一位之间按照运算符的运算规则进行递推计算,最终产生1位的结果。
操作数的每位之间进行&运算;如果操作数的某一位的值为0,那么结果为0;若操作数的某一位的值为x或z,结果为x;否则结果为1。
与操作符&相反。
操作数的每位之间进行 | 运算;如果操作数的某一位的值为1,那么结果为1;如果操作数的某一位的值为x或z,结果为x;否则结果为0。
与操作符|相反。
操作数的每位之间进行 ^ 运算;如果操作数的某一位的值为x或z,那么结果为x;如果操作数中有偶数个1,结果为0;否则结果为1。
与操作符^结果相反。
- 条件运算符
条件操作符根据条件表达式的值选择输出结果,形式如下:
signal = condition ? true_expression :false_expression;
如果condition 为真(即值为1),选择true_expression;如果condition为假(值为0),选择false_expression。
条件运算符是三目运算符。
对于一个2选1的MUX可以简单描述如下:
out = sel ?data1 :data2;
如果sel为1,则out的值为data1;否则的话,out的值为data2
- 位拼接运算符
位拼接运算符是:{ }
它将两个或者多个信号的某些位拼接起来。用法如下:
{signal1[m1:n1],signal2[m2:n2],…signalN[mN:nN]}
wire [7:0] data ;
wire [7:0] datab ;
assign datab[3:0] = {data[0], data[1], data[2], data[3] };
在位拼接表达式中不允许存在没有指明位宽的信号。这是因为在计算拼接信号位宽的大小时必需知道其中每个信号的位宽。

- 阻塞赋值语句
阻塞赋值符号为“=”,其赋值格式如下:
信号 = 表达式;
阻塞赋值语句可以用在assign以及always语句中,阻塞赋值表示的只要源信号发生变化,目标信号就立刻完成赋值操作。
- 非阻塞赋值语句
非阻塞赋值符号为“<=”,其赋值格式如下:
信号 <= 表达式;
非阻塞赋值语句只能用在always语句中,非阻塞赋值表示的是该语句结束时完成赋值操作。
如果a=1,b=2,c=0那么当执行完这两条语句后,b=1,c=2,如果是阻塞赋值语句,如下。
- 条件语句
if-else语句
if-else语句的用法与C语言中的if-else语句类似,共有以下三种格式:
(1)if(表达式)语句1;
(2)if(表达式)语句1;
else 语句2;
(3)if(表达式1)语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
……
else if(表达式n) 语句n;
else 语句n+1;
- case语句
- case语句
- casex与casez语句
相对于if语句只有两个分支而言,case语句是一种多分支语句,故case语句一般用于多条件译码电路,如译码器、数据选择器以及状态机等。case语句共有case、casez与casex三种表达方式,下面分别予以说明。
case语句的使用格式如下:
case(表达式)
值1:语句1;
值2:语句2;
值3:语句3;
……
值n:语句n;
default:语句n+1;
endcase
case语句中,表达式与值1~值n之间是一种全等比较,必须保证两者的对应位完全相等。casex与casez是case语句的两种变体。在casez中,如果分支表达式值1~值n中的任何位为高阻,则对相应位的比较就不予以考虑,因此只需要关注其他位比较的结果。而在casex中,则是分支表达式值1~值n中的任何位为高阻或者x,对应位比较的结果都不需要考虑。
- always语句
- 敏感信号列表
- 关键词posedge与negedge
- begin与end块描述语句
always语句用于对reg型的变量赋值,用always语句描述逻辑功能的基本格式如下:
下面将具体介绍always语句的用法
敏感信号列表又称事件表达式或敏感列表,当该表达式的值发生变化时,就会执行一遍内部所有的语句。所以敏感列表应该列出所有影响always内部取值的信号(一般为所有的输入信号),若输入信号达到或超过两个时,它们之间用“or”连接。
对于时序电路,事件是由时钟边沿触发的,为了表达“边沿”这个物理概念,Verilog HDL语句引进了posedge与negedge两个关键词。
begin与end语句用来表示同一优先级的语句的集合,它的作用相当于C语言中的{}。为了说明begin与end语句的用法,首先介绍一下Verilog HDL中的顺序执行与并行执行两个概念。
- assign语句
Verilog HDL 中另外一个重要的逻辑描述语句是assign。assign语句是连续赋值语句,它用于对wire型的变量赋值。
用assign语句描述逻辑功能的基本格式如下:
assign 信号=表达式;
与门、或门的Verilog HDL描述
assign out=signal1 && signal2;
assign out=signal1 || signal2;
- 函数(function)
函数(function)的目的是返回一个用于表达式的值,函数的定义格式如下:
一个函数与循环语句的例子
- 循环语句(for)
for循环语句的形式如下:
for(初始表达式;条件表达式;步进表达式)语句
一个for循环语句按照指定的次数重复执行过程赋值语句若干次。初始表达式给出循环变量的初始值。条件表达式指定循环在什么情况下必须结束。只要条件为真,循环中的语句就执行;而步进表达式给出要修改的赋值,通常为增加或减少循环变量计数。
跳出“语法”看“语法”—— “硬件”描述语言的另一种理解方式
从硬件的角度理解Verilog HDL语法;
一个简单的同步电路
Verilog HDL语言描述的具体的硬件结构

什么是不可综合语法,什么是可综合语法?
可综合语法就是可以被编译器识别、并综合成具体硬件电路的语法,比如前面所介绍的if语句、case语句以及assign、always语句等语法。
不可综合语法就是大部分编译器不能识别,也不能综合成具体硬件电路的语法。
二、VHDL深入讲解
三、原语使用精华(一)
四、ISE软件使用技巧
(待补充)
五、vivado从一个工程开始
(待补充)
第三节
本次内容
- 原语使用精华(二)
- DSP在雷达系统中的应用和基本简介
- PPC在雷达系统中的应用和基本简介
- ARM在雷达系统中的应用和基本简介
- 最新雷达工程处理器发展和概述
一、原语使用精华(二)
UCF 约束使用
比如50欧姆单端和100欧姆查分电阻匹配时候用到
约束具体的位置 优化时序
Vivado中XDC约束语法时钟约束,有优先级。区别ise种得UCF约束
以上是做常用的约束
工程例子:LVDS 800M 上升到1G 出现误码 某一路 后来约束时钟位置 选择最近的使用
二、 DSP在雷达系统中的应用和基本简介
- DSP在雷达系统中主要可以代替FPGA进行信号处理相关计算
- 并行带宽受到限制,IO口能力有限

运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量:
(1)指令周期:即执行一条指令所需的时间,通常以ns(纳秒)为单位。如TMS320LC549-80在主频为80MHz时的指令周期为125ns;
(2)MAC时间:即一次乘法加上一次加法的时间。大部分DSP芯片可在一个指令周期内完成一次乘法和加法操作,如TMS320LC549-80的MAC时间就是125ns;
(3)FFT执行时间:即运行一个N点FFT程序所需的时间。由于FFT运算涉及的运算在数字信号处理中很有代表性,因此FFT运算时间常作为衡量DSP芯片运算能力的一个指标;
(4)MIPS:即每秒执行百万条指令。如TMS320LC549-80的处理能力为80MIPS,即每秒可执行八千万条指令;
(5)MOPS:即每秒执行百万次操作。如 TMS320C40的运算能力为 275 MOPS;
(6)MFLOPS:即每秒执行百万次浮点操作。如 TMS320C31在主频为40MHz时的处理能力为40 MFLOPS;
(7)BOPS:即每秒执行十亿次操作。如 TMS320C80的处理能力为 2 BOPS。
Texas Instruments DSP/DSC - Portfolio
TMS320 – Family Branches

三、 PPC在雷达系统中的应用和基本简介
- PowerPC处理器为32位的PowerPC嵌入式环境体系结构(embedded environment architecture),该结构来源于PowerPC体系结构。
- 飞思卡尔半导体的PowerPC 处理器是RISC 嵌入式应用的理想基础平台。PowerPC 芯片凭借其出色的性能和高度整合和技术先进特性在网络通信应用,工业控制应用,家用数字化,网络存储领域,军工领域和电力系统控制等都具有非常广泛的应用。

区别:FPGA 内嵌POWERPC 和Microblaze
性能不如专门PPC 但是接口方便,可以借助FPGA生成强大的硬件平台,然后通过加载bmd脚本,软件C语言,方便使用
一般可以方便控制串口 DDR 常用IO等接口 AXI4总线
四、ARM在雷达系统中的应用和基本简介
嵌入式系统是指为特定应用而设计的专用计算机系统。它以应用为中心,以计算机技术为基础,软件硬件可以根据需要裁剪,满足对功能、可靠性、成本、体积、功耗等要求而专门设计的计算机系统,被广泛用于手持设备、电信交换机、汽车电子、医疗设备、多媒体电器、军事装备、航空等领域。
ARM是Advanced RISC Machines的缩写,是微处理器行业的一家知名企业,该企业设计了大量廉价、高性能、低功耗的RISC处理器、相关技术及软件。可以这么说, ARM代表的不仅是一个企业, 更代表了一种技术、一种微处理器, 甚至一种产业的发展模式。
CISC 体系由于指令集庞大,指令长度不固定,指令执行周期有长有短,使指令译码和流水线的实现在硬件上非常复杂,给芯片的设计开发和成本的降低带来了极大困难。ARM 是典型的RISC 体系,根据RISC 的设计思想,其指令集的设计应该尽可能地简单,和CISC 体系相比,它可以通过一系列简单的指令来实现复杂指令的功能。
有关ARM微处理器应用较多的有决ARM7、ARM9、ARM9E、ARM10及StrongARM等系列。
- ARM7 系列:包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了 Jazelle 的ARM7EJ-S。该系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备以及移动电话、PDA等无线设备。
- ARM9 系列:包括 ARM9TDMI 、ARM920T 和带有高速缓存处理器宏单元的 ARM940T。该系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高端打印机、PDA、网络电脑以及带有MP3音频和MPEG4视频多媒体格式的智能电话中。
- ARM9E 系列:为综合处理器,包括 ARM926EJ-S、带有高速缓存处理宏单元的 ARM966E-S/ARM946E-S。该系列强化了数字信号处理功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有 Embedded ICE-RT 逻辑,更好地适应了实时系统的开发需要。
- ARM10 系列:包括 ARM1020E 和 ARM1020E 微处理器核。其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大地提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等。
- SecurCore 系列:包括SC100、SC110、SC200和SC210处理器核。该系列主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其他安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。
- StrongARM 系列:StrongARM 处理器将 Intel 处理器技术和 ARM 体系结构融为一体,致力于为手提式通信和消费电子类设备提供理想的解决方案。
- Xscale 系列:提供全性能、高性价比和低功耗的解决方案,支持16位Thumb指令和DSP指令。
五、最新雷达工程处理器发展和概述
专用ASIC 雷达信号处理芯片
国产FPGA 发展有待提高
GPU 作为图像显示处理飞速发展 目前高校研究比较多
部分研究所和企业也用到
C语言目前已经比较广泛
Altera 或者Xilinx 都有典型的产品但是转化效率和对时序的描述有待提高
处理器 实时性是最关键的 目前不注重细节处理和功耗问题
毛二可院士多次提到 差距是有的,主要是信号处理的细节和对概念的理解深刻性 绿色雷达 功耗 ,还有新体制雷达 激光雷达 量子雷达 光子雷达 传感器智能人工感知雷达
Loading...