fpga2013复习题

时间:2022-11-22 15:24:58 作者:壹号 字数:6014字

FPGA设计与应用技术 ---2012 复习题

一、填空题

1、本课程的讲授目标:了解一种新技术EDA;掌握一种设计工具(器件:Altera FPGA 软件:Quartus II);掌握一种语言Verilog HDL。

2、使用Quartus II进行逻辑设计,常用的设计思想的输入方式有:原理图、HDL 等。 3、高级语言C程序经过软件程序编译器形成cpu指令/数据代码流;Verilog HDL程序经过综合器形成电路网表文件

4、CPLD是在PAL,GAL等类型器件的基础上发展起来的与或阵列型PLD器件,大多数FPGA采用了查找表结构,其物理结构是静态存储器SRAM.。

5、JTAG边界扫描技术用于对高密度、引脚密集的器件和系统进行测试,如:CPU,DSP,ARM,PLD等。同时,JTAG接口也被赋予了更多的功能:编程下载、在线逻辑分析。 6、使用Verilog HDL进行逻辑设计,变量的值有4种状态:0、1、x、z;

7、定义逻辑功能的几种基本方法:用assign持续赋值语句定义、用always过程块定义、调用元件(元件例化)。

8、整数按如下方式书写:+/- ' 即 +/-<位宽>'<进制><数字>size 为对应二进制数的宽度;base为进制;value是基于进制的数字序列。进制有如下4种表示形式: 二进制(b或B)、十进制(d或D或缺省)、十六进制(h或H)、八进制(o或O) 9、定义reg型标量型变量:reg qout; //变量名 qout

10、定义wire型向量:wire[7:0] databus; //databus的宽度是8位 11、在状态机设计中使用一位热码定义5种状态,并定义状态变量:

parameter s0=5’b00001,s1=5’b 00010,s2=5’b 00100,s3=5’b 01000,s4=5’b 10000; reg [4:0] state,next_state;

12、在状态机设计中使用顺序码定义5种状态,并定义状态变量:

parameter s0=3’b 000,s1=3’b 001,s2=3’b 010,s3=3’b 011,s4=3’b 100; reg [2:0] state,next_state;

二、选择题(多选)

1、成为IEEE标准的HDL有( cd )

A、ABEL-HDL B、AHDL C、VHDL

D、Verilog HDL

2、Quartus II 是 ( a )公司的( d )开发工具。

A、Altera B、Xilinx C、Lattice D、集成 E、专用 F、第三方

3、ModelSim 是Mentor公司的出色的( c )软件,它属于编译型( c )器,速度快,功能强。

A、综合

B、编译 C、仿真、 D、布局布线 E、编程配置

4、使用Altera 公司的Quartus II 和FPGA器件能够进行( bef )设计。

A、模拟电路设计 B、数字电路设计 C、PCB设计 D、高速电路设计 E、DSP设计 F、SOPC设计

5、使用Verilog HDL进行逻辑设计,端口类型有( abc )

A、input B、output C、inout D、buffer

6、使用Verilog HDL进行逻辑设计,可综合的变量类型有( abf )

A、reg B、wire C、buffer D、string E、double F、integer

7、a=5`b11001; b=5`b10101;下面那个是正确的 ( abcd )

A、~a=5’b00110; B、 a&b=5`b10001; C、 a|b=5`b11101; D、 a^b=5`b01100;

8、下面那些语句可以被综合成电路 ( bcde ) A、initial B、always C、assign D、`define E、for F、while

三、判断题

1、VHDL 和 Verilog HDL是一种HDL的两种名称 。 ( N ) 2、Verilog HDL 是IEEE标准。 ( Y ) 3、相同的电路逻辑即可使用原理图方法输入也可使用HDL语言输入 ( Y ) 4、Verilog HDL语言编写的程序都是可以被综合的,都能形成网表电路。 ( N ) 5、Verilog HDL语言即可用来做可综合的功能模块设计,又可以编写仿真文件实现对模块的测试。 ( Y )

…… 此处隐藏907字 ……

if(sum[2]) pass=1; //超过4人赞成,则通过 else pass=0; end endmodule

7、读程序判断逻辑功能

BCD码加法器

module add4_bcd(cout,sum,ina,inb,cin); input cin; input[3:0] ina,inb; output[3:0] sum; reg[3:0] sum; output cout; reg cout; reg[4:0] temp;

always @(ina,inb,cin) //always过程语句 begin temp<=ina+inb+cin;

if(temp>9) {cout,sum}<=temp+6; //两重选择的IF语句 else {cout,sum}<=temp; end

endmodule