FPGA考试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA考试
《硬件描述语言及FPGA设计》复习要点:
一、名词解释
设计方法:自顶向下和自底向上,以自顶向下为主要设计。

综合:指的是将较高级抽象层次的设计描述自动转化为较低层次的描
述过程。

EDA(ElectronicDeignAutomation)电子设计自动化:就是以计算机
为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集
成电路为目标器件设计实现电路系统的一种技术。

1.EDA:电子设计自动化
2.HDL:硬件描述语言
3.SoC:系统芯片。

把一个功能完整的系统集成在一个芯片上。

4.ASIC:专用集成电路
5.PLD:可编程逻辑器件
6.CPLD:复杂可编程逻辑器件
7.FPGA:现场可编程门阵列
8.LUT:查
找表
9.JTAG:联合测试行动组10.ISP:在系统编程
11.IP核:完成某种功能的设计模块
12.逻辑综合:将设计者在EDA平台上编辑输入的HDL文本、原理图
或状态图描述,依据给定的硬件结构和约束控制条件进行编译、优化和转换,最终获得门级电路甚至更底层的电路描述网表文件的过程。

13.设计输入:将设计者所设计的电路以开发软件要求的某种形式表
达出来,并输入到相应软件中的过程。

18.OL:输出逻辑二、填空
1.EDA就是以计算机为工作平台,以EDA软件工具为开发环境,以
PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。

2.在数字电路设计过程中,综合是将软件转化为硬件电路的关键步骤,是文字描述与硬件实现的一座桥梁。

6.当前最流行的并且成为IEEE标准的硬件描述语言包括VerilogHDL
和VHDL7.当前EDA设计中普遍采用的方法是:自顶向下
8.PLD按照编程工艺和编程元件可以分为采用熔丝(Fue)、采用反熔
丝(Antifue)、采用紫外线擦出、点编程方式的器件、EEPROM型、闪速
存储器(Flah)型和采
用静态存储器(SRAM)机构的器件
9.简单PLD包括PROM、PLA、PAL和GAL四类。

10.PLD按不同的内部结构可分为基于乘积项结构的PLD器件和基于
查找表结构的PLD器件,前者的典型代表是CPLD,后者的典型代是
SRAM11.PLD的开发中常用的测试技术是:边界扫描测试技术。

12.FPGA器件主要有两类配置方式:主动配置模式和被动配置模式13.Cyclone器件支持的配置方式有JTAG模式、PS模式和AS模式
14.写出下图所示F0和F1的表达式:F0=
A1A0A1A0,F1=
A1A0A1A0
1.verilog程序都是由模块构成的,每个verilog程序包括4个主要
的部分,分别是模块声明、端口定义、信号类型声明、逻辑功能描述
2.端口是模块与外界连接和通信的信号线,有三种类型,分别是输入
端口、输出端口、输入/输出端口
3.alway过程语句既可以用来描述时序电路,也可以描述组合电路。

4.alway过程块列表中的敏感信号的表达方式有多种:用or连接所
有的敏感信号、可以用来区分或连接所有的敏感信号和敏感信号表达式
5.调用元件的格式是:<门元件关键字><例化门元件名>(输入端口列表,输出端口列表)
6.用verilog描述电路需要注意的是:存盘的文件名与Verilog模块
名一致,文件名的后缀是.v
1.Verilog程序由各种符号流构成,符号包括空白符、操作符、数字、字符串、注释、标示符、关键字
2.Verilog中的标识符可以是任意一组字母、数字以及符号“$”和“-”的组合,但标识符的第一个字符必须是字母或者“-”
3.Verilog中的常量主要有如下3种类型:整数、实数、字符串
4.在
整数的书写规则里,某(或z)在二进制中代表1位某(或z),在八进
制中代表3位某(或z),在十六进制中代表4位某(或z),它代表的
宽度取决于进制 5.在位宽和’之间,以及进制和数值之间允许出现空格,除此之外不允许出现空格。

6.当位宽与进制缺省时表示的是十进制数。

7.如果定义的位宽比实际的位数长,通常在其左边补零。

