数字电路与EDA设计 模拟题.docx

上传人:b****8 文档编号:28612142 上传时间:2023-07-19 格式:DOCX 页数:13 大小:1.27MB
下载 相关 举报
数字电路与EDA设计 模拟题.docx_第1页
第1页 / 共13页
数字电路与EDA设计 模拟题.docx_第2页
第2页 / 共13页
数字电路与EDA设计 模拟题.docx_第3页
第3页 / 共13页
数字电路与EDA设计 模拟题.docx_第4页
第4页 / 共13页
数字电路与EDA设计 模拟题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数字电路与EDA设计 模拟题.docx

《数字电路与EDA设计 模拟题.docx》由会员分享,可在线阅读,更多相关《数字电路与EDA设计 模拟题.docx(13页珍藏版)》请在冰豆网上搜索。

数字电路与EDA设计 模拟题.docx

数字电路与EDA设计模拟题

upc

一、填空题

1.以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术为

(1)(写全拼)。

2.在IC设计领域中,实现某种功能的设计被称为

(2);此种模块可分为哪三种类型(3)、(4)、(5)

3.

上图给出了芯片的内部结构的简单示意,此图描述的是(6)技术,如果芯片是可编程的则这种技术被称为(7)。

4.在数字系统设计方法中,(8)的设计方法将设计分成几个不同的层次:

系统级、功能级、门级、开关级等,按照自上而下的顺序,在不同层次上进行设计和仿真。

5.基于FPGA/CPLD的数字系统的设计流程主要是输入、(9)、(10)和编程下载四个过程(不考虑仿真)。

6.基于FPGA/CPLD的数字系统设计流程中,设计输入中最重要的手段是采用硬件描述语言(HDL),目前IEEE标准主要有三种,分别是(11)、(12)、(13)。

7.下列VerilogHDL中标识符,那些是不正确的$sin、Module、P6_8_5.6、A30cout、r-out,(14)(写上不正确的标识符)。

8.常量定义,3’b1001_001=3’b(15);10’hxA=10’b(16);定义一个名为sel值为8的符号常量(17)。

9.有如下数据类型定义和操作

Integer[15:

0]i;i[15:

13]=0;(18)(对、错)

reg[15:

0]j;j[15:

13]=0;(19)(对、错)

10.寄存器与触发器是verilogHDL中重要的数据类型,试定义一个容量为4,字长为2的存储器(Memory),(20),并对此存储器初始化为全0,则对此存储器初始化语句为(21)。

11.A=4’b0001,B=4’b0000,C=4’b0010,则求下面的值A||B=(22);!

C=(23);~A=(24)。

12.代码如下,请写出输出结果

moduletest;

reg[8:

0]b=-9'b00001111,c=-10;

initialbegin

$monitor(“b=%dc=%d”,b,c);

end

endmodule

运行结果:

b=(25)c=(26)

13.某模块的描述如下,请补齐代码。

always@(posedgeclkor(27)clror(28)rest)

if(!

clr)代码略。

else(rest)代码略

14.reg[5:

0]a=6’b001_011,c;reg[3:

0]b=4’b1001;reg[8:

0]d;c={a,b};d={a,b};c、d的值分别为c=(29),d=(30)。

二、程序阅读题

1、(4分)补全下面程序。

下面程序实现数据值得传递,如a=3,b=4,c=5;分别用阻塞赋值和非阻塞赋值方式实现,将a的值赋给b,b的值赋给c。

运行结果a=3,b=3,c=4

moduleN_block(c,b,a,clk);

inputclk,a;outputc,b;

regc,b;

always@(posedgeclk)

begin

(1)阻塞赋值2分

(2)非阻塞赋值2分

endendmodule

2、(4分)下面程序是用循环语句实现7人投票表决器,请补全程序。

modulevoter7(pass,vote);

outputpass;(3)1分;

reg[2:

0]sum;integeri;regpass;

always@((4)1分)

beginsum=0;

for(i=0;i<=6;i=i+1)//for语句

if((5)1分)sum=sum+1;

if((6)1分)pass=1;//超过4人赞成,则通过

elsepass=0;

end

endmodule

3、(7分)调用门元件描述和数据流描述实现的4选1MUX

modulemux4_1a(out,in1,in2,in3,in4,s0,s1);

inputin1,in2,in3,in4,s0,s1;outputout;

wires0_n,s1_n,w,x,y,z;

not(sel0_n,s0),(7)1分;

and(w,in1,s0_n,s1_n),((8)1分),

((9)1分),((10)1分);

or(out,w,x,y,z);

endmodule

数据流

modulemux4_1c(out,in1,in2,in3,in4,s0,s1);

inputin1,in2,in3,in4,s0,s1;

outputout;

assignout=(11)3分

endmodule

4、(4分)写出程序输出结果。

moduleloop;

integeri;

initial

for(i=0;i<4;i=i+1)

begin$display("i=%h",i);end

endmodule

输出结果为:

(12)4分

5、(4分)下面程序设计了一个函数,函数名位get0,完成8位输入中“0”个数的统计。

