EDA试题

更新时间:2023-10-09 20:48:01 阅读量: 综合文库 文档下载

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

1. wire型变量与reg型变量有什么本质区别?它们可以用于什么类型语句中? 2. 阻塞赋值与非阻塞赋值有何区别?

1. 用Verilog设计一个3-8译码器。

2. 设计一个异步清0,同步时钟使能和异步数据加载型8位二进制加法计数器。参考例3-22

CNT10clkrstenloaddata[3..0]coutdout[3..0] 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的计数器。

74160LDNABCDENTENPCLRNCLKinstQAQBQCQDRCO 4. 设计一个含有异步清零和计数使能的16位二进制加减可控计数器的Verilog HDL描述。

inst1COUNTER

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 1ns/100ps中,程序中的仿真精度为 100ps 。

8.完成语句,使rand0产生一个(-59,59)的随机数。 reg[23:0] rand0; rand0= ;

3.利用行为描述设计如下四选一的数据选择器,完成程序填空 module MUX41a(a,b,c,d,s1,s0,y); input a,b,c,d,s1,s0; output y; reg y;

always@(a,b,c,d, s1,s0) begin case({s1,s0}) 2 'b00: y=a;

2 'b01: y=b; 2 'b10: y=c; 2 'b11: y=d; default: y=0; endcase end endmodule

abcdy

module MUX41a(a,b,c,d,s1,s0,y); input a,b,c,d,s1,s0; output y;

s1s0

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

Top