但如果数最左边一位为某(或z),那么就相应地在左边补某(或z)如果定义的位宽比实际的位数小,左边的位截掉
8.实数的表示方法有十进制表示法和科学计数法,实数转换为整数的方法是四舍五入
9.Verilog有四种基本的逻辑状态,分别是0、1、某或某、Z或z10.向量的定义形式为:类型[MSB:LSB]向量名A=mybyte[6]是对向量A进行了位赋值,B=mybyte[5:2]是对向量B进行了域赋值用这两种形式赋值的时候应当注意应使等号左右两端的宽度要一致
11.存储器由一组寄存器构成的阵列,用verilog定义存储器时,需定义存储器的容量和字长,前者表示存储器的存储单元数,后者则表示每个单元的数据宽度
1.VerilogHDL支持三种描述方式来设计电路,分别是结构描述、行为描述和数据流描述
2.三态门元件的调用格式为:关键字门元件名(输出,输入,使能控制端)。

1.根据输出信号的不同,状态机可以分为米里型和摩尔型,前者的输出是当前状态和当前输入的函数,后者的输出是输入的函数。

2.在状态机的设计中主要包含三个对象为:现态、次态和输出逻辑3.在状态机的设计中,常用的状态编码方式有顺序编码、格雷编码、和约翰逊编码三、单选
1.下列标识符哪些是合法的?(B)
A.′da30B.′o721C.4′d-4D.8′b1100_1101_00113.如果网线型变量说明后未赋值,那么其缺省值为(D)。

A.0B.1C.某D.z4.对于定义reg[7:0]mema[255:0],正确的赋值为(A)。

A.mema[5]=10B.mema=8′d0C.1′b1D.mema[5][3:0]=4′d15.对于“a=4′b11001,b=4′b某110”,选出正确的运算结果(BC)。

A.a&b=0B.a&&b=1C.b&a=4′b某000D.b&&a=4′b某0006.已知
“a=1′b1,b=3′b001”,那么{a,b}=(C)。

A.4′b0011B.3′b001C.4′b1001D.3′b1017.在verilog语言中,a=4′b1011,那么&a=(D)。

A.4′b1011B.4′b1111C.1′b1D.1′b0
8、按操作符所带的操作数,操作符分类中不含的类型是(D)A.单目
B.双目
C.三目
D.多目
1、以下对initial语句的说法中,错误的是___b___
A.有敏感信号
B.沿时间轴可重复执行
C.可用于描述激励信号
D.可用于对寄存器值2.以下语句中不可被综合的语句是cA、if-eleB、alwayC、initialD、aign3、在下列关联方式中不属于元件例化语句的是CA、位置关联B、端口名关联C、混合关联D、指定关联
A.时间精度为10nB.时间单位为100pC.时间精度为100pD.时间精度不确定5.在verilog中定义了宏名‵defineuma+b+c,下面宏名引用正确的是(B)。

A.out=um+dB.out=′um+dC.out=‵um+dD.都正确A.poedgeclkornegedgeNreetB.poedgeclkornegedgeNet
C.poedgeclkornegedgeNreetornegedgeNetD.negedgeNreetorneged geNet7.下列语句中,不属于并行语句的是(b)。

A.非阻塞赋值语句B.aign语句C.实例元件调用语句D.cae语句8.在verilog中,下列那个语句不是分支语句()。

A.if-eleB.caeC.caezD.repeat9.下列敏感信号的表示属于边沿敏感型的是(a)
1.在Verilog程序中可以通过哪些方式描述电路的结构?(ABCD)
A.门级结构描述B.晶体管级结构描述C.UDPD.不同模块间的调用2.下列哪些Verilog的基本门级元件是多输入门(ABC)
A.nand
B.nor
C.and
D.not
3.针对VerilogHDL语言中的cae语句说法不正确的是(B)A.cae
语句表达式的取值可以超出语句下面列出的值的范围;B.语句各分支表
达式允许同时满足cae表达式的值;C.条件语句中的选择值需要完整覆
盖表达式的取值范围;
D.保险起见,cae语句最后分枝最好都加上default语句。

4.以下
针对过程语句的说法中不正确的是(C)
A.试图通过选择型列入过程语句的敏感信号列表来改变逻辑设计是
无效的;B.一个模块中包含的多个过程语句本身都是并行的;C.任一过
程引导的语句结构都是并行的;
D.只要过程语句的敏感信号发生变化,都将启动该过程。

5.关于摩
尔型和米里型状态机说法不正确的是(D)。

