1.用EDA技术进行电子系统设计的目标是最终完成(ASIC)的设计与实现。
Application Specific Integrated Circuit专用集成电路
2.可编程器件分为(FPGA)和(CPLD)。
Field Programmable Gate Array,即现场可编程门阵列,Complex Programmable Logic Device复杂可编程逻辑器件
3.随着EDA技术的不断完善与成熟,(自顶向下)的设计方法更多的被应用于Verilog HDL设计当中。
4.目前国际上较大的PLD器件制造公司有(Altera)和(Xilinx)公司。
5.完整的条件语句将产生(组合逻辑)电路,不完整的条件语句将产生(时序逻辑)电路。
6.阻塞性赋值符号为(=),非阻塞性赋值符号为(<=)。
9.状态机常用状态编码有_二进制_、_格雷码_和_独热码_。
10.Verilog HDL中任务可以调用_其他任务_和__函数__。(函数只能调用其他函数)
12.可编程逻辑器件的优化过程主要是对___速度___和__资源__的处理过程。
13、大型数字逻辑电路设计采用的IP核有__软IP__、__固IP___和__硬IP__。
1、某一纯组合电路输入为in1,in2和in3,输入出为out,则该电路描述中always的事件表达式应写为always@(in1,in2,in3),若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always@(posedge clk)。
2、在模块中对任务进行了定义,调用此任务,写出任务的调用mytask(f,g,m,n,p);。
task mytask; 要求:变量的传递关系如下
output x,y; m——a,n——b,p——c,x——f,y——g
input a,b,c;
……
endtask
3、if(a) out1<=int1; else out1<=int2;
当a=1执行out1<=int1,当a=0或x或z执行out1<=int2
4、4’b1001<<2=6’b100100,4’b1001>>2= 4’b0010。
1、下列标识符哪些是合法的(B)
A、$time B、_date C、8sum D、mux#
只能是下划线或字母开头,D不能有#
2、如果线网类型变量说明后未赋值,缺省值是(D)
A、x B、1 C、0 D、z
wire默认为z,reg默认为x
3、线网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A)
A、4’b1101 B、4’b0011 C、4’bxx11 D、4’bzz11
4、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;
A会把mema[5]的8位都赋值为0,D会把mema[5]的低4位赋值为0001
5、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是(D)
module code(x,y); module top;
parameter delay1=1,delay2=1; …………….
……………………………… code #(1,5) d1(x1,y1);
endmodule endmodule
A、(1,1) B、(5,5) C、(5,1) D、(1,5)
6、“a=4’b1001,b=4’bx110”选出正确的运算结果(B)
A、a&b=0 B、a&&b=1 C、b&a=x D、b&&a=x
a&b=4’bx000
7、时间尺度定义为timescale 10ns/100ps,选择正确答案(C)
A、时间精度10ns B、时间单位100ps C、时间精度100ps D、时间精度不确定
/左右分别为时延单位和时延精度
8、若a=9,执行$display(“current value=%0b,a=%0d”,a,a)正确显示为(B)
A、current value=1001,a=09 B、current value=1001,a=9
C、1001,9 D、current vale=00…001001,a=9
%0d表示前面不含0
9、aways begin #5 clk=0; #10 clk=~clk; end产生的波形(A)
A、占空比1/3 B、clk=1 C、clk=0 D、周期为10
占空比为有效电平在一个周期之内所占的时间比率
10、在Verilog中定义了宏名 `define sum a+b+c 下面宏名引用正确的是(C)
A、out=’sum+d; B、out=sum+d; C、out=`sum+d; D、都正确
引用时加`
写出下列缩写的中文含义:
ASIC :专用集成电路
RTL:寄存器传输级
FPGA:现场可编程门阵列
SOPC:可编程片上系统
CPLD:复杂可编程逻辑器件
LPM:参数化模块库(Library of Parameterized Modules)
EDA:电子设计自动化
IEEE:电气和电子工程师协会(Institute of Electrical and Electronics Engineers)
IP:知识产权核(intellectual property core)
ISP:在系统可编程(In-System Programmability)
1.阻塞赋值与非阻塞赋值的区别?
非阻塞赋值方式b<=a;
各条非阻塞赋值语句的执行没有先后之分,排在前面的语句不会影响到后面语句的执行,各条语句并行执行;
阻塞赋值方式b=a;
各条阻塞赋值语句按照排列顺序依次执行,先计算右端表达式的值,然后立刻将计算的结果赋给左边的变量;
2.简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?FSM的三段式描述风格中,三段分别描述什么?
Mealy型,Moore型;
前者输出与输入、当前状态有关,而后者输出只和当前状态有关;
Binary,Gray,One-Hot编码;
三段式分别描述:
第一段同步时序always块,描述状态寄存(次态寄存器迁移到现态寄存器),
第二段组合逻辑always块,描述状态转移条件判断,
第三段描述状态输出;
1.用Verilog HDL描述一个带进位输入、输出的4位全加器。
端口:A、B为加数,CIN为进位输入,S为和,COUT为进位输出
module adder4(
input [3:0] a,b,
input cin,
output [3:0] s,
output cout
);
assign {cout,s} = a + b + cin;
endmodule
2.编写一个带异步清零、异步置位的D触发器。
module dff(
input clk,set,reset,d,
output reg q,qn
);
always @(posedge clk or negedge reset or negedge set) begin
if(!reset) begin
q <= 0;
qn <= 1;
end
else if(!set) begin
q <= 1;
qn <= 0;
end
else begin
q <= d;
qn <= ~d;
end
end
endmodule
3.设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
module cnt10(
input clk,en,rstn,
output reg [3:0] cnt
);
always @(posedge clk or negedge rstn) begin
if(!rstn)
cnt <= 4'd0;
else if(en) begin
if(cnt == 4'd9)
cnt <= 4'd0;
else
cnt <= cnt + 4'd1;
end
end
endmodule
1、always语句和initial语句的关键区别是什么?能否相互嵌套?
always语句每当敏感条件列表满足时,就会执行一次;
initial只执行一次;
它们不能嵌套;
3、画出下面程序综合出来的电路图。
always@(posedge clk)
begin
q0<=~q2;
q1<=q0;
q2<=q1;
end
4、HA模块程序如下,写出引用HA模块描述FA模块的Verilog程序。
module HA(A,B,S,C);
input A,B;
output S,C;
assign {C,S}=A+B;
endmodule
module FA(
input A,B,Ci,
output Co,S
);
wire S1,C1,C2;
HA U1(A,B,S1,C1);
HA U2(S1,Ci,S,C2);
assign Co = C1 | C2;
endmodule
1、设计奇偶校验位生成电路,输入八位总线信号bus,输出奇校验位odd,偶校验位even。
module parity(
input [7:0] bus,
output even,odd
);
assign even = ^bus; // xor检查1的个数,为奇数输出1,为偶数输出0
assign odd = ^~bus;
endmodule
2、设计一个带复位端且对输入时钟clk进行二分频模块,并画出仿真波形。
设计要求:复位信号为同步、高电平有效,时钟的下降沿触发
module div2(
input clk,rst,
output reg out
);
always @(negedge clk) begin
if(rst)
out <= 1'b0;
else
out <= ~out;
end
endmodule
3、设计一带异步复位端、异步置数端(低电平有效)的四位加法计数器,时钟clk上升沿有效),复位信号clr,置数信号load、输入数据data、输出qout。
module cnt(
input clk,clr,load,
input [3:0] data,
output reg [3:0] qout
);
always @(posedge clk or negedge load or negedge clr) begin
if(!clr)
qout <= 1'b0;
else if(!load)
qout <= data;
else
qout <= qout + 4'd1;
end
endmodule