《八选一数据选择器(10页).doc》由会员分享,可在线阅读,更多相关《八选一数据选择器(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-八选一数据选择器-第 10 页1.4b10012=(4b0010)。2、完整的条件语句将产生(组合逻辑电路)电路,不完整的条件语句将产生(时序逻辑电路 )电路。3、用EDA技术进行电子系统设计的目标是最终完成(专用集成电路ASIC)的设计。4、可编程器件分为(现场可编程列阵FPGA)和(复杂可编程逻辑器件 PLD)5、系统函数和任务函数的首字符标志为($),预编译指令首字符标志为(#)。6、一个基本的Verilog-HDL程序由(Verilog-HDL )模块构成。7、EDA技术在应用设计领域主要包含哪四个方面的内容(HDL)、(PLD )、( EDA工具软件)、(EDA开发系统 )8、ED
2、A技术的基本特征主要有哪5个方面:(自顶向下的设计方法 )、(采用硬件描述语言)、(高层综合和优化 ).(并行工程)、(开放性和标准化) 9、当前最流行的并成为IEEE标准的硬件描语言是( VHDI )和( Verilog-HDL)10、一个完整的Verilog-HDL设计模块包括:( 模块关键字和模块名 )、( 端口列表 )、(端口定义 )、( 功能描述 )这4部分。 11Verilog-HDL模块的I/O端口声明用来声明模块端口定义中各端口数据流动方向,包括(输入端口)、( 输出端口 )、和(双向端口 )12、Verilog-HDL语言的三种常用的模型描述方法为(行为描述 )、( 数据描述
3、)和(结构描述 )13、Verilog-HDL的数值集合由哪四种基本的值组成( 0)、(1 )、 x)、( z )14、10hxf=( 10xxxxxx1111 ) 10hzf=( 10zzzzzz1111 )15、若a=5b10x01,b=5b10x01,则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的结果为(8b
4、00010000)19、对于Verilog-HDL语言中的关键字,在建模时都必须(小)写。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、6422、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是(C)。AFPGA全称为复杂可编程逻辑器件;BFPGA是基于乘积项结构的可编程逻辑器件;C基于SRAM的FPGA器件,在每次上电后必须进行
5、一次配置;D在Altera公司生产的器件中,MAX7000系列属FPGA结构。23.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化(B)。流水线设计资源共享逻辑优化串行化寄存器配平关键路径法ABCD24、下列标识符中,(A)是不合法的标识符。A、9moonB、State0C、Not_Ack_0 D、signall25、下列语句中,不属于并行语句的是:(D)A、过程语句B、assign语句 C、元件例化语句D、case语句26、在verilog中,下列语句哪个不是分支语句?(D )A.if-else B、case C、ca
6、sez D、repeat27、下列标示符哪些是合法的( 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、4bzz1130、reg7:0 mema255:0正确的赋值是( A )A、mema5=3d0,B、8 d0; C、1 b1; D、mema53:0=4 d131、“a=4 b11001,b=4 bx110”选出正确的
7、运算结果( B )A、a&b=0 B、a&b=1 C、b&a=x D、b&a=x32、时间尺度定义为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=934、aways begin #5 clk=0;#10 c
8、lk=clk;end产生的波形( A )A、占空比1/3 B、clk=1 C、clk=0 D、周期为1035、在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 CBADDA、4b0011 B、3b001 C、4b1001 D、3b10139、请根据以下两条语句的执行:reg 7:0 A; A=2hFF;最后变量A中的值是(A)A 、8b0000_0011 B、 8h03 C、 8b1111_1
9、111 D 、8b1111111140、在verilog语言中,a=4b1011,那么&a=(D )A、4b1011 B、4b1111 C、1b1 D、1b041简要说明仿真时阻塞赋值与非阻塞赋值的区别 非阻塞赋值方式(b=a) 2.b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成的;硬件有对应的电路。 3.阻塞赋值方式(b=a) 4.b的值立刻被赋成新值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 1so=a1b1+a1b1co=a1b1module half_adder(a1,b1,s0,c0);input a1,b1;outp
12、uts0,c0;xor(s0,a1,b1);and(c0,a1,bl);Endmodule 一选择题 1在Verilog中,下列语句那个不是分支语句( d)A if-else Bcase Ccasez Drepeat2下列那些不是属于基本门级原件(D)A nand Bnor Cand DRAM3已知“a=1b1;b=3b001;”那么a,b=(c)A 4b0011 B3b001 C4b1001 D3b1014下列标识符中,-是不符合的标识符(D)A 9moon BState0 CNot_ack_0 Dsignall5下列语句,不属于并行语句的是(D)A 过程语句 Bassign语句 C元件例化
13、语句 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=2hFFA 8;b0000,0011 B 8h03 C 8;b1111,0011 D 8;b1111,1111 二填空题目1 完整的条件语句将产生 组合逻辑电路 ,不完整的条件语句将产生时序逻辑电路。2阻塞性赋值符号是=,
14、非阻塞性赋值符号是 =。三程序题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)&(-adder0);assign yo
15、ut5=(-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 1so=a1b1+a1b1co=a1b1module half_adder(a1,b1,s0,c
16、0);input a1,b1;outputs0,c0;xor(s0,a1,b1);and(c0,a1,bl);Endmodule4 程序注释,并说明整个程序完成的功能。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)过程语句,敏感变量为bbegin语句块sum=0;sum的初值为0for(i=0;i=b,i+1)for语句,统计b的个数if
17、(bi) sum=sum+1条件语句,只要有人投赞成票,则是sum加1if(sum2) a=1,else a=0;只要超过四个人赞成,则表示通过,若不到四个人,则表示不通过。endendmodule 逻辑功能(7个人投决表决器)4 根据下列给定的仿真输入,输出,波形图形,说明完成此功能的电路是什么功能,并写出对应的Verilog HDL描述程序(图中clk,clr为输入,q,c为输出)module counter(clk,clr,q,c);input clk ,clr;output ret1:0 q;output c;always (posedge clk or negedge clr)beg
18、inif(dr) q=2ho;elsebeginif(2h3=q)q=2ho;else q=q+2ho;endendassign c=(2h3=q)endmodule5 编程实现带同步清零,同步置一的D触发器。module D_EF(q,qn,d,clk,reset,set);input d,clk,set,reset;output q,qn;always (posedge clk)beginif(!reset)begin q=0;qn=1;end同步清零(高电平有效)else If(!set)begin q=1;qn=1;end同步置一(高电平有效)else begin q=d;qn=d;e
19、ndendendmodule6描述一个异步清零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)beginif(!reset)begin q=0;qn=1;end异步清零(低电平有效)else If(!set)begin q=1;qn=1;end异步置一(低电平有效)else begin q=d;qn=d;endendendmodule7标注各语句功能,指出整个程序完成的电路功能。module dff_syn(q,
20、qn,d,clk,reset,set);定义模块input d,clk,set,reset;定义输入端口output q,qn;定义输出端口always (posedge clk)对clk信号上升沿有效beginif(reset)begin q=1b0;qn=1b1;end同步清零,低电平有效else If(set)begin q=1b1;qn=1b0;end同步置一,低电平有效else begin q=d;qn=d;end q输出为q。Qn输出为非dendendmodule模块结束8采用结构描述方法设计一个二进制数字比较器,比较输入数据a与b的大小,并分别输出x,y,z给出详细的设计过程。m
21、odule 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);endmodule9 采用结构描述方法设计一个三人竞选数字电路,输入数据2:0,要求2人以上为1表示通过,且输出为1,否则输出相反,给出详细设计过程。y=ab+ac+bcmodule three(x,y);input2:0 x;outputy
22、;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: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
23、 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,c0;assign sum=a b ci;assign co=(a&b) | (b&c) | (c&a);endmodule3 设计一个分频器module div1hz (clk_50m,rst_n,clk_1);input clk_50m
24、;input rst_n;output clk_1;reg clk_1;reg 24:0 cout;always (posedge clk_50m or negedge)beginif(!rst_n)begincount = 25d0;clk_1 = 1b0;endelsebeginif(count =25d99)begincount = 25d0;clk_1= clk_1;endelsecount = count + 1b1;endendendmodule 4 单灯闪烁module sinled (clk_50M,rst_n,dataout);input clk_50M;input rst_
25、n;output dataout;reg dataout;reg 24:0 count;always (posedge clk_50M or negedge rst_n)beginif(!rst_n)count = 1b0;count =count+1;endalways (posedge clk_50M or negedge rst_n)beginif(!rst_n)dataout = 1b0;elsecase ( count24)0:dataout=1b0;1:dataout=1b1;endcase 5八选一数据选择器代码 /Verilog八选一数据选择器module sel(a, b,
26、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, s2) begin case(s0, s1, s2) 3d0 : out= a; 3d1 : out= b; 3d2 : out= c; 3d3 : out= d; 3d4 : out=
27、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 =50000000/440/2;always (posedge clk_50M)begintone = tone+1b1;endalways (posedge clk_50M)beginif(counter=0)counter = (tone23 ? Clkdivider-1 :clkdivider/(2-1);else counter =counter-1;endalways (posedge clk_50M)beginif(counter=0)beep = -beep;endendmodule
限制150内