(13)2分;//函数声明

input[7:

0]x;

reg[7:

0]count;

integeri;

begin

count=0;

for(i=0;i<=7;i=i+1)

if(x[i]=1'b0)count=count+1;

(14)2分。

end

endfunction

6、(4分)用always语句产生周期100ns时钟波形。

`timescale1ns/1ns

………………..

regclk;

parameterCycle=100;

(15)4分

intialclk=1;

7、(4分)阅读下面程序,写出测试结果

modulealutask(code,a,b,c);

input[1:

0]code;input[3:

0]a,b;

output[4:

0]c;reg[4:

0]c;

taskmy_and;

input[3:

0]a,b;output[4:

0]out;integeri;

beginfor(i=3;i>0;i=i-1)

out[i]=a[i]&b[i];

endendtask

always@(codeoraorb)

begin

case(code)

2'b00:

my_and(a,b,c);

2'b01:

c=a|b;

2'b10:

c=a-b;

2'b11:

c=a+b;

endcase

endendmodule

8、(4分)流水线技术是提高数字系统速度的一项技术,下面是程序功能是2个8位数的加法器,采用两级流水。

补齐程序。

moduleadder8(cout,sum,a,b,cin,enable);

input[7:

0]a,b;inputcin,enable;

output[7:

0]sum;reg[7:

0]sum;

outputcout;regcout;

reg[3:

0]tempa,tempb,firsts;regfirstc;

always@(posedgeenable)

begin

{firstc,firsts}=a[3:

0]+b[3:

0]+cin;

(17)2分

end

always@(posedgeenable)

begin

{cout,sum[7:

4]}=(18)2分

sum[3:

0]=firsts;

end

endmodule

9、(5分)数字分频电路,周期15,占空比50%。

modulecount_num(reset,clk,cout);

parameterNUM=(19)1分;

inputclk,reset;outputwirecout;

reg[4:

0]m,n;regcout1,cout2;

assigncout=cout1|cout2;

always@(posedgeclk)

begin

if(!

reset)begincout1<=0;m<=0;end

else

beginif((20)2分)m<=0;elsem<=m+1;

if((21)2分)cout1<=1;elsecout1<=0;

end

end

always@(negedgeclk)

代码略

endmodule

三、程序设计题

1、(10分)设计一个8-3优先编码器,该优先编码器输入为a-h,输入信号h优先级最高,高电平有效。

2、(10分)时序电路设计。

采用状态机设计一个101序列检测器,采用3个过程设计。

数据序列:

0010101001011110100

输出序列:

0000101000010000100

3、(10分)设计一个可变模加法/减法计数器。

moduleupdown_count(d,clk,clear,load,up_down,qd);

clk为时钟,上升沿

clear同步清零,低电平有效

load同步预置,高电平有效

up_down加法/减法控制端,高电平有效

qd输出,8位宽

d变模预置数,8位宽

 

模拟题参考答案

一、填空题(每空1分,共30分)总分:

1

2

3

4

5

ElectronicDesignAutomation

IP

软核

(3.4.5位置可调)

硬核

固核

6

7

8

9

10

Soc

Sopc

自顶向下(自上而下)

综合

适配

11

12

13

14

15

VerilogHDL

VHDL

SystemVerilog

$sin,P6_8_5.6,

r-out

001

16

17

18

19

20

xxxxxx1010

Parametersel=8;

Reg[1:

0]x[3:

0]

21

22

23

24

25

注意:

不能整体赋值,每个单元单独赋值为正确

1

0

4'b1110

497

26

27

28

29

30

-10

negedge

posedge

6'b111001

9'b010111001

二、程序阅读题(共40分)总分:

(1)【2分】c=b;b=a;

(2)【2分】c<=b;b<=a

(3)【1分】input[6:

0]vote;(4)【1分】vote;

(5)【1分】vote[i](6)【1分】sum[i]

(7)【1分】(s1_n,s1)(8)【1分】(x,in2,s0_n,s1)

(9)【1分】(y,in3,s0,s1_n)(10)【1分】(z,in4,s0,s1)

(11)【3分】(in&(~s0)&(~s1))|(in2&(~s0)&s1))|(in3&s0&(~s1))|(in4&s0&s1)

(12)【4分】i=00000000;i=00000001;i=0000002;i=0000003;

(13)【2分】function[7:

0]get0(14)【2分】get0=count;

(15)【4分】always(cycle/2)clk=~clk;

(16)【4分】0code=00a=4’b0000b=4’b1111c=4’bx0000;

100code=01a=4’b0111b=4’b1101c=4’b01111;

200code=00a=4’b0001b=4’b0011c=4’b0001;

300code=10a=4’b1001b=4’b0011c=4’b0110;

(17)【2分】Tempa=a[7:

4];tempb=b[7:

4];(18)【2分】tempa+tempb+firstc

(19)【1分】15(20)【2分】m==num-1(21)【2分】m<(num-1)/2

 

三、程序设计题(共30分)总分:

将题号写清楚,每个题目间留有间隔,保证程序可读性

2、

3、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1