Verilog 考试题目整理
verilog考卷
1. 下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A )(A) 开关级 (B)门电路级 (C) 体系结构级 (D) 寄存器传输级2.在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B) nor (C) and (D) not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5.元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截至延迟的典型值为( B )(A) 1(B) 2 (C) 3 (D) 46.已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1017.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级8.在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D)64 1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
(完整word版)verilog考试题
西安电子科技大学考试时间分钟1.考试形式:闭(开)卷;2。
本试卷共四大题,满分100分。
班级学号姓名任课教师一、选择题(每题2分,共18分)1。
下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A ) (A)开关级(B)门电路级(C)体系结构级(D)寄存器传输级2。
在verilog中,下列语句哪个不是分支语句?( D )(A)if—else (B)case (C)casez (D)repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B)nor (C)and (D)not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5。
元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4)U1(out,in,ctrl);"中截至延迟的典型值为( B )(A)1 (B) 2 (C)3 (D) 46.已知“a =1b'1;b=3b'001;"那么{a,b}=( C )(A)4b’0011 (B) 3b'001 (C) 4b'1001 (D)3b'1017。
根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A)模块级(B)门级(C)开关级(D) 寄存器级8.在verilog语言中,a=4b'1011,那么&a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b’1 (D)1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C)32 (D)64二、简答题(2题,共16分)1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
Verilog复习题
Verilog复习题一、填空题1. 用EDA技术进行电子系统设计的目标是最终完成________的设计与实现。
2. 可编程器件分为 ________和_________。
3. 随着EDA技术的不断完善与成熟,__________的设计方法更多的被应用于Verilog HDL 设计当中。
4. 目前国际上较大的PLD器件制造公司有________和_________公司。
5. 完整的条件语句将产生_______电路,不完整的条件语句将产生________电路。
6. 阻塞性赋值符号为_________ ,非阻塞性赋值符号为___________ 。
7.有限状态机分为________和_________两种类型。
8、EDA缩写的含义为_______9.状态机常用状态编码有________、_________、___________和____________。
10.V erilog HDL中任务可以调用_______和________。
11.系统函数和任务函数的首字符标志为________,预编译指令首字符标志为________。
12.可编程逻辑器件的优化过程主要是对__________和_______的处理过程。
13、大型数字逻辑电路设计采用的IP核有________、________和_________。
二、选择题1、已知“a =1b’1; b=3b'001;”那么{a,b}=()(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1012、在verilog中,下列语句哪个不是分支语句?()(A) if-else (B) case (C) casez (D) repeat3、Verilog HDL语言进行电路设计常采用的方法是( )①自上而下的设计方法(Top-Down)②自下而上的设计方法(Bottom-Up)③综合设计的方法4、在verilog语言中,a=4b'1011,那么 ^a=()(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'05、在verilog语言中整型数据与()位寄存器数据在实际意义上是相同的。
verilog复习卷
end
else
dout=din;//若符号位不为1,即为0,正数,补码为其本身
end
endmodule六、编程( Nhomakorabea4分)编程实现一个并行加载串行输出的程序,输入是一个8位的二进制数。
module test12 (clk, en, d_in, s_out);
input clk;
input en;
input[9:0] d_in;
一、填空题(共10分,每空2分)
1.已知x=4’b1001,y=4’b0110,则x的4位补码为,而y的4位的补码为。
2.在case语句中至少要有一条语句。
3.两个进程之间是语句。而在Always中的语句则是语句。
二、简答题(共20分,每小题5分)
1.进程语句的启动条件是怎样?
2.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环?
3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环?
答:这是因为,在Verilog语言中,它是为电路设计而设计的一门语言,它如高级语言不同,若循环的次数不确定,则会带来不确定的延迟,而这在电路中是不允许存在的,故综合只支持次数确定的循环,即对于一个具体的芯片,其延迟是一个定值。
4'b0111: data<= 8'b11100000;
4'b1000: data<= 8'b11111110;
4'b1001: data<= 8'b11110110;
VERILOG 试题样题
VERILOG 试题样题1.程序注释题 (填空题)例题1module mux21(ina,inb,sel,out); 1)input ina,inb; 2)input sel;output out; 3)reg out; 4)assign out= sel? ina , inb; 5) endmodule6)程序的功能是:例题2module count4(out,reset,clk); 1)input reset,clk; 2)output reg[3:0] out; 3)always @(posedge clk) 4)beginif(reset) out<=0; 5)else out<=out+1; 6)endendmodule7)程序的功能是:2.程序修改题例题3 下面程序是Verilog语言设计的D 触发器,请修改程序将其变为同步清零reset(低电平有效),同步置位set(低电平有效)的D触发器,将完整的程序写在答题纸上,修改后的模块名字为dff_syn。
module dff(q,d,clk);input d,clk; output reg q;always @(posedge clk)beginq<=d;endendmodule3.编程题 (根据电路图设计)例题4 设计一个4位二进制加法器,模块名字为add4_bin例题5 设计一个程序,实现以下数字电路的功能答案1.程序注释题 (填空题)例题1module mux21(ina,inb,sel,out); 1) 定义模块名input ina,inb; 2) 定义ina, inb为输入端口input sel;output out; 3) 定义out为输出端口reg out; 4) 定义out 为 reg型assign out= sel? ina , inb; 5)根据sel的值,选择输出ina 或inb endmodule6)程序的功能是: 2选一的多路选择器例题2module count4(out,reset,clk); 1) 定义模块名input reset,clk; 2) 定义reset, clk为输入端口output reg[3:0] out; 3) 定义out为4位宽的reg类型输出端口always @(posedge clk) 4) clk 上升沿有效beginif(reset) out<=0; 5) 同步复位else out<=out+1; 6) 输出的数加1endendmodule7)程序的功能是: 带同步复位的4位二进制加法计数器2.程序修改题例题3module dff_syn(q,d,clk,set,reset);input d,clk,set,reset; output reg q;always @(posedge clk)beginif(~reset)q<=1'b0;//同步清0,低电平有效else if(~set)q<=1'b1;//同步置1,低电平有效elseq<=d;endendmodule3.编程题 (根据电路图设计)例题4 设计一个4位二进制加法器,模块名字为add4_bin module add4_bin(cout,sum,ina,inb,cin);input cin; input[3:0] ina,inb;output[3:0] sum; output cout;assign {cout,sum}=ina+inb+cin;endmodule例题5 设计一个程序,实现以下数字电路的功能module half_add1(a, b, sum, cout);input a, b;output sum, cout;and (cout, a, b);xor (sum, a, b);endmodule或者module half_add2(a, b, sum, cout);input a, b;output sum, cout;assign sum = a ^ b;assign cout = a & b; endmodule或者module half_add2(a, b, sum, cout);input a, b;output sum, cout;assign {cout, sum} = a + b; endmodule。
Verilog习题
Verilog习题一.简答题1.电子电路CAD的基本含义是什么?2.利用Protel99进行原理图设计的基本步骤有那些?3.归纳总结,Protel99中,画线、画图工具有什么区别?4.两个节点通过哪些方法可以实现电气连接?5.网单文件中包含哪些内容?6.在Protel99的PCB中,有那些主要板层,作用分别是什么?7.PCB元件布局时应遵守那些原则?8.采用CPLD/FPGA设计复杂数字逻辑的一般流程是什么?9.论述构成数字系统的基本组成部分有哪些,作用如何?a)数字系统是指能进行数字信号的处理、存储、传输,完成某一特定功能的数字电路和软件系统的总和。
如计算机。
b)数字系统硬件主要由各种不同功能的组合逻辑(编码/译码等)和时序逻辑电路(计数器/寄存器/状态计)组合而成。
c)系统硬件单元有:(1)CPU:主控单元(2)RAM:内部数据存储、交换(3)输入输出设备,通信接口:输入指令、输出结果d)软件有:(1)操作系统:完整软件系统(2)嵌入式系统:简化的操作系统(3)监控程序:实现简单功能的循环程序10.论述数字逻辑EDA设计的一般流程是什么?系统任务——> 模块划分——> 图形或HDL行为语言描述——> 逻辑前仿真——> 综合——> 综合后仿真——> 布局布线——> 后仿真——> 下装ASIC11.举例说明流水线工作原理a)所谓流水线就是指把大规模、层次多,延时大的组合逻辑电路分为几个级,在每一级接入寄存器,暂存中间数据,从而增加数据处理能力得方法。
b)K级流水线就是在功能逻辑输入输出间恰好有K组寄存器,上一级输出是下一个输入c)流水线增加了数据吞吐量,带来了首位数据时间延迟,增加了KT.15.综述:Pspice可以进行那些分析,其作用如何?16.综述:pspice的信号源有那些类型,语法如何描述?17.FPGA内部逻辑单元的基本组成是什么?18.说出三个以上世界知名EDA公司的名称和主要产品。
verilog语言期末试题及答案
verilog语言期末试题及答案一、填空题1. Verilog语言是一种_硬件描述语言_。
2. Verilog语言适用于_数字电路设计_和_验证_。
3. Verilog的编译和仿真工具主要有_Synopsys Design Compiler_和_ModelSim_。
4. Verilog中的组合逻辑使用_always_关键字实现。
5. 时钟的上升沿触发使用_posedge_关键字实现。
6. Verilog的层次化模块定义使用_和号_(&)和_连接符_实现。
7. Verilog语言的数据类型包括_bit_、_reg_、_wire_和_logic_。
8. Verilog中用来控制模拟时间的关键字是_#_。
9. 顺序逻辑使用的关键字是_always_ff_。
10. Verilog的条件语句包括_if_、_else_和_case_。
二、选择题1. Verilog中的关键字always @(posedge clk)表示:A. 在时钟上升沿触发B. 在时钟下降沿触发C. 在时钟上升沿或下降沿触发D. 无关键字触发答案:A2. Verilog中用来定义模块的关键字是:A. alwaysB. moduleC. caseD. reg答案:B3. 下列哪个关键字用于在连续赋值中实现多路选择:A. ifB. elseC. caseD. always_ff答案:C4. Verilog中用来延时模拟时间的关键字是:A. #B. @C. $D. %答案:A5. Verilog中的数据类型wire和reg的区别在于:A. wire用于内部信号连接,reg用于存储数据B. wire只能传输数字信号,reg可以传输任意信号C. wire用于组合逻辑,reg用于时序逻辑D. wire在连续赋值中使用,reg在时序赋值中使用答案:A三、编程题请使用Verilog语言描述一个4位全加器模块,并画出其电路原理图。
```verilogmodule full_adder(input a, b, cin, output sum, cout);assign sum = a ^ b ^ cin;assign cout = (a & b) | (a & cin) | (b & cin);endmodule```四、简答题1. 请简述Verilog语言的优点及应用领域。
verilog期末考试试题
verilog期末考试试题一、选择题(每题2分,共20分)1. 在Verilog中,以下哪个关键字用于定义一个模块?A. moduleB. endmoduleC. inputD. output2. 以下哪个操作符用于Verilog中的按位与操作?A. &B. &&C. |D. ||3. Verilog中,一个时钟信号通常与哪个信号属性关联?A. regB. wireC. clkD. none of the above4. 在Verilog中,非阻塞赋值使用哪个操作符?A. =B. <=C. <=D. <=>5. 以下哪个是Verilog中定义参数的正确语法?A. parameter int a;B. parameter a = 10;C. parameter int a = 10;D. parameter a = 10 int;6. 以下哪个是Verilog中定义信号的初始值的正确方式?A. reg [7:0] data = 8'b1;B. reg [7:0] data = 8'b00000001;C. reg [7:0] data = 8'b10101010;D. reg [7:0] data = 8'b1;7. 在Verilog中,一个信号的宽度可以是任意的吗?A. 是的,可以是任意宽度B. 不是的,必须在1到32位之间C. 不是的,必须在1到64位之间D. 不是的,必须在1到1024位之间8. 以下哪个是Verilog中生成时钟信号的常用方法?A. 使用always块和非阻塞赋值B. 使用initial块和阻塞赋值C. 使用initial块和非阻塞赋值D. 使用always块和阻塞赋值9. 在Verilog中,case语句的每个分支后面应该使用哪个关键字?A. endB. endcaseC. caseD. default10. 以下哪个是Verilog中定义一个4位二进制计数器的正确方式?A. reg [3:0] counter;B. reg [4:1] counter;C. reg [0:3] counter;D. reg [4:0] counter;二、简答题(每题5分,共20分)1. 解释Verilog中的阻塞赋值和非阻塞赋值的区别。
Verilog复习题
Verilog复习题一、填空题1. 用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。
2. 可编程器件分为CPLD和FPGA。
3. 随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于Verilog HDL 设计当中。
4. 目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。
5. 完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6. 阻塞性赋值符号为 = ,非阻塞性赋值符号为 <= 。
7.有限状态机分为Moore和Mealy两种类型。
8、EDA缩写的含义为电子设计自动化(Electronic Design Automation)9.状态机常用状态编码有二进制、格雷码和独热码。
10.Verilog HDL中任务可以调用其他任务和函数。
11.系统函数和任务函数的首字符标志为 $ ,预编译指令首字符标志为 # 。
12.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。
13、大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。
二、选择题1、已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1012、在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3、Verilog HDL语言进行电路设计方法有哪几种(8分)①自上而下的设计方法(Top-Down)②自下而上的设计方法(Bottom-Up)③综合设计的方法4、在verilog语言中,a=4b'1011,那么&a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'05、在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
Verilog_HDL试卷及答案
reg[7:0]一、选择题:1、下列标示符哪些是合法的(B)A、$timeB、_dateC、8sumD、mux#2、如果线网类型变量说明后未赋值,起缺省值是(D)A、xB、1C、0D、z3、现网中的值被解释为无符号数。
在连续赋值语句中,assignaddr[3:0]=-3;addr被赋予的值是(A)//补码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A、4’b1101B、4’b0011C、4’bxx11D、4’bzz114、reg[7:0]mema[255:0]正确的赋值是(A)A、mema[5]=3’d0,B、8’d0;C、1’b1;D、mema[5][3:0]=4’d15、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是(D)modulecode(x,y);moduletop;parameedelay1=1,delay2=1;…………….………………………………endmoduleendmoduleA、(1,1)B、(5,5)C、(5,1)D6、“a=4’b11001,b=4’bx110A、a&b=0B、a&&b=1C、b&a=xD、7、时间尺度定义为timescale10ns/100psA、时间精度10nsB、时间单位100psC、都正确in3,输入出为out,则该电路描述中always的事件表达式应写为always@(in1,in2,in3);若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always@(posedgeclk)。
//@(条件表达式)do_something;表示等待条件表达式满足,然后do_something,然后就往下走了。
通常用在testbench中,不可综合。
------------------------------------always@(aorborc)begindo_something;end表示不停地监测a、b、c,一旦它们任何一个发生变化,就立刻do_something,并且这个“监测”是始终存在的。
Verilog期末复习题
Verilog复习题一、填空题1. 用EDA技术进行电子系统设计的目标是最终完成2. 可编程器件分为CPLD和FPGA。
3. 随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于Verilog HDL设计当中。
4. 目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。
5. 完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6. 阻塞性赋值符号为=,非阻塞性赋值符号为<= 。
78、EDA9.状态机常用状态编码有二进制、格雷码和独热码。
10.V erilog HDL中任务可以调用其他任务和函数。
11.系统函数和任务函数的首字符标志为$,预编译指令首字符标志为#。
12.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。
13、大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。
二、选择题1、已知“a =1b’1; b=3b'001;”那么{a,b}=(C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1012、在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3、Verilog HDL语言进行电路设计方法有哪几种(8分)①自上而下的设计方法(Top-Down)②自下而上的设计方法(Bottom-Up)③综合设计的方法4、在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'05、在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 646、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是___C____ 。
Verilog_HDL试卷及答案
reg [7:0] q=8‘b10000000;右边是最低位,q[0]~q[6]为0,q[7]为1q[7:0]<={q[0],q[7:1]}相当于一个循环右移操作,将q[0]的值赋给q[7],q[7]~q[1]依次向右移位一位。
根据前值8‘b10000000,第一个时钟周期后变为8‘b01000000;第二个时钟周期后变为8‘b00100000;类推。
第八个时钟周期后又回到q=8‘b10000000一、选择题:1、以下标示符哪些是合法的〔B 〕A、$timeB、_dateC、8sumD、mux#2、如果线网类型变量说明后未赋值,起缺省值是〔D 〕A、xB、1C、0D、z3、现网中的值被解释为无符号数。
在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是〔A 〕//补码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A、4’b1101B、4’b0011C、4’bxx11D、4’bzz114、reg[7:0] mema[255:0]正确的赋值是〔A 〕A、mema[5]=3’ d0,B、8’ d0;C、1’ b1;D、mema[5][3:0]=4’ d15、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是( D )module code(x,y); module top;paramee delay1=1,delay2=1; …………….………………………………code #(1,5) d1(x1,y1);endmodule endmoduleA、〔1,1〕B、〔5,5〕C、〔5,1〕D、〔1,5〕6、“a=4’ b11001,b=4’ bx110〞选出正确的运算结果〔B 〕A、a&b=0B、a&&b=1C、b&a=xD、b&&a=x7、时间尺度定义为timescale 10ns/100ps,选择正确答案〔C 〕A、时间精度10nsB、时间单位100psC、时间精度100psD、时间精度不确定8、假设a=9,执行$display(“current value=%0b,a=%0d〞,a,a)正确显示为〔B 〕//去除无效0A、current value=1001,a=09B、current vale=1001,a=9C、1001,9D、current vale=00…001001,a=99、always begin #5 clk=0;#10 clk=~clk;end产生的波形〔A 〕//5占15的1/3A、占空比1/3B、clk=1C、clk=0D、周期为1010、在Verilog中定义了宏名`define sum a+b+c 下面宏名引用正确的选项是〔C 〕//注意引用A、out=’sum+d;B、out=sum+d;C、out=`sum+d;D、都正确二、填空题:〔共15分,每题3分〕1、某一纯组合电路输入为in1,in2和in3,输入出为out,那么该电路描述中always的事件表达式应写为always@(in1,in2,in3 );假设某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always @( posedge clk )。
verilog期末试题及答案
verilog期末试题及答案一、选择题1. Verilog是一种用于描述数字电路的语言,它是一种:A. 高级语言B. 低级语言C. 汇编语言D. 脚本语言答案:B. 低级语言2. Verilog的设计单元包括:A. 模块B. 信号C. 进程D. 任务答案:A. 模块3. Verilog的模块声明语法是:A. module 模块名(输入端口, 输出端口);B. module 模块名(input 输入端口, output 输出端口);C. 定义变量和信号D. 使用时调用模块答案:B. module 模块名(input 输入端口, output 输出端口);4. Verilog的赋值语句中,"="表示:A. 非阻塞赋值B. 阻塞赋值C. 非条件赋值D. 条件赋值答案:B. 阻塞赋值5. Verilog中的always块用于:A. 声明变量和信号B. 定义模块C. 并行执行代码块D. 顺序执行代码块答案:C. 并行执行代码块二、填空题1. Verilog的基本数据类型有______、______、______、______。
答案:wire, reg, integer, real2. Verilog中用于实现多路选择的关键字是______。
答案:case3. Verilog中用于实现循环的关键字是______。
答案:for4. Verilog中用于延迟执行的关键字是______。
答案:#(井号)5. Verilog中用于表示逻辑非的关键字是______。
答案:!三、简答题1. 请简要说明Verilog的模块和例化的概念。
答案:Verilog的模块是用于描述数字电路的基本单元,一个模块可以包含多个输入端口和输出端口,以及内部的逻辑代码。
模块可以被实例化(例化),即在其他模块中调用并使用。
例化时需要指定模块的名称,并连接相应的输入和输出端口。
2. 请简要说明Verilog中的阻塞赋值和非阻塞赋值的区别。
Verilog练习参考答案
一、问答题1、下面哪些是正确的用户定义的标识符?对错误的标识符,指出其错误的原因。
1)Help √2)2nd_item Χ,以数字2为首3)casex Χ,casex是verilog的关键字4)integer Χ,integer是verilog的关键字5)_na36me √6)$time Χ7)module Χ,modul是everilog的关键字8)‘xy_a Χ,不允许出现字符‘9)7tyr Χ,以数字7为首10)myex4 mp Χ,含有空格符2、定义如下的变量和常量1)32位的寄存器变量buf1 reg[31:0] buf1;2)整数age integer age ;3)容量为256单元、字长为16位的存储器memoryreg[15:0] memory[255:0] ;4)长度为32的向量buf2 reg[31:0] buf2 ;5)值为50的参数COUNT parameter COUNT=50 ;3、写出下列表达式的值1) (20==5) ? 8: (26>3) ? 3 : 9 3 2) 9/6 13)4’b0110&4’b1100 0100 4) 4’b0110&&4’b1100 15)4’b0011|4’b1100 1111 6)4’b0011||4’b1100 17) 9%6 3 8)4’b0111>>2 0001 9)4’b0111<<2 1100二、读程序,回答相关问题:1、module a1(a,b,sel,out) ;input [3:0] a,b ; input [1:0] sel ;output [3:0] out ;always @(a or b or sel)case (sel)2’b00 : out=a+b ;2’b01 : out=a ;2’b10 : out=b2’b11 : out=a-b ;endcase;endmodule若输入1)a=s’b0111 b=4’b0100 sel=2’b00 问输出out= 1011;2)a=s’b1011 b=4’b0100 sel=2’b01 问输出out= 1011;3)a=s’b1011 b=4’b0100 sel=2’b10 问输出out= 0100;4)a=s’b1011 b=4’b0100 sel=2’b11 问输出out= 0111 .2、’timescale 100ns/10nsmodule gete2( a,b,out) ;input a,b ;output out ; and # (10.46, 5.87) (z,a,b) ; nor # (9.49,5.37) (out,z,a) ; endmodule问:仿真时,当输入a 、b 从11变到01时,则输出out 如何变化?相对a 的变化,out 的变化延时多少时间? 延时1540ns3、module a2( clk,clr,set,a, z) ;input a,clk,clr ;output reg z ;reg[3:0] q ;always @(posedge clk or posedge clr)begin if (clr) q<=4’b0 ;else if (set) q<=4`hf ; else begin q<<1 ; q[0]<=a; endendassign z=q[3] ;endmodule试判断该逻辑电路的逻辑功能;若输入信号set 、clr 、clk 、a 的波形如下,试画出输出z 的波形。
Verilog系统设计考试试卷与答案
一、填空题(共10分,每空1分)1、变量是在程序运行过程中其值可以改变的量。
变量分为两种,一种类型为线网类型,一般指示硬件电路的物理连接,另一种是 ,对应的是具有状态保持作用的电路元件。
2、Verilog HDL中,如果一个给定的整数没有定义大小(size),缺省为位。
3、Verilog采用四值逻辑系统,0表示低电平,1表示高电平,x表示。
4、实际组合电路中,信号经过不同的路径到达某个门电路的输入端时,有先有后,这种现象称为。
5、有限状态机是由和组合逻辑构成的硬件时序电路;其状态只能在的情况下才能从一个状态转向另一个状态;6、状态机按照输出逻辑可以分为两种,一种称为状态机,其时序逻辑的输出不仅取决于当前状态,还取决于输入;另一种称为状态机,其时序逻辑的输出只取决于当前状态。
7、`timescale用于说明程序中的时间单位和仿真精度,语句`timescale 1ns/100ps中,程序中的仿真精度为8、完成语句,使rand0产生一个(-59,59)的随机数。
reg [23:0] rand0;rand0= ;二、选择题 ( 本题共 2 0 分,每小题 1 分 )1 、任v e r i l o g H D L 的端口声明语句中,用关键字声明端口为双向方向。
A.inoutB.INOUTC.inputD. output2、在V e r i l o g H D L的逻拇运算中,设A=8'b11010001,B=8'b00011001,则表达式"A&B"的结果为。
3A.8'b00010001B.8'b11011001C.8'b11001000D.8'b001101113、已知A=3'b110,B=3'b000,则AIIB结果为A.1B.O 110 D.3'b0014 、已知 A = 4 ' b 1 0 1 0 , 则 & A = ,A.1,0B.1,1 D.0,015、不完整的IF语句,其综合结果可实现:A . 三态控制电路B .条件相或的逻辑电路C.双向控制电路D.时序逻辑电路16、下列关于同步有限状态机的描述错误的是A. 状态变化只能发生在同一个时钟跳变沿;B.状态是否变化要根据输入信号,只要输入条件满足,就会立刻转入到下一个状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog 考试题目整理1、EDA设计环节过程(1)编译:EDA首先将源HDL模型转变为基本的门级网表(2)映射:EDA为基本门模型分配具体的cell(3)验证:对抽象电路模型进行测试(4)Testbench:为了进行验证,需要单独编写一段HDL代码,建立一个用于测试目的模型。
(5)仿真:EDA软件提供了一种运行Testbench的方法:即按照电路模型机制,生成需要的激励信号并观察和分析模型中的信号。
这种运行抽象模拟的方法称为仿真。
(6)综合前验证:时,Testbench加载的测试模型使是用户PTL模型,而此时验证的内容主要是测试模拟的逻辑性能,因此综合前验证又被称为功能仿真或RTL 仿真,有时也被简单地称为前仿。
(7)综合后验证:时,Testbench加载的测试模型已经是装配后的由基本门描述的模型,即网表,此时验证的内容主要是设计模型的时序性能,因此综合后验证又被称为时序仿真或门及仿真,有时也被简单的称为后防。
2、自顶向下设计与自底向上设计优缺点(1)、传统的电子设计多采用自底向上底设计方法:首先确定最底层的元件和电路模块的功能和结构,再进行组合得到较大得模块。
如此进行,向上递推直至完成整个电路。
此方法中任何一级发生问题,通常都要返工;由于元件供应、改型等得变化往往造成重新设计(2)、现代的EDA设计采用自顶向下的设计方法:从系统功能、结构至各门级连接,从抽象层次逐步具体化。
此方法从最开始逐级仿真、综合便于及早发现问题,即使设计中出现问题也不会从头返工。
缺点是需要先进的工具3、IP核分类4、可编程器件有哪几种(1)PLAProgrammable logic arrays(PLA) 是一种可编程逻辑装置,它的与阵列(AND array)和或阵列(OR array)均为可编程,输出电路为不可组态.又叫做FPLA(field-programmable logic array)(2)PALPAL(Programmable Array Logic)可编程阵列逻辑,是70年代末由MMI公司率先推出的一种低密度,一次性可编程逻辑器件,第一个具有典型实际意义的可编程逻辑器件(PLD-Programmable Logic Device)。
它采用双极型工艺制作,熔丝编程方式。
PAL在EDA中是指一种现场可编程的门阵列逻辑器件,内部电路是在PLA基础上进行改进的。
(3)GALGAL是Lattice在PAL的基础上设计出来的器件,即通用阵列逻辑器件。
GAL首次在PLD上采用了EEPROM工艺,使得其具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。
GAL在“与—或”阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC。
由于GAL是在PAL的基础上设计的,与多种PAL器件保持了兼容性,可直接替换多种PAL器件,方便应用厂商升级现有产品,因此目前仍被广泛地使用。
GAL,通用阵列逻辑,英文全称:generic array logic。
GAL器件是从PAL发现过来的,其采用了EECMOS工艺使得该器件的编程非常方便,另外由于其输出采用了逻辑宏单元结构(OLMC—Output Logic Macro Cell),使得电路的逻辑设计更加灵活。
(4)FPGA:FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
5、可编程逻辑器件发展历程70年代:出现只读存储器PROM (Programmable Read only Memory),可编程逻辑阵列器件PLA (Programmable Logic Array)70年代末:AMD推出了可编程阵列逻辑PAL (Programmable Array Logic)80年代:Lattice公司推出了通用阵列逻辑GAL ( Generic Array Logic)80年代中:Xilinx公司推出了现场可编程门阵列FPGA (Field Programmable GateArray )。
Altera公司推出了可擦除的可编程逻辑器件EPLD (Erase Programmable LogicDevice),集成度高,设计灵活,可多次反复编程90年代初:Lattice公司又推出了在系统可编程概念ISP及其在系统可编程大规模集成器件ispLSI)现以Xilinx、Altera、Lattice为主要厂商,生产的FPGA单片可达上千万门、速度可实现550MHz,采用65nm甚至更高的光刻技术。
6、verilog语言命名规则(1)系统级信号的命名。
系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号;系统信号以字符串Sys开头。
(2)低电平有效的信号后一律加下划线和字母n。
如:SysRst_n;FifoFull_n;(3)经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别。
如CpuRamRd信号,经锁存后应命名为CpuRamRd_r。
低电平有效的信号经过锁存器锁存后,其命名应在_n后加r。
如CpuRamRd_n信号,经锁存后应命名为CpuRamRd_nr多级锁存的信号,可多加r以标明。
如CpuRamRd信号,经两级触发器锁存后,应命名为CpuRamRd_rr。
(4)模块的命名。
在系统设计阶段应该为每个模块进行命名。
命名的方法是,将模块英文名称的各个单词首字母组合起来,形成3到5个字符的缩写。
若模块的英文名只有一个单词,可取该单词的前3个字母。
各模块的命名以3个字母为宜。
例如:Arithmatic Logical Unit模块,命名为ALU。
Data Memory Interface模块,命名为DMI。
Decoder模块,命名为DEC。
(5)模块之间的接口信号的命名。
所有变量命名分为两个部分,第一部分表明数据方向,其中数据发出方在前,数据接收方在后,第二部分为数据名称。
两部分之间用下划线隔离开。
第一部分全部大写,第二部分所有具有明确意义的英文名全部拼写或缩写的第一个字母大写,其余部分小写。
(6)模块内部信号:模块内部的信号由几个单词连接而成,缩写要求能基本表明本单词的含义;单词除常用的缩写方法外(如:Clock-》Clk,Write-》Wr,Read-》Rd等),一律取该单词的前几个字母(如:Frequency-》Freq,Variable-》Var 等);每个缩写单词的第一个字母大写;若遇两个大写字母相邻,中间添加一个下划线(如DivN_Cntr);7、verilog 模块设计module 有几种端口设计Input 输入端口Output 输出端口Inout 输入输出/双向端口所有的端口隐含地声明为wire类型不能将input和inout类型的端口声明为reg数据类型,这是因为reg类型的变量是用于保存数值的,而输入端口只反映与其相连的外部信号的变化,并不能保存这些信号的值。
8、verilog语言中数据类型reg/wire区别wire型数据常用来表示以assign关键字指定的组合逻辑信号。
模块的输入输出端口类型都默认为wire型。
默认初始值是z。
reg型表示的寄存器类型。
always模块内被赋值的信号,必须定义为reg型,代表触发器。
默认初始值是x。
1、wire型的变量综合出来一般是一根导线;2、reg变量在always块中有两种情况:(1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)9、阻塞赋值与非阻塞赋值区别简单理解就是,阻塞赋值是按需执行,非阻塞赋值是并行执行。
书P19510、verilog时钟表示的特点规律always语句always语句包括的所有行为语句构成了一个always语句块。
该always语句块从仿真0时刻开始执行其中的行为语句;最后一条执行完成后,再开始执行其中的第一条语句,如此往复循环,直到整个仿真结束。
因此,always语句块常用于对数字电路中一组反复执行的活动进行建模。
比如大家熟知的时间信号发生,每半个时钟周期时钟信号翻转一次。
11、任务和函数的区别(1)函数只能与主模块共用一个仿真时间单位、而任务可以定义自己的仿真时间单位。
(2)函数不能启动任务,而任务能启动其他任务和函数(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量(4)函数返回一个值,而任务不返回值12、生产FPGA的两大厂商Xilinx(赛灵思)、Altera(阿尔特拉)13、常见的硬件描述语言VHDL /System C/ Verilog/Cynlib C++/superlog14、条件语句一定要完整?条件语句完整---形成组合逻辑电路不完整条件语句—形成时序逻辑电路15、assign—wire wire--regwire型用于assign的赋值,always@块下的信号用reg型。
这里的reg并不是真正的触发器,只有敏感列表内的为上升沿或下降沿触发时才综合为触发器。
时钟代码:output [31:0] counter_out;reg [31:0] counter_out;always @ (posedge CLOCK_50) // on positive clock edge begincounter_out <= #1 counter_out + 1;// increment counter endendmodule // end of module counter跑马灯代码:第二种:数码管代码:modulemy_third1(a,b,c,d,a_1,a_2,a_3,a_4,a_5,a_6,a_7,e); inputa,b,c,d;outputa_1,a_2,a_3,a_4,a_5,a_6,a_7,e;reg a_1,a_2,a_3,a_4,a_5,a_6,a_7;integer e;always @(*)beginif(a==0&&b==0&&c==0&&d==0)begin a_1=0;a_2=0;a_3=0;a_4=0;a_5=0;a_6=0;a_7=1;e=0;endelseif(a==0&&b==0&&c==0&&d==1)begin a_1=1;a_2=0;a_3=0;a_4=1;a_5=1;a_6=1;a_7=1;e=1;endelseif(a==0&&b==0&&c==1&&d==0)begin a_1=0;a_2=0;a_3=1;a_4=0;a_5=0;a_6=1;a_7=0;e=2;endelseif(a==0&&b==0&&c==1&&d==1)begin a_1=0;a_2=0;a_3=0;a_4=0;a_5=1;a_6=1;a_7=0;e=3;endelsea_1=1;a_2=0;a_3=0;a_4=1;a_5=1;a_6=0;a_7=0;e=4;endelseif(a==0&&b==1&&c==0&&d==1)begin a_1=0;a_2=1;a_3=0;a_4=0;a_5=1;a_6=0;a_7=0;e=5;endelseif(a==0&&b==1&c==1&&d==0)begin a_1=0;a_2=1;a_3=0;a_4=0;a_5=0;a_6=0;a_7=0;e=6;endelseif(a==0&&b==1&&c==1&&d==1)begin a_1=0;a_2=0;a_3=0;a_4=1;a_5=1;a_6=1;a_7=1;e=7;endelsea_1=0;a_2=0;a_3=0;a_4=0;a_5=0;a_6=0;a_7=0;e=8;endelseif(a==1&&b==0&&c==0&&d==1)begina_1=0;a_2=0;a_3=0;a_4=0;a_5=1;a_6=0;a_7=0;e=9;endendendmodule半加器的实现:原理:半加器是由两个一位输入实现的,与全加器的区别是不带进位加,相对比较简单,其逻辑关系为:进位输出:Ci+1=Ai*Bi和输出:Si = Ai^Bi其中*为与逻辑,^为异或逻辑。