EDA试题
- 格式:docx
- 大小:37.20 KB
- 文档页数:16
EDA试题
1.
wire型变量与reg型变量有什么本质区别?它们可以用于什么类型语句中?
9.阻塞赋值与非阻塞赋值有何区别?
1.用Verilog设计一个3-8译码器。
2.设计一个异步清0,同步时钟使能和异步数据加载型8位二进制加法计数器。参考例3-22
module CNT10(clk,rst,en,load,cout,dout,data);
input clk,en,rst,load;
input [3:0] data;
output[3:0] dout;
output cout;
reg [3:0] q1; reg cout;
assign dout=q1;
always@(posedge clk or negedge rst or negedge load) begin
if(!rst) q1<=0;
else if(!load) q1<=data;
else if(en) begin
if (q1<9) q1<=q1+1;
else q1<=4'b0000;
end end always@(q1) if(q1==4'h9) cout=1'b1;
else cout=1'b0;
endmodule
3.设计一个功能类似74LS160的计数器。
4.设计一个含有异步清零和计数使能的16位二进制加减可控计数器的Verilog HDL描述。
5.设计七人表决器。
module voter7(pass,vote);
output pass;input [6:0] vote;
reg pass;reg [2:0] sum;
always @(vote)
begin
sum=0;
if(vote[0]==1) sum=sum+1'b1;
if(vote[1]==1) sum=sum+1'b1;
if(vote[2]==1) sum=sum+1'b1;
if(vote[3]==1) sum=sum+1'b1;
if(vote[4]==1) sum=sum+1'b1;
if(vote[5]==1) sum=sum+1'b1;
if(vote[6]==1) sum=sum+1'b1;
if(sum[2]) pass=0; //若超过4人赞成,则pass=0,LED1亮 else pass=1;
end
endmodule
Altera Xilinx
一、填空题(10分,每小题1分)
1.用EDA技术进行电子系统设计的目标最终完成 ASIC 的设计与实现。
2.可编程逻辑器件分为 FPGA 和 CPLD 。
3.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于Verilog HDL设计当中。
4.目前国际上较大的PLD器件制造公司有 Altera 和 Xilinx 公司。
5.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6.阻塞性赋值符号为=,非阻塞性赋值符号为<=。
二、选择题(10分,每小题2分)
1.大规模PLD器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是 C 。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera 公司生产的器件中,MAX7000系列属于FPGA结构。
2.基于EDA软件的FPGA/CPLD设计流程为:原理图/HDL文本输入→综合→→→适配→编程下载→硬件测试。正确的是 B 。
①功能仿真②时序仿真③逻辑综合④配置⑤分配管脚
A.③①
B. ①⑤
C. ④⑤
D. ④②
3.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化 B
①流水线设计②资源共享③逻辑优化④串行化⑤寄存器配平⑥关键路径法
A. ①③⑤
B. ②③④
C. ②⑤⑥
D. ①④⑥
4.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是速度优化 C
①流水线设计②资源共享③逻辑优化④串行化⑤寄存器配平⑥关键路径法
A. ①③⑤
B. ②③④
C. ①⑤⑥
D. ①④⑥
①②③④⑤⑥
5.下列标识符中, A 是不合法的标示符。
A. 9moon
B. State0
C. Not_Ack_0
D. signal1
6.下列语句中,不属于并行语句的是: D 。
A. 过程语句
B. assign语句
C. 元件例化语句
D. case语句
三、名称解释
RTL寄存器传输级
LPM参数可定制宏模块库 IEEE电子电气工程师协会
ISP在系统可编程
五、程序注释
module AAA(a,b);
output a;
input[6:0] b;
reg[2:0] sum;
integer I;
reg a;
always@(b)
begin sum=0;
for(i=0;i<=6;i=i+1)
if(b[i]) sum=sum+1;
if(sum[2]) a=1;
else a=0;
end
endmodule
本程序的逻辑功能是:7人表决器
六、编程题
1.(例3-11 /3-12)试用Verilog HDL描述一个带进位输入、输出的8位全加器。端口:A、B为加数,CIN为进位输入,SUM为和,COUT为进位输出
参考程序1:
module ADDER8B(A,B,CIN,COUT,SUM);
output[7:0] SUM; output COUT;
input[7:0] A,B; input CIN; wire [8:0] DATA;
assign DATA=A+B+CIN;
assign COUT=DATA[8];//进位
assign SUM=DATA[7:0];//和
endmodule 参考程序2:
module ADDER8B(A,B,CIN,COUT,SUM);
output[7:0] SUM; output COUT;
input[7:0] A,B; input CIN;
assign {COUT,SUM}=A+B+CIN;//操作的进位进入并位COUT
endmodule
2.编写一个带异步清零、异步置位的D触发器。
端口:CLK为时钟,D为输入,RST为清零输入端,SET为置位输入端;Q,QN输出端
module DFF1(CLK,D, RST,SET,Q,QN);
input CLK,D, RST,SET;output Q,QN;
reg Q,QN;
always@(posedge CLK or negedge SET or RST)
begin
if(!RST) 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.(例3-22)设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。端口设定如下:
输入端口:clk:时钟,rst:复位端,en:时钟使能端,load:置位控制端,data:置位数据端;
输出端口:cout:进位输出端,dout:计数输出端
module CNT10(clk,rst,en,load,cout,dout,data);
input clk,en,rst,load;
input [3:0] data;
output[3:0] dout;
output cout;
reg [3:0] q1; reg cout; assign dout=q1;
always@(posedge clk or negedge rst) begin
if(!rst) q1<=0;
else if(en) begin
if(!load) q1<=data;
else if (q1<9) q1<=q1+1;
else q1<=4'b0000;
end
end
always@(q1)
if(q1==4'h9) cout=1'b1;
else cout=1'b0;
endmodule
一、填空题(共10分,每空1分)
1.变量是在程序运行过程中其值可以改变的量。变量分为两种,一种为网线类型,一般指示硬件电路的物理连接,另一种是寄存器,对应的是具有状态保持作用的电路元件。
2.Verilog HDL中,如果一个给定的整数没有定义大小(size),缺省为32位。
3. Verilog采用四值逻辑系统,0表示低电平,1表示高电平,x表示不确定,z 表示高阻态。
4.实际组合电路中,信号经过不同的路径到达某个门电路的输入端,有先有后,这种现象称为竞争冒险。
5.有限状态机是由时序和组合逻辑构成的硬件时序电路;其状态只能在时钟发生跳变的情况下才能从一个状态转向另一个状态。
6.状态机按照输出逻辑可以分为两种,一种称为Mealy 状态机,其时序逻辑的输出不仅取决于当前状态,还取决于输入;另一种称为Moore状态机,其时序逻辑的输出只取决于当前状态。
7.`timescale用于说明程序中的时间单位和仿真精度,语句`timescale