EDA练习题

更新时间:2024-03-01 20:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 叙述数字ASIC设计流程;

2. 简述全定制设计和半定制设计; 3. 简述摩尔定理;

4. 解释ASIC,FPGA及其区别; 5. 叙述IC制造工艺流程; 6. 什么是测试平台? 7. 什么是测试激励? 8. 什么是形式验证;

9. 什么是STA,做什么事情? 10. 什么是电路综合? 11. 叙述电路综合流程;

12. target_library和getech_library作何用途? 13. 综合过程中,什么是约束? 14. 环境设置是指什么?

15. 综合时不想使用某些库单元进行mapping,怎么办? 16. 如何对电路的速度进行约束?

17. 当一个组合电路超过了时钟周期约束,那么该如何处理? 18. 电路验证的目的是什么?

19. 电路验证分哪几类,各实现什么功能? 20. 验证有哪些内容?

21. 综合时,有多少选择综合策略呢? 22. 什么是芯片测试:电路产品是否合格 23. 什么是故障检测?

23. 简要描述测试码的生成方法有哪些?

24. 解释什么是BIST?存储器 BIST通过内部的控制逻辑按预定的算法产生设计存储器(如:

RAM)的输入样本。输出样本被BIST压缩成一个特征值,一个比较器将特征值进行比较并生成一个pass/fail信号,指示存储器的正确性

25. 名字解释,SOC

26.描述逻辑综合的流程,综合过程中使用了哪些库,分别是做什么用途,列举5个综合的命令,并说明其含义。create_clock 定义寄存器和寄存器之间的路径; set_input_delay 定义输入与寄存器之间的路径; set_output_delay 定义寄存器与输出之间的路径;

set_max_delay 和 set_min_delay定义输入和输出的组合路径;

27.简要描述什么是可测性设计,可测性设计有什么关键技术?

28. 用verilog语言描述下图所示的D触发器,并编写testb

1

ench

`

29.由已设计的D触发器构成4位的寄存器,写出其verilog描述,,并编写testbench

q3

d

q d

q2

d

q1

d

q0

f4

clr

f3

clr

q f2

clr

q f1

clr

q clk clk clk clk

clrb clk

d3

d2 d1 d0

timescale 10ns/10ns module d_ff_flow; reg sys_clk; reg rst; reg D; wire Q; wire Q_n; d_ff u1(

.sys_clk(sys_clk), .rst(rst), .D(D), .Q(Q), .Q_n(Q_n) );

initial begin

sys_clk=0;

2

while(1)

#1 sys_clk=~sys_clk; end

initial begin rst=0; while(1) #2 rst=~rst; end

initial begin D=0; while(1) #3 D=~D; end

initial begin

$display($time,\end

endmodule

30、用verilog语言设计如图所示的状态机,并且写出测试文件(testbench)。

/ G = 0 A ! R e s e t / F = 0 G = 0 S t a r t A ! ! R e s e t / F = 0 G = 0 e s e t / F = 0 G = 0 !RI d l e S t o p e s e t | ! A / F = 0 G = 1 !Rmodule

C l e a r A / F = 1 fsm (Clock, Reset, A,F,G); //模块声明

input Clock, Reset, A; output F,G; reg F,G;

reg [3:0] state ;

parameter //状态声明

Idle = 4’b1000, Start = 4’b0100, Stop = 4’b0010, Clear = 4’b0001;

3

always @(posedge clock) if (!Reset) begin

state <= Idle; F<=0; G<=0; //默认状态 end

else case (state)

Idle: begin //Idel状态

if (A) begin

state <= Start; G<=0; end

else state <= Idle; end

Start: //Start状态

if (!A) state <= Stop; else state <= Start;

Stop: begin //Stop状态

if (A) begin

state <= Clear;

F <= 1; end

else state <= Stop; end

Clear: begin //Clear状态

if (!A) begin

state <=Idle; F<=0; G<=1; end

else state <= Clear; end

default: state <=Idle; //默认状态

endcase endmodule

31、除法器的输入输出入下:

module divider_pipeline(clk, rst_n, valid_in, divident, divisor,

4

quotient, remainder, div0, valid_out);

input [divident_width-1 :0] divident; // divident 1 bit sign, 16 bits integer part

input [divisor_width-1 :0] divisor; // divisor 1 bit sign, 16 bits integer part output [quotient_width-1 :0] quotient; // quotient, 1 bit sign, 16 bits integer part, 12 output [remainder_width-1:0] remainder; // remainder, 1 bit sign, 4 bits integer part, 12 output div0; output valid_out; //

// parameters //

parameter divident_width = 17; parameter divisor_width = 17; parameter quotient_width = 29; parameter remainder_width = 17; parameter TP = 0; //

// inputs & outputs //

input clk; // system clock input rst_n;

input valid_in; // clock enable

bits fraction part bits fraction part

请写出除法器的testbench,满足做实验时的要求。(1-6) (1) 自动判断电路是否正确 (2) 如有错误,计数

(3) 顺序产生,正数除以正数,正数除以负数,负数除以正数,负数除以负数; (4) 除数为0;

(5) 除数和被除数随机产生 32. 测试码生成的一般步骤。 33. 可测性设计的目标。

34. 什么是硬件加速?硬件加速就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。 35. 集成电路有几大行业? 36. Verilog的编写规范

37. Verilog编写和testbench一定要会。

38. 用verilog设计8位全加器,并编写Testbench module adder_8(sum,c,a,b,cin); output[7:0] sum; output c;

input[7:0] a,b; input cin;

5

assign {c,sum}=a+b+cin; Endmodule

module adder_8_vlg_tst(); // constants

// general purpose registers reg eachvec;

// test vector input registers reg [7:0] a; reg [7:0] b; reg cin; // wires wire c;

wire [7:0] sum;

// assign statements (if any) adder_8 i1 (

// port map - connection between master ports and signals/registers .a(a), .b(b),

.c(c),

.cin(cin),

.sum(sum) ); initial begin

a=8'd0;b=8'd0;cin=1'b0;

#10 a=8'd20;b=8'd30;cin=1'b1; #10 a=8'd30;b=8'd45;

#10 a=8'd138;b=8'd105;cin=1'b0; #10 a=8'd100;b=8'd215;cin=1'b0; #10$finish; end

initial $monitor($time,,\endmodule

6

assign {c,sum}=a+b+cin; Endmodule

module adder_8_vlg_tst(); // constants

// general purpose registers reg eachvec;

// test vector input registers reg [7:0] a; reg [7:0] b; reg cin; // wires wire c;

wire [7:0] sum;

// assign statements (if any) adder_8 i1 (

// port map - connection between master ports and signals/registers .a(a), .b(b),

.c(c),

.cin(cin),

.sum(sum) ); initial begin

a=8'd0;b=8'd0;cin=1'b0;

#10 a=8'd20;b=8'd30;cin=1'b1; #10 a=8'd30;b=8'd45;

#10 a=8'd138;b=8'd105;cin=1'b0; #10 a=8'd100;b=8'd215;cin=1'b0; #10$finish; end

initial $monitor($time,,\endmodule

6

本文来源:https://www.bwwdw.com/article/eoha.html

Top