1.4'b1001<<2=( 6'b100100),4'b1001>>2=( 4'b0010 )。
2、完整的条件语句将产生( 组合逻辑电路 )电路,不完整的条件语句将产生( 时序逻辑电路 )电路。
3、 用EDA技术进行电子系统设计的目标是最终完成(专用集成电路ASIC)的设计。
4、可编程器件分为(现场可编程列阵FPGA)和(复杂可编程逻辑器件 PLD)
5、系统函数和任务函数的首字符标志为($),预编译指令首字符标志为(#)。
6、一个基本的Verilog-HDL程序由(Verilog-HDL )模块构成。
7、EDA技术在应用设计领域主要包含哪四个方面的内容(HDL)、(PLD )、( EDA工具软件)、(EDA开发系统 )
8、EDA技术的基本特征主要有哪5个方面:(自顶向下的设计方法 )、(采用硬件描述语言)、(高层综合和优化 ).(并行工程)、(开放性和标准化) 9、当前最流行的并成为IEEE标准的硬件描语言是( VHDI )和( Verilog-HDL)
10、一个完整的Verilog-HDL设计模块包括:( 模块关键字和模块名 )、( 端口列表 )、(端口定义 )、( 功能描述 )这4部分。
11Verilog-HDL模块的I/O端口声明用来声明模块端口定义中各端口数据流动方向,包括(输入端口)、( 输出端口 )、和(双向端口 )
12、Verilog-HDL语言的三种常用的模型描述方法为(行为描述 )、( 数据描述)和(结构描述 )
13、Verilog-HDL的数值集合由哪四种基本的值组成( 0)、(1 )、 x)、( z )
14、10'hxf=( 10'xxxxxx1111 ) 10'hzf=( 10'zzzzzz1111 )
15、若a=5'b10x01,b=5'b10x01,则a= =b的结果为( X )、a= = =b的结果为( 1 )
16、Wire[15:0] wire-b表示连线宽度为(16 )位,其最高位为(15),最低位为(0)。
17、若A=5'b11011,B=5'b10101,则有&A=(0)|B=(1) ~A=(5'b00100)A&B(5'b10001)
18、若A=8'b1000_0100则A<<3的结果为(11'b10000100000)A>>3的结果为(8'b00010000)
19、对于Verilog-HDL语言中的关键字,在建模时都必须(小)写。
20、if(a) out1<=int1; else out1<=int2;当a= (1)执行out1<=int1 ;当a=(0) 执行out1<=int2
二、选择题:
21、在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
A、 8 B、16 C、32 D、
22、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( C ) 。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
23. 子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化( B )。
①流水线设计②资源共享③逻辑优化④串行化
⑤寄存器配平⑥关键 路径法
A.①③⑤ B.②③④ C.②⑤⑥ D.①④⑥
24、下列标识符中,( A)是不合法的标识符。
A、9moon B、State0 C、Not_Ack_0 D、signall
25、下列语句中,不属于并行语句的是:(D )
A、过程语句B、assign语句 C、元件例化语句D、case语句
26、在verilog中,下列语句哪个不是分支语句?( D )
A.if-else B、case C、casez D、 repeat
27、下列标示符哪些是合法的( B )
A、$time B、_date C、8sum D、mux#
28、如果线网类型变量说明后未赋值,起缺省值是( D )
A、x B、1 C、0 D、z
29、现网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A )
A、4'b1101 B、4'b0011 C、4'bxx11 D、4'bzz11
30、reg[7:0] mema[255:0]正确的赋值是( A )
A、mema[5]=3'd0,B、8' d0; C、1' b1; D、mema[5][3:0]=4' d1
31、\"a=4' b11001,b=4' bx110\"选出正确的运算结果( B )
A、a&b=0 B、a&&b=1 C、b&a=x D、b&&a=x
32、时间尺度定义为timescale 10ns/100ps,选择正确答案( C )
A、时间精度10ns B、时间单位100ps
C、时间精度100ps D、时间精度不确定
33、若a=9,执行$display(\"current value=%0b,a=%0d\正确显示为( B A、current value=1001,a=09 B、current vale=1001,a=9
C、1001,9 D、current vale=00...001001,a=9
34、aways begin #5 clk=0;#10 clk=~clk;end产生的波形( A )
A、占空比1/3 B、clk=1 C、clk=0 D、周期为10
35、在Verilog中定义了宏名 `define sum a+b+c 下面宏名引用正确的是(A、out='sum+d; B、out=sum+d; C、out=`sum+d; D、都正确
37、已知 \"a =1b'1; b=3b'001;\"那么{a,b}=( A )CDADC CBADD
A、 4b'0011 B、3b'001 C、4b'1001 D、3b'101
C )
)
39、请根据以下两条语句的执行:reg [7:0] A; A=2'hFF;最后变量A中的值是( A )
A 、8'b0000_0011 B、 8'h03 C、 8'b1111_1111 D 、8'b11111111
40、在verilog语言中,a=4b'1011,那么 &a=(D )
A、4b'1011 B、4b'1111 C、1b'1 D、1b'0
41简要说明仿真时阻塞赋值与非阻塞赋值的区别
① 非阻塞赋值方式(b<=a) 2.b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成的;硬件有对应的电路。 3.阻塞赋值方式(b=a) 4.b的值立刻被赋成新值a;完成该赋值语句后才能执行下一语句的操作,硬件没有对应的电路,因而综合结果未知。 5.阻塞语句是在该语句结束是立即完成赋值语句操作,非阻塞赋值是在整个过程块结束时才完成赋值操作。 42、EDA技术的主要特征有哪些?
(自顶向下的设计方法 )、(采用硬件描述语言 )、(高层综合和优化 )(.并行工程)、( 开放性和标准化 )
43、always语句和initial语句的关键区别是什么?能否相互嵌套?
Always是循环语句,initial只是执行一次,它们不能镶嵌。
45、简述基于数字系统设计流程包括哪些步骤?
(1)设计输入,将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行
语法或逻辑检查,通过表示输入完成,否则反复检查到无任何错误。 (2)逻辑综合,将高层的设计描述自动化转化为较低层次描述过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成逻辑网表的过程。
(3)布局布线,将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。
(4)仿真,就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证并排除错误的过程,包括功能仿真和时序仿真。
(5)编程配置,将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。
46、采用结构描述方法设计一个二进制数字半加器,输入数据ai与bi,
并将和输出到so,进位输出到co,给出详细设计过程。
输入
输入
输出
输出
a1
b1
s0
c0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
so=a1b1'+a1'b1
co=a1b1
module half_adder(a1,b1,s0,c0);
input a1,b1;
outputs0,c0;
xor(s0,a1,b1);
and(c0,a1,bl);
Endmodule
一选择题
1在Verilog中,下列语句那个不是分支语句( d)
A if--else Bcase Ccasez Drepeat
2下列那些不是属于基本门级原件(D)
A nand Bnor Cand DRAM
3已知\"a=1b'1;b=3b001;\"那么{a,b}=(c)
A 4b'0011 B3b'001 C4b'1001 D3b'101
4下列标识符中,-------是不符合的标识符(D)
A 9moon BState0 CNot_ack_0 Dsignall
5下列语句,不属于并行语句的是(D)
A 过程语句 Bassign语句 C元件例化语句 Dcase语句
6 O,P,Q,R都是4bit的输入矢量,下面那一种表达式是正确的(E)
A pinput p[3:0] Q,R ;
Binput p,Q[3:0] ;
Cinput p,Q[3:0] ,Q[3:0] ,R[3:0] ;
Dnput [3:0]P ,[3:0]Q ,[0:3] R ;
Enput [3:0] ,P,Q ,R ;
7请根据以下两条语句的执行,最后变量A中的值是(A)
Reg[7:0] A A=2'hFF
A 8;b0000,0011 B 8'h03 C 8;b1111,0011 D 8;b1111,1111
二填空题目
1 完整的条件语句将产生 组合逻辑电路 ,不完整的条件语句将产生时序逻辑电路。
2阻塞性赋值符号是=,非阻塞性赋值符号是 <=。
三程序题
Verilog 代码如下:
module INST2[yout,adder];
Output[7:0] yout;
Input[2:0] adder;
assign yout[0]((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[1]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[2]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[3]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[4]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[5]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[6]=((-adder[2]&(-adder[1]))&(-adder[0]);
assign yout[7]=((-adder[2]&(-adder[1]))&(-adder[0]);
endmodule
功能:3-8译码器,高电平有效
采用数据结构描述方式设计一个二进制半加器,输入数据,a1和b1,
并将输出到s0,进位输出c0,输出详细设计过程。
输入
输入
输出
输出
a1
b1
s0
c0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
so=a1b1'+a1'b1
co=a1b1
module half_adder(a1,b1,s0,c0);
input a1,b1;
outputs0,c0;
xor(s0,a1,b1);
and(c0,a1,bl);
Endmodule
4 程序注释,并说明整个程序完成的功能。
module AAA (a,b);定义模块名为AAA端为(a,b)
output a;定义a为输出端口
input b;定义b为输入端口,b为下位二进制数
reg[2:0] sum;sum为寄存器变量类型,用于统计赞成的人数
integer i;定义整型变量为循环变量
reg a;定义a为寄存器变量
always @ (b)过程语句,敏感变量为b
begin语句块
sum=0;sum的初值为0
for(i=0;i<=b,i+1)for语句,统计b的个数
if(b[i]) sum=sum+1条件语句,只要有人投赞成票,则是sum加1
if(sum[2]) a=1,else a=0;只要超过四个人赞成,则表示
通过,若不到四个人,则表示不通过。
end
endmodule
逻辑功能(7个人投决表决器)
4 根据下列给定的仿真输入,输出,波形图形,说明完成此功能的电路是什么功能,并
写出对应的Verilog HDL描述程序(图中clk,clr为输入,q,c为输出)
module counter(clk,clr,q,c);
input clk ,clr;
output ret[1:0] q;
output c;
always @ (posedge clk or negedge clr)
begin
if(~dr) q<=2'ho;
else
begin
if(2'h3==q)q<=2'ho;
else q<=q+2'ho;
end
end
assign c=(2'h3==q)
endmodule
5 编程实现带同步清零,同步置一的D触发器。
module D_EF(q,qn,d,clk,reset,set);
input d,clk,set,reset;
output q,qn;
always @ (posedge clk)
begin
if(!reset)begin q<=0;qn<=1;end同步清零(高电平有效)
else If(!set)begin q<=1;qn<=1;end同步置一(高电平有效)
else begin q<=~d;qn<=~d;end
end
endmodule
6描述一个异步清零D触发器
module D_EF(q,qn,d,clk,reset,set);
input d,clk,set,reset;
output q,qn;
always @ (clk or negedge set or negedge reset)
begin
if(!reset)begin q<=0;qn<=1;end异步清零(低电平有效)
else If(!set)begin q<=1;qn<=1;end异步置一(低电平有效)
else begin q<=~d;qn<=~d;end
end
endmodule
7标注各语句功能,指出整个程序完成的电路功能。
module dff_syn(q,qn,d,clk,reset,set);定义模块
input d,clk,set,reset;定义输入端口
output q,qn;定义输出端口
always @ (posedge clk)对clk信号上升沿有效
begin
if(~reset)begin q<=1'b0;qn<=1'b1;end同步清零,低电平有效
else If(~set)begin q<=1'b1;qn<=1'b0;end同步置一,低电平有效
else begin q<=d;qn<=~d;end q输出为q。Qn输出为非d
end
endmodule模块结束
8采用结构描述方法设计一个二进制数字比较器,比较输入数据a与b的大小,
并分别输出x,y,z给出详细的设计过程。
module bjq(a,b,x,y,z)
input [1:0]a;
input [1:0]b;
output x,y,z;
wire a,b,not_ab;
not(not_a,a);
not(not_b,b);
and(ab,a,b);
and(not_ab,not_a,not_b);
or(x,ab,not_ab);
and(y,not_a,b);
and(z,a,not_b);
endmodule
9 采用结构描述方法设计一个三人竞选数字电路,输入数据[2:0],要求2人以上为1
表示通过,且输出为1,否则输出相反,给出详细设计过程。
y=ab+ac+bc
module three(x,y);
input[2:0] x;
outputy;
wire a,b, c;
and(a,x[0],x[1]);
and(b,x[1],x[2]);
and(c,x[1],x[0]);
or(y,a,b,c)
endmodule
四 程序设计
1设计两个两位全加器信号关系及实现四位全加器的功能部分程序。
module add2(ai,bi,ci,sum,cout);
input [1:0]ai,bi;input ci;
output [1:0]sum;reg[1:0]sum;
output cout;reg cout;
always @(ai,bi,ci)
{cout,sum}=ai+bi+ci;
endmodule
module add4(a,b,c,sum,cout);
input [3:0]ai,b;input c;
output [3:0]sum4output cout4;
wire c0;
add4 U1(a[1:0],b[1:0],c[1:0],sum4[1:0]);
add4 U2(a[1:0],b[1:0],c[1:0],cout4,sum[3:0]);
endmodule
2设计一个全加器
module full_add(a,b,ci,sum,c0);
input a,b,ci;
output sum,c0;
assign sum=a ^ b ^ ci;
assign co=(a&b) | (b&c) | (c&a);
endmodule
3 设计一个分频器
module div1hz (clk_50m,rst_n,clk_1);
input clk_50m;
input rst_n;
output clk_1;
reg clk_1;
reg [24:0] cout;
always @ (posedge clk_50m or negedge)
begin
if(!rst_n)
begin
count <= 25'd0;
clk_1 <= 1'b0;
end
else
begin
if(count ==25'd99)
begin
count <= 25'd0;
clk_1<= ~clk_1;
end
else
count <= count + 1'b1;
end
end
endmodule
4 单灯闪烁
module sinled (clk_50M,rst_n,dataout);
input clk_50M;
input rst_n;
output dataout;
reg dataout;
reg [24:0] count;
always @ (posedge clk_50M or negedge rst_n)
begin
if(!rst_n)
count <= 1'b0;
count <=count+1;
end
always @ (posedge clk_50M or negedge rst_n)
begin
if(!rst_n)
dataout <= 1'b0;
else
case ( count[24])
0:dataout<=1'b0;
1:dataout<=1'b1;
endcase
5八选一数据选择器代码
//Verilog八选一数据选择器
module sel(a, b, c, d, e, f, g, h, s0, s1, s2, out);
input [2:0]a;
input [2:0]b;
input [2:0]c;
input [2:0]d;
input [2:0]e;
input [2:0]f;
input [2:0]g;
input [2:0]h;
input s0, s1, s2;
output [2:0] out;
reg [2:0] out;
always@(a, b, c, d, e, f, g, h, s0, s1, s2)
begin
case({s0, s1, s2})
3'd0 : out= a;
3'd1 : out= b;
3'd2 : out= c;
3'd3 : out= d;
3'd4 : out= e;
3'd5 : out= f;
3'd6 : out= g;
3'd7 : out= h;
endcase
end
endmodule
6蜂鸣器
module buzzer(clk_50M,beep);
input clk_50M;
output beep;
reg beep;
reg [14:0] counter;
reg [23:0] tone;
parameter clkividern =50000000/440/2;
always @ (posedge clk_50M)
begin
tone <= tone+1'b1;
end
always @ (posedge clk_50M)
begin
if(counter==0)
counter <= (tone[23] ? Clkdivider-1 :clkdivider/(2-1);
else counter <=counter-1;
end
always @ (posedge clk_50M)
begin
if(counter==0)
beep <= -beep;
end
endmodule
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务