《八选一数据选择器.pdf》由会员分享,可在线阅读,更多相关《八选一数据选择器.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、b10012=(4b0010)。2、完整的条件语句将产生(组合逻辑电路)电路,不完整的条件语句将产生(时序逻辑电路)电路。3、用 EDA 技术进行电子系统设计的目标是最终完成(专用集成电路 ASIC)的设计。4、可编程器件分为(现场可编程列阵 FPGA)和(复杂可编程逻辑器件 PLD)5、系统函数和任务函数的首字符标志为($),预编译指令首字符标志为(#)。6、一个基本的 Verilog-HDL 程序由(Verilog-HDL)模块构成。7、EDA 技术在应用设计领域主要包含哪四个方面的内容(HDL)、(PLD)、(EDA 工具软件)、(EDA 开发系统)8、EDA 技术的基本特征主要有哪 5
2、 个方面:(自顶向下的设计方法)、(采用硬件描述语言)、(高层综合和优化).(并行工程)、(开放性和标准化)9、当前最流行的并成为 IEEE 标准的硬件描语言是(VHDI)和(Verilog-HDL)10、一个完整的 Verilog-HDL 设计模块包括:(模块关键字和模块名)、(端口列表 )、(端口定义 )、(功能描述 )这 4 部分。11Verilog-HDL 模块的 I/O 端口声明用来声明模块端口定义中各端口数据流动方向,包括(输入端口)、(输出端口)、和(双向端口)12、Verilog-HDL 语言的三种常用的模型描述方法为(行为描述 )、(数据描述)和(结构描述)13、Verilo
3、g-HDL 的数值集合由哪四种基本的值组成(0)、(1)、x)、(z)14、10hxf=(10 xxxxxx1111)10hzf=(10zzzzzz1111)15、若 a=5b10 x01,b=5b10 x01,则 a=b 的结果为(X)、a=b 的结果为(1)16、Wire15:0 wire-b 表示连线宽度为(16)位,其最高位为(15),最低位为(0)。17、若 A=5b11011,B=5b10101,则有&A=(0)|B=(1)A=(5b00100)A&B(5b10001)18、若 A=8b1000_0100 则 A3 的结果为(8b00010000)19、对于 Verilog-HDL
4、 语言中的关键字,在建模时都必须(小)写。20、if(a)out1=int1;else out1=int2;当 a=(1)执行 out1=int1;当 a=(0)执行 out1=int2 二、选择题:21、在 verilog 语言中整型数据与(C)位寄存器数据在实际意义上是相同的。A、8 B、16 C、32 D、64 22、大规模可编程器件主要有 FPGA、CPLD 两类,下列对 FPGA 结构与工作原理的描述中,正确的是(C )。AFPGA 全称为复杂可编程逻辑器件;BFPGA 是基于乘积项结构的可编程逻辑器件;C基于 SRAM 的 FPGA 器件,在每次上电后必须进行一次配置;D在 Alt
5、era 公司生产的器件中,MAX7000 系列属 FPGA 结构。23.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化(B )。流水线设计资源共享逻辑优化串行化 寄存器配平关键 路径法 A B C D 24、下列标识符中,(A)是不合法的标识符。A、9moon B、State0 C、Not_Ack_0 D、signall 25、下列语句中,不属于并行语句的是:(D )A、过程语句 B、assign 语句 C、元件例化语句 D、case 语句 26、在 verilog 中,下列语句哪个不是分支语句(D )B、case C、
6、casez D、repeat 27、下列标示符哪些是合法的(B )A、$time B、_date C、8sum D、mux#28、如果线网类型变量说明后未赋值,起缺省值是(D )A、x B、1 C、0 D、z 29、现网中的值被解释为无符号数。在连续赋值语句中,assign addr3:0=-3;addr被赋予的值是(A )A、4b1101 B、4b0011 C、4bxx11 D、4bzz11 30、reg7:0 mema255:0正确的赋值是(A)A、mema5=3d0,B、8 d0;C、1 b1;D、mema53:0=4 d1 31、“a=4 b11001,b=4 bx110”选出正确的运
7、算结果(B)A、a&b=0 B、a&b=1 C、b&a=x D、b&a=x 32、时间尺度定义为 timescale 10ns/100ps,选择正确答案(C)A、时间精度 10ns B、时间单位 100ps C、时间精度 100ps D、时间精度不确定 33、若 a=9,执行$display(“current value=%0b,a=%0d”,a,a)正确显示为(B)A、current value=1001,a=09 B、current vale=1001,a=9 C、1001,9 D、current vale=00001001,a=9 34、aways begin#5 clk=0;#10 c
8、lk=clk;end 产生的波形(A)A、占空比 1/3 B、clk=1 C、clk=0 D、周期为 10 35、在 Verilog 中定义了宏名 define sum a+b+c 下面宏名引用正确的是(C)A、out=sum+d;B、out=sum+d;C、out=sum+d;D、都正确 37、已知“a=1b1;b=3b001;”那么a,b(A )CDADC CBADD A、4b0011 B、3b001 C、4b1001 D、3b101 39、请根据以下两条语句的执行:reg 7:0 A;A=2hFF;最后变量 A 中的值是(A )A、8b0000_0011 B、8h03 C、8b1111_
9、1111 D、8b 40、在 verilog 语言中,a=4b1011,那么&a=(D )A、4b1011 B、4b1111 C、1b1 D、1b0 41简要说明仿真时阻塞赋值与非阻塞赋值的区别 非阻塞赋值方式(b=a)的值被赋成新值 a 的操作,并不是立刻完成的,而是在块结束时才完成的;硬件有对应的电路。3.阻塞赋值方式(b=a)的值立刻被赋成新值 a;完成该赋值语句后才能执行下一语句的操作,硬件没有对应的电路,因而综合结果未知。5.阻塞语句是在该语句结束是立即完成赋值语句操作,非阻塞赋值是在整个过程块结束时才完成赋值操作。42、EDA 技术的主要特征有哪些(自顶向下的设计方法)、(采用硬件
10、描述语言 )、(高层综合和优化).(并行工程)、(开放性和标准化 )43、always 语句和 initial 语句的关键区别是什么能否相互嵌套 Always 是循环语句,initial 只是执行一次,它们不能镶嵌。45、简述基于数字系统设计流程包括哪些步骤(1)设计输入,将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行语法或逻辑检查,通过表示输入完成,否则反复检查到无任何错误。(2)逻辑综合,将高层的设计描述自动化转化为较低层次描述过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成逻辑网表的过程。(3)布局布线,将综合生成的电路网表映射到具体的目标器件中,并产生最终可下
11、载文件的过程。(4)仿真,就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证并排除错误的过程,包括功能仿真和时序仿真。(5)编程配置,将适配后生成的编程文件装入到 PLD 器件的过程,根据不同器件实现编程或配置。46、采用结构描述方法设计一个二进制数字半加器,输入数据 ai 与 bi,并将和输出到 so,进位输出到 co,给出详细设计过程。输入 输入 输出 输出 a1 b1 s0 c0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 so=a1b1+a1b1 co=a1b1 module half_adder(a1,b1,s0,c0);input a1,b1;outputs0
12、,c0;xor(s0,a1,b1);and(c0,a1,bl);Endmodule 一选择题 1 在 Verilog 中,下列语句那个不是分支语句(d)A if-else Bcase Ccasez Drepeat 2 下列那些不是属于基本门级原件(D)A nand Bnor Cand DRAM 3 已知“a=1b1;b=3b001;”那么a,b=(c)A 4b0011 B3b001 C4b1001 D3b101 4 下列标识符中,-是不符合的标识符(D)A 9moon BState0 CNot_ack_0 Dsignall 5 下列语句,不属于并行语句的是(D)A 过程语句 Bassign 语
13、句 C 元件例化语句 Dcase 语句 6 O,P,Q,R 都是 4bit 的输入矢量,下面那一种表达式是正确的(E)A pinput p3:0 Q,R ;Binput p,Q3:0 ;Cinput p,Q3:0 ,Q3:0 ,R3:0 ;Dnput 3:0P ,3:0Q ,0:3 R;Enput 3:0 ,P,Q,R;7 请根据以下两条语句的执行,最后变量 A 中的值是(A)Reg7:0 A A=2hFF A 8;b0000,0011 B 8h03 C 8;b1111,0011 D 8;b1111,1111 二填空题目 1 完整的条件语句将产生 组合逻辑电路,不完整的条件语句将产生时序逻辑电
14、路。2 阻塞性赋值符号是=,非阻塞性赋值符号是 =。三程序题 Verilog 代码如下:module INST2yout,adder;Output7:0 yout;Input2:0 adder;assign yout0(-adder2&(-adder1)&(-adder0);assign yout1=(-adder2&(-adder1)&(-adder0);assign yout2=(-adder2&(-adder1)&(-adder0);assign yout3=(-adder2&(-adder1)&(-adder0);assign yout4=(-adder2&(-adder1)&(-ad
15、der0);assign yout5=(-adder2&(-adder1)&(-adder0);assign yout6=(-adder2&(-adder1)&(-adder0);assign yout7=(-adder2&(-adder1)&(-adder0);endmodule 功能:3-8 译码器,高电平有效 采用数据结构描述方式设计一个二进制半加器,输入数据,a1 和 b1,并将输出到 s0,进位输出 c0,输出详细设计过程。输入 输入 输出 输出 a1 b1 s0 c0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 so=a1b1+a1b1 co=a1b1 modu
16、le half_adder(a1,b1,s0,c0);input a1,b1;outputs0,c0;xor(s0,a1,b1);and(c0,a1,bl);Endmodule 4 程序注释,并说明整个程序完成的功能。module AAA(a,b);定义模块名为 AAA 端为(a,b)output a;定义 a 为输出端口 input b;定义 b 为输入端口,b 为下位二进制数 reg2:0 sum;sum为寄存器变量类型,用于统计赞成的人数 integer i;定义整型变量为循环变量 reg a;定义 a 为寄存器变量 always (b)过程语句,敏感变量为 b begin 语句块 su
17、m=0;sum 的初值为 0 for(i=0;i=b,i+1)for 语句,统计 b 的个数 if(bi)sum=sum+1 条件语句,只要有人投赞成票,则是 sum 加 1 if(sum2)a=1,else a=0;只要超过四个人赞成,则表示 通过,若不到四个人,则表示不通过。end endmodule 逻辑功能(7 个人投决表决器)4 根据下列给定的仿真输入,输出,波形图形,说明完成此功能的电路是什么功能,并 写出对应的 Verilog HDL 描述程序(图中 clk,clr 为输入,q,c 为输出)module counter(clk,clr,q,c);input clk,clr;out
18、put ret1:0 q;output c;always (posedge clk or negedge clr)begin if(dr)q=2ho;else begin if(2h3=q)q=2ho;else q=q+2ho;end end assign c=(2h3=q)endmodule 5 编程实现带同步清零,同步置一的 D 触发器。module D_EF(q,qn,d,clk,reset,set);input d,clk,set,reset;output q,qn;always (posedge clk)begin if(!reset)begin q=0;qn=1;end 同步清零(
19、高电平有效)else If(!set)begin q=1;qn=1;end 同步置一(高电平有效)else begin q=d;qn=d;end end endmodule 6 描述一个异步清零 D 触发器 module D_EF(q,qn,d,clk,reset,set);input d,clk,set,reset;output q,qn;always (clk or negedge set or negedge reset)begin if(!reset)begin q=0;qn=1;end 异步清零(低电平有效)else If(!set)begin q=1;qn=1;end 异步置一(低
20、电平有效)else begin q=d;qn=d;end end endmodule 7 标注各语句功能,指出整个程序完成的电路功能。module dff_syn(q,qn,d,clk,reset,set);定义模块 input d,clk,set,reset;定义输入端口 output q,qn;定义输出端口 always (posedge clk)对 clk 信号上升沿有效 begin if(reset)begin q=1b0;qn=1b1;end 同步清零,低电平有效 else If(set)begin q=1b1;qn=1b0;end 同步置一,低电平有效 else begin q=d
21、;qn=d;end q 输出为 q。Qn 输出为非 d end endmodule 模块结束 8 采用结构描述方法设计一个二进制数字比较器,比较输入数据 a 与 b 的大小,并分别输出 x,y,z 给出详细的设计过程。module bjq(a,b,x,y,z)input 1:0a;input 1:0b;output x,y,z;wire a,b,not_ab;not(not_a,a);not(not_b,b);and(ab,a,b);and(not_ab,not_a,not_b);or(x,ab,not_ab);and(y,not_a,b);and(z,a,not_b);endmodule 9
22、 采用结构描述方法设计一个三人竞选数字电路,输入数据2:0,要求 2 人以上为 1 表示通过,且输出为 1,否则输出相反,给出详细设计过程。y=ab+ac+bc module three(x,y);input2:0 x;outputy;wire a,b,c;and(a,x0,x1);and(b,x1,x2);and(c,x1,x0);or(y,a,b,c)endmodule 四 程序设计 1 设计两个两位全加器信号关系及实现四位全加器的功能部分程序。module add2(ai,bi,ci,sum,cout);input 1:0ai,bi;input ci;output 1:0sum;reg1
23、:0sum;output cout;reg cout;always(ai,bi,ci)cout,sum=ai+bi+ci;endmodule module add4(a,b,c,sum,cout);input 3:0ai,b;input c;output 3:0sum4output cout4;wire c0;add4 U1(a1:0,b1:0,c1:0,sum41:0);add4 U2(a1:0,b1:0,c1:0,cout4,sum3:0);endmodule 2 设计一个全加器 module full_add(a,b,ci,sum,c0);input a,b,ci;output sum,
24、c0;assign sum=a b ci;assign co=(a&b)|(b&c)|(c&a);endmodule 3 设计一个分频器 module div1hz(clk_50m,rst_n,clk_1);input clk_50m;input rst_n;output clk_1;reg clk_1;reg 24:0 cout;always (posedge clk_50m or negedge)begin if(!rst_n)begin count=25d0;clk_1=1b0;end else begin if(count=25d99)begin count=25d0;clk_1=cl
25、k_1;end else count=count+1b1;end end endmodule 4 单灯闪烁 module sinled(clk_50M,rst_n,dataout);input clk_50M;input rst_n;output dataout;reg dataout;reg 24:0 count;always (posedge clk_50M or negedge rst_n)begin if(!rst_n)count=1b0;count=count+1;end always (posedge clk_50M or negedge rst_n)begin if(!rst_n
26、)dataout=1b0;else case (count24)0:dataout=1b0;1:dataout=1b1;endcase 5 八选一数据选择器代码 /Verilog 八选一数据选择器 module sel(a,b,c,d,e,f,g,h,s0,s1,s2,out);input 2:0a;input 2:0b;input 2:0c;input 2:0d;input 2:0e;input 2:0f;input 2:0g;input 2:0h;input s0,s1,s2;output 2:0 out;reg 2:0 out;always(a,b,c,d,e,f,g,h,s0,s1,s
27、2)begin case(s0,s1,s2)3d0:out=a;3d1:out=b;3d2:out=c;3d3:out=d;3d4:out=e;3d5:out=f;3d6:out=g;3d7:out=h;endcase end endmodule 6 蜂鸣器 module buzzer(clk_50M,beep);input clk_50M;output beep;reg beep;reg 14:0 counter;reg 23:0 tone;parameter clkividern=/440/2;always (posedge clk_50M)begin tone=tone+1b1;end always (posedge clk_50M)begin if(counter=0)counter=(tone23 Clkdivider-1:clkdivider/(2-1);else counter=counter-1;end always (posedge clk_50M)begin if(counter=0)beep=-beep;end endmodule
限制150内