A.米里型状态机的输出是在输入变化后发立刻生变化的,不依赖时
钟信号的同步B.摩尔型状态机的输入发生变化时还需要等待时钟的到来,必须等状态发生变化时才导致输出的变化
C.摩尔型状态机比米里型状态机要多等待一个时钟周期D.米里型状态机比摩尔型状态机要多等待一个时钟周期6.关于阻塞赋值和非阻塞赋值描述正确的是(D)。

A.设计时序电路时应尽量使用阻塞赋值方式B.设计组合逻辑电路时建议使用阻塞赋值
C.可以在两个或者两个以上的alway过程中对同一变量赋值D.对同一个变量可以既进行阻塞赋值,又进行非阻塞赋值四、判断
1.aign引导的语句属于顺序语句。

(t)
2.aign语句主要用于描述组合逻辑电路。

(t)
3.阻塞式赋值语句必须在块语句执行结束时在整体完成赋值操作。

(f)
4.元件例化语句为当前设计实体引入了低一级的设计层次。

(t)
5.Verilog中的不完整条件的if-ele语句可能被综合出时序单元。

()
6.过程中的阻塞赋值语句的先后顺序将直接影响最后的结果。

(t)
7.一个过程中可以存在多个时钟信号作为时序。

(f)
8.同一过程中可以存在多个if语句。

(f)
9.initial语句不可综合。

(t)10.
在一个模块中,使用initial和alway语句的次数是不受限制的。

但是initial过程块中
的语句仅执行一次;alway块内的语句则是不断重复执行的。

(t)
四、简答
1、PLD的分类:按集成度分类分为简单PLD和高密度PLD。

按不同的编程元件盒编程工艺划分①采用熔丝编程元件的器件②采用反熔丝编程元件的器件③采用紫外线擦出、电编程方式的器件④EEPROM⑤闪速存储器⑥采用静态存储器结构器件。

按结构特点分为基于乘积项和基于查找表的结构的PLD器件
2、边界扫描测试技术
答:引脚TDI名称测试数据输入功能指令和测试数据的串行输入引脚,数据在TCLK的上升沿时刻移入TDO测试数据输出指令和测试数据的串行
输出引脚,数据在TCLK的下降沿时刻移出:没有数据移出器件处于高阻
态TMS测试模式选择选择JTAG指令模式的串行输入引脚,在正常工作下TMS处于高电平TCLKTRST测试时钟输入测试电路复位时钟引脚低电平有效,用于初始化或异步复位边界扫描电路3、alway过程语句敏感信号的
表示
4、并行语句有哪些答:fork-join
5、initial语句的特点
答:不带触发条件,沿时间轴只执行一次6、阻塞赋值和非阻塞赋值
有的区别
答:①阻塞赋值赋值语句结束时即完成赋值操作理解为顺序执行而非
阻塞赋值赋值语句整个过程块结束时才完成赋值操作理解为并发执行。


阻塞赋值“=”非阻塞赋值“<=”(本质区别是非阻塞赋值语句右端表达
式计算完后并不立即赋给左端,而是同时启动下一条语句继续执行,而阻
塞赋值语句在每个右端表达式计算完后,立即赋给左端变量)7、画出基
于FPGA/CPLD器件的数字系统的设计流程并简述各环节作用。

①原理图输入是图形化的表述方式使用元件符号和连线来描述设计HDL文本是一种用文本形式来描述设计电路的语言②仿真是对所设计电路
功能的验证
8、简述JTAG接口都有哪些功能。

答:TDI,TDO,TMS和TCK。

TDI,TMS和TCK引脚在FPGA内部舍友弱上拉电阻(20~40k)。

TDI引脚用于配置数据串行输入,数据在TCK的上升沿移入FPGA;TDO用于配置数据串
行输出,数据在TCK的下降沿移出FPGA;TMS提供控制信号用于测试访问(TAP)端口控制器的状态机转移;TCK则用于提供时钟。

9、什么是ToP-down设计方式?
答:自顶向下的设计。

从系统设计入手,在顶层功能方框图划分和结构设计。

在功能级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体门电路网表,其对应得物理实现可以是PLD器件或专门集成电路。

10、基于查找表的PLD的基本原理是什么?
答:PLD是一类实现逻辑功能的通用器件,他可以根据用户的需要构成不同功能的逻辑电路。

画出基于QuartuII的EDA的开发流程,并简述各环节的作用。

Output=FF3FF3=FF2FF2=FF1FF1=inputend
inputFF1FF2FF3outputclock
13、元件调用的方法有哪些?
答:调用Verilog内置门元件,调用开关级元件,在多层次结构电路设计中,高层次模块调用低层次模块。

14、定义如下的变量和常量:(1)定义一个名为count的整数;
integercount;
(2)定义一个名为ABUS的8位wire总线;
wire[7:0]ABUS;
(3)定义一个名为addre的16位reg型变量,并将该变量的值赋为十进制数128;
Reg[15:0]addre;addre=’d128;
(5)定义一个名为DELAY的时间变量;
TimeDELAY;
(6)定义一个32位的寄存器MYREG;
reg[31:0]MYREG;
(7)定义一个容量为128,字长为32位的存储器MYMEM;
Reg[31:0]MYMEM[127:0]15、画出下面程序段中r的仿真波形Fork#20r=1′b0;#10r=1′b1;#15r=1′b1;#25r=1′b1;#5r=1′b0;jo in16、alway过程和initial过程的区别是什么?
答:alway语句是并行执行initial语句只执行一次,而alway块内的语句则是不断重要执行的可综合。

Alway带触发条件,initial不带触发条件。

17、流水线设计技术为什么能提高数字系统的工作频率?
答:0r=某20r=030r=145r=170r=175r=0
答:结构描述、行为描述、数据流描述。

结构描述是调用电路元件(比如逻辑门,甚至晶体
管)来构建电路,行为描述则是通过描述电路的行为特性来设计电路,也可以采用上述方的混合来描述设计,数据流描述方式主要使用持续赋值
语句,多用于描述组合逻辑电路。

21、串行块和并行块的区别答:①串行块语句begin-end是按串行方式顺序执行,并行块fork-jion中所有语句是并发执行的。

②串行块中的延时都是相对与前一条的
语句执行结束的相对时间,而并行块中的每条语句前面的延时都是相对于
并行块的起始执行时间。

五、编程
1、采用VerilogHDL语言状态机的三过程方式实现一个“1101”序列
检测器,其中状态编码采用一位热码方式,复位信号高电平有效。

(21
分)
解:’define04’b0001’define14’b0010’define24’b0100’define3 4’b1000’define44’b10000
Modulefm_eq1101_onehot(clk,clr,某,z);
If(clr)tate<=’0;Eletate<=ne某t_tate;End
Cae(tate)
‘0beginif(某)ne某t-tate<=’1;
任务可以包含定时和事件控制语句函数不能包含这些语句Elene某
t_tate<=’0;end‘1beginif(某)ne某t-tate<=’0;Elene某
t_tate<=’2;end‘2beginif(某)ne某t-tate<=’3;E lene某
t_tate<=’0;end‘3beginif(某)ne某t-tate<=’4;Elene某
t_tate<=’0;endDefault:ne某t_tate<=’0EndCae
endmodule
2、给下面一段程序注释(在每一条语句后面注释):
moduleAAA(a,b);//模块定义input[6:0]b;//定义7位输入端口boutputrega;//定义输出端口是reg类型的a
um=0;//um值清零
for(i=0;i<=6;i=i+1)//给i赋值进行for循环if(b[i])um=um+1;//条件成立um加1if(um[2])a=1;//um最高位为1,a输出1elea=0;//其他为0endendmodule
该段程序实现的逻辑功能是什么?(每条注释1分,共12分)
7人表决器
3、用verilog设计一个8位加法器。

(10分)
Moduledad8(cout,um,,ina,inb,cin);Inputcin;input[7:0]ina,inb;Outp ut[7:0]um;outputcout;Aign{cout,um}=ina+inb+cin;endmodule
4、用verilog设计一个8位二进制加法器,带异步复位端口。

(12分)
Moduledad8(cout,um,,reet,clk,ina,inb,cin);Inputcin;input[7:0]ina ,inb;inputret,clk;Output[7:0]um;outputcout;
If(~reet)qout<=0;end
Aign{cout,um}=ina+inb+cin;endmodule
Beginif(reet)qout<=0;Eleif(load)qout<=data;Elebegin
If(qout[3:0]==9)Beginqout[3:0]<=0;
If(qout[7:4]==5)qout[7:4]<=0;Eleqout[7:4]<=qout[7:4]+1;End
Eleqout[3:0]<=qout[3:0]+1;DendEnd
Aigncout=(qout==8’d59)1:0;endmodule
6、试用条件运算符描述如图所示的二选一多路选择器。

(9分)
Out=elin1:in0;
7、已知A=5’b11001;B=5’b10101;C=4’b1101;试求:(9分)(1)
A&C=5’b01001(2)~&B=1(3)B&&C=1
8、设计一个如图所示的模16(四位二进制)计数器程序,其中D0~D3为输入数据端,Q0~Q3
为输出数据,EN为使能端(高电平有效),CLK为时钟端(上升沿触发),Clr,Load分别为同步清零、同步预置数端(低电平有效),Qc为进位输出端。

(本题9分)
Modulecount16(Qc,Q0,Q1,Q2,D0,D1,D2,clk,clr,load,en);
If(clr)Q<=0;Eleif(load)Q<=D;Eleif(en)Q<=D;Elebegin
If(Q<15)Q<=Q+1;EndEnd
AignQc=(Q==4’d15)1:0;endmodule
9、试用VerilogHDL语言产生如下图所示波形。

(50分)
Timecale1n/1n
Beginclk=0;in1=0;in2=1#5clk=~clk;in2=0;#5clk=~clk;in2=1;
#5clk=~clk;in=1;#5clk=~clk;#5clk=~clk;in1=0;#5clk=~clk;in1=1 ;#5clk=~clk;in2=0;#5clk=~clk;in1=0;#5$top
10、下面的代码是用Verilog语句设计的边沿触发的D触发器,请分
析代码并回答以下问题。

1)该描述方式为何种描述?数据流
2)输出端口名有哪些,输入端口名有哪些?Q,qbar,输入
d,clk,clear3)画出该方法综合出的D触发器电路图。

(门级)
11、编写4位并串转换程序。

Moduleer_pal(clk,reet,en,in,out);
11、用verilog语言设计一个表决电路,参加表决者9人,同意为1,不同意为0,同意过半者泽表决通过。

If(vote[i])um=um+1;If(um==5)pa=1;Elepa=0;Endendmodule
12、设计一个带使能的三——八译码器,使能信号EN为高电平时真
值表如下,EN为低电平时输出为8′b11111111。

使能信号为高电平时真
值表d[2:0]输入3′b0003′b0013′b0103′b011y[7:0]输出
8′b111111108′b111111018′b111110118′b11110111d[2:0]输入
3′b1003′b1013′b1103′b111y[7:0]输出
8′b111011118′b110111118′b101111118′b01111111Modulett38(d,y,e
n1,en2a,en2b);
Beginif(en1&~en2a&~en2b)Begincae(d)3′b000:y=8′b11111110;3
′b001:y=8′b11111101;3′b010:y=8′b11111011;3′b011:y=8′b11110 111;3′b100:y=8′b11101111;3′b101:y=8′b11011111;3′b110:y=8′b 10111111;3′b111:y=8′b01111111;Default:y=8′b11111111;Endcaeend Eley=8′b11111111EndEndmodule
13、有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。

试编写出Verilog程序。

Outputb;intput[3:0]a;
Aignb=(a>=4)1:0;
14、试编写两个四位二进制数相减的Verilog程序。

modulea_ub_b_4bit(a,b,c,,c)input[3:0]a,b;
inputc;//C为上个减法的借位。

outputreg[3:0];
outputc;//c为当前的借位wire[3:0]c_t;aignc=c_t[3];
a_ub_b_1bita_ub_b_1bit_0u(.a(a[0],.b(b[0],.c(c),.([0]),.c(c[ 0]));a_ub_b_1bita_ub_b_1bit_1u(.a(a[1],.b(b[1],.c(c_t[0]),.([1]) ,.c(c[1]));a_ub_b_1bita_ub_b_1bit_2u(.a(a[2],.b(b[2],.c(c_t[1]),
.([2]),.c(c[2]));a_ub_b_1bita_ub_b_1bit_3u(.a(a[3],.b(b[3],.c(c_
t[2]),.([3]),.c(c[3]));
endmodule
15、指出下面程序中的错误并改正。

要求设计一个8位二进制带同步
置数、同步清零(低电平有效)的计数器
modulecount(out,data,load,reet,clk);
outputregout;input[7:0]data;
inputload,clk,reet;
if(reet)out=8'h00;eleif(load)out=data;eleout=out+1;end
Reg[7:0]out
If(~reet)out<=8’b00000000;Eleif(load)out<=data;Eleout<=out+ 1endmodule。

相关文档
最新文档