版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5参考答案一、填空题1.在数字电路中,与先前状态无关的逻辑电路称为组合逻辑电路。2.双向总线缓冲器主要用于对数据总线进行驱动和缓冲的场合,它是由多个三态门电路构成的。3.若8段共阴极数码管要显示字符“F”时,则给定dpgfedcba的信号为01110001。4.若使用8421编码时,二进制数“1011_0010_0110_0011”用16进制数表示为16’hB263。5.时序电路与组合电路本质上的区别在于时序电路具有记忆功能。6.触发器是一种具有记忆功能的基本逻辑单元。7.8位16进制频率计中,计数器的输出位数为32位。8.8位16进制频率计中,计数频率范围为32’H00000000~32’HFFFFFFFF。二、单项选择题1.若8段共阴极数码管dpgfedcba对应的信号为01001111,则其显示的内容为(C)。A、1B、2C、3D、42.若使用8421编码时,5对应的编码为(B)。A、0111B、0101C、1011D、11013.使用8位数码管进行数值显示时,数码管动态扫描频率最好选择(C)。A、1MHzB、1kHzC、100HzD、1Hz4.下列程序代码描述的逻辑功能为(A)。moduleex(a,b,s,y);inputa,b,s;outputy;wired,e;assignd=a&s;assigne=b&(~s);assigny=d|e;endmoduleA、二选一数据选择器B、计数器C、译码器D、编码器5.下列为含清0控制的锁存器程序,程序中空白处应填写(C)。moduleex_Latch(clk,D,Q,rst)inputclk,D,rst;outputQ;assignQ=(!rst)?:(clk?D:Q);endmoduleA、QB、DC、0D、clk6.下列4个程序段中无锁存器的是(A)。A、always@(a,d)beginif(a)q<=d;endB、always@(a,d)beginif(a)q<=d;if(!a)q<=!d;endC、always@(a,d)beginif(a)q<=d;elseq<=0;endD、always@(a,d,s)begincase(s)2’b00:q<=a;2’b11:q<=d;endcaseend7.下列描述的是并入串出移位寄存器,程序空白处应填写(D)。moduleex(clk,load,Din,QB);input[7:0]Din;inputclk,load;outputQB;reg[7:0]REG8;always@(posedgeclk)if(load)REG8<=Din;elseREG8[6:0]<=REG8[7:1];assignQB=REG8[7];endmoduleA、loadB、QBC、DinD、REG8[6:0]8.若clk频率为1Hz,以下语句中divclk的周期是(B)。always@(posedgeclk)begindivclk<=~divclk;endA、4sB、2sC、1sD、0.5s9.以下程序段中rst属于(A)复位。always@(posedgeclk)beginif(rst)a<=8’h00;elseif(en)a<=a+1;endA、同步、高电平B、同步、低电平C、异步、高电平D、异步、低电平10.下列程序代码中输入信号为Din,输出信号为Dout,则其描述的逻辑功能为(C)。reginA;always@(posedgeclk,negedgerst)beginif(!rst)inA<=0;elseinA<=Din;endassignDout=~inA&Din;A、检测Din的高电平B、检测Din的低电平C、检测Din的上升沿D、检测Din的下降沿三、多项选择题1.下列属于编码器芯片的有(BC)。A、74LS138B、74LS148C、74LS147D、74LS1392.下列属于译码器芯片的有(ABC)。A、74LS138B、74LS42C、74LS139D、74LS148A、说明部分B、主控时序进程C、主控组合进程D、主控逻辑3.下列4个程序段错误的是(ACD)。A、always@(posedgeclk,posedgerst)beginif(~rst)cs<=s0;elsecs<=next_state;endB、always@(posedgeclk,posedgerst)beginif(rst)cs<=s0;elsecs<=next_state;endC、always@(posedgeclk,negedgerst)beginif(rst)cs<=s0;elsecs<=next_state;endD、always@(posedgeclk,negedgerst)beginif(^rst)cs<=s0;elsecs<=next_state;end4.若一条总线为CBus[15:0],下列赋值代码中将总线分成两条总线ABus[0:9]和BBus[6:1]描述正确的是(AC)。A、assignABus=CBus[15:6];assignBBus=CBus[5:0];B、ABus=CBus[15:6];BBus=CBus[5:0];C、assignABus[0:9]=CBus[15:6];assignBBus[6:1]=CBus[5:0];D、ABus[0:9]=CBus[15:6];BBus[6:1]=CBus[5:0];5.VerilogHDL语言作为一种结构化的语言非常适合于门级和开关级的模型设计,其主要是因其结构化特点使它具有以下功能(ABC)。A、提供了完整的一套组合型原语(primitive)B、提供了双向通路和电阻器件的原语C、可建立MOS器件的电荷分享和电荷衰减动态模型D、通过命名的事件来触发其它过程里的激活行为或停止行为6.下列程序描述的功能是(AD)。moduleex(clk,load,Din,QB);input[7:0]Din;inputclk,load;outputQB;reg[7:0]REG8;always@(posedgeclk)if(load)REG8<=Din;elseREG8[7:1]<=REG8[6:0];assignQB=REG8[7];endmoduleA、左移移位寄存器B、含异步并行预置功能C、右移移位寄存器D、含同步并行预置功能7.以下属于有限状态机优点的是(ABCD)。A、高效的过程控制模型B、容易利用现成的EDA工具进行优化设计C、系统性能稳定D、高可靠性8.一般有限状态机的结构主要包括以下(ABC)。A、说明部分B、主控时序进程C、主控组合进程D、主控逻辑四、判断题1.同步复位除了复位信号有效外,还必须得时钟信号有效。(√)2.异步复位除了复位信号有效外,还必须得时钟信号有效。(×)3.Mealy型状态机的输出是当前状态和所有输入信号的函数,Moore型状态机的输出仅为当前状态的函数。(√)4.有限状态机一般都由组合逻辑和时序逻辑两部分组成。(√)5.能够暂时存储二进制数据或代码的电路称为寄存器。(√)6.若两个函数具有不同的逻辑函数表达式,则这两个逻辑函数必然不相等。(×)7.时序逻辑电路包括逻辑电路和存储电路。(√)8.计数器按照计数过程的不同,可分为二进制、十进制和任意进制计数器。(×)9.对于普通编码器在任何时刻只允许一个输入端请求编码,否则输出发生混乱。(√)10.有限状态机不适合数字系统的控制模块。(×)11.若只需要在上电和系统错误时进行复位,则采用异步复位方式比同步复位方式好。(×)五、编程题1.使用VerilogHDL语言编写程序实现8位二进制码转换为8位格雷码。分析:格雷(Gray)码是一种可靠性编码,在数字系统中有着广泛的应用。其特点是任意两个相邻的代码中仅有一位二进制数不同,因而在数码的递增和递减运算过程中不易出现差错。但是格雷码是一种无权码,要想正确而简单的和二进制码进行转换,必须找出其规律。根据组合逻辑电路的分析方法,先列出其真值表再通过卡诺图化简,可以很快的找出格雷码与二进制码之间的逻辑关系。其转换规律为:高位同,从高到低看异同,异出‘1’,同出‘0’。也就是将二进制码转换成格雷码时,高位是完全相同的,下一位格雷码是‘1’还是‘0’,完全是相邻两位二进制码的“异”还是“同”来决定。下面举一个简单的例子加以说明。假如要把二进制码10110110转换成格雷码,则可以通过下面的方法来完成,方法如图5-1。图-1格雷码变换示意图因此,变换出来的格雷码为11101101。参考程序:modulegray_test(din,dout);input[7:0]din;//8位二进制码输入output[7:0]dout;//8位格雷码输出assigndout[0]=din[0];assigndout[1]=din[0]^din[1];assigndout[2]=din[1]^din[2];assigndout[3]=din[2]^din[3];assigndout[4]=din[3]^din[4];assigndout[5]=din[4]^din[5];assigndout[6]=din[5]^din[6];assigndout[7]=din[6]^din[7];endmodule2.使用VerilogHDL语言设计基本D触发器,并采用结构描述的方式,然后用8个D触发器构成一个8位移位寄存器。分析:采用层次式设计法进行,底层为基本D触发器的描述,文件为D_trigger.v;顶层为8位移位寄存器的描述,文件为shift_trigger.v。顶层文件通过调用8次D_trigger来实现,采用位置关联方式,其中第1个的输入为D,其它输入为上一级的输出。参考程序如下://基本D触发器的描述,文件为D_trigger.vmoduleD_trigger(Q,D,clk);inputD,clk;outputQ;regQ;always@(posedgeclk)//clk发生上升沿跳变,则进行赋值操作begin Q<=D; endendmodule//顶层文件通过调用8次D_trigger来实现,文件为shift_trigger.vmoduleshift_trigger(Q,D,clk);inputD,clk;outputQ;wireD;wire[7:0]Q;D_triggerU1(Q[0],D,clk);//调用D_trigger,第1个的输入为D,其它输入为上一级的输出D_triggerU2(Q[1],Q[0],clk);D_triggerU3(Q[2],Q[1],clk);D_triggerU4(Q[3],Q[2],clk);D_triggerU5(Q[4],Q[3],clk);D_triggerU6(Q[5],Q[4],clk);D_triggerU7(Q[6],Q[5],clk);D_triggerU8(Q[7],Q[6],clk);endmodule3.使用VerilogHDL语言,分别用结构描述和行为描述方式设计JK触发器。分析:结构描述方式主要通过组合逻辑和时序逻辑的组合来实现。在JK触发器中,通常使用两个与非门(NAND)或两个与非门(NOR)来实现,参考代码如下://结构描述方式实现JK触发器moduleJK_Structural(J,K,clk,Q,Qn);inputJ,K;inputclk;outputregQ,Qn;wireJK,Q_next;//结构描述:使用NAND实现nand(JK,J,K);//JKNAND实现nand(Q_next,JK,Qn);//更新Q的下一状态//时序逻辑:clk发生上升沿跳变更新Q和Qnalways@(posedgeclk)begin Q<=Q_next; Qn<=~Q; endendmodule行为描述方式主要通过使用always块来描述触发器的行为,参考代码如下://行为描述方式实现JK触发器moduleJK_Behavioral(J,K,clk,Q,Qn);inputJ,K;inputclk;outputregQ,Qn;//行为描述,使用always来描述状态变化always@(posedgeclk)begin if(J==1&&K==0) beginQ<=~Q;end//J=1,Q=0时,Q翻转 elseif(J==0&&K==1) beginQ<=0;end//J=0,Q=1时,Q置0 elseif(J==1&&K==1) beginQ<=~Q;end//J=1,Q=1时,Q翻转(保持状态) else beginQ<=Q;end//J=0,Q=0时,保持当前状态不变 Qn<=~Q; end endmodule4.使用VerilogHDL语言编写4位串/并转换程序和4位并/串转换程序。分析:串/并转换(SerialtoParallel)指的是将串行数据转换为并行数据。在Verilog中,可以通过移位寄存器来实现这一功能,参考代码如下://4位串/并转换程序moduleSerialToParallel(clk,rst,Din,Dout);inputclk;//时钟信号inputrst;//异步复位信号,低电平有效inputDin;//串行输入outputreg[3:0]Dout;//并行输出localparamWIDTH=4;//定义数据宽度reg[WIDTH-1:0]shift_reg;//移位寄存器always@(posedgeclkornegedgerst)beginif(!rst) beginshift_reg<=0;//复位时清零Dout<=0;//并行输出复位end elsebeginshift_reg<={shift_reg[WIDTH-2:0],Din};//左移一位并加入新的串行输入Dout<=shift_reg;//当移位寄存器满时,输出寄存器的值endendendmodule并/串转换(ParalleltoSerial)指的是将并行数据转换为串行数据。在Verilog中,可以通过计数器和移位操作来实现,参考代码如下:moduleParallelToSerial(clk,rst,Din,Dout);inputclk;//时钟信号inputrst;//异步复位信号,低电平有效input[3:0]Din;//并行输入outputregDout;//串行输出localparamDATA_WIDTH=4;//定义数据宽度//计数器宽度计算,确保计数器可以覆盖所有位宽的计数localparamCOUNTER_WIDTH=$clog2(DATA_WIDTH);//计数器与移位寄存器reg[COUNTER_WIDTH-1:0]counter;//计数器用于跟踪当前位的位置reg[DATA_WIDTH-1:0]shift_reg;//移位寄存器用于存储并行数据always@(posedgeclkornegedgerst) beginif(!rst) begincounter<=0;//复位时计数器清零Dout<=0;//串行输出复位为0shift_reg<=Din;//并行数据加载到移位寄存器中,准备转换end else beginif(counter<DATA_WIDTH) begin//当计数器小于数据宽度时,继续转换过程Dout<=shift_reg[DATA_WIDTH-1];//输出当前最高位(最右边位)shift_reg<=shift_reg<<1;//左移移位寄存器,准备下一位的输出counter<=counter+1;//增加计数器,准备下一位的输出end else begin//当所有位都已输出,可以选择停止或重置状态机以开始新的转换周期(此处选择重置)counter<=0;//重置计数器准备新的一组数据转换Dout<=0;//重置串行输出为0,等待新的并行输入数据转换endendendendmodule5.使用VerilogHDL语言编写4位乘法并行乘法器程序。分析:实现并行乘法器的方法又很多种,但是归结起来基本上分为两类,一类是靠组合逻辑电路实现,另一类流水线实现。流水线结构的并行乘法器的最大有优点就是速度快,尤其是在连续输入的乘法器中,可以达到近乎单周期的运算速度,但是实现起来比组合逻辑电路要稍微复杂一些。下面就组合逻辑电路实现无符号数乘法的方法作详细介绍。假如有被乘数A和乘数B,首先用A与B的最低位相乘得到S1,然后再把A左移1位与B的第2位相乘得到S2,再将A左移3位与B的第三位相乘得到S3,依此类推,直到把B的所有位都乘完为止,然后再把乘得的结果S1、S2、S3……相加即得到相乘的结果。需要注意的是,具体实现乘法器并不是真正的去乘,而是利用简单的判断去实现,举个简单的例子。假如A左移n位后与B的第n位相乘,如果B的这位为‘1’,那么相乘的中间结果就是A左移n位后的结果,否则如果B的这位为‘0’,那么就直接让相乘的中间结果为0即可。带B的所有位相乘结束后,把所有的中间结果相加即得到A与B相乘的结果。参考程序如下:modulemul(mul_A,mul_B,mul_result);parameterSIZE=4;//位数是4input[SIZE-1:0]mul_A,mul_B;//乘数A,乘数Boutput[SIZE*2-1:0]mul_result;//乘积reg[SIZE*2-1:0]_mul_result1,_mul_result2,_mul_result3,_mul_result4;//组合逻辑电路always@(mul_Aormul_B) begin if(mul_A[0]==1'b0) _mul_result1<=8'b0000_0000; else _mul_result1<=(mul_B<<0); if(mul_A[1]==1'b0) _mul_result2<=8'b0000_0000; else _mul_result2<=(mul_B<<1); if(mul_A[2]==1'b0) _mul_result3<=8'b0000_0000; else _mul_result3<=(mul_B<<2); if(mul_A[3]==1'b0) _mul_result4<=8'b0000_0000; else _mul_result4<=(mul_B<<3); end assignmul_result=_mul_result1+_mul_result2+_mul_result3+_mul_result4;endmodule6.使用VerilogHDL语言编写同步模60加减计数器程序,有进位输出和异步复位端。分析:同步模60加减计数器涉及到使用一个计数器,它可以递增或递减,并且当达到最大值或最小值时能够正确地回绕。在编写程序时,应包括一个递增和递减的逻辑,以及一个异步复位和进位输出,参考代码如下:modulecount60
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旱地玉米抗旱保苗管理技术方案
- 门店安全应急预案执行方案
- 职业病筛查评估方案
- 定制木制品销售合同
- 住建部住宅销售合同
- 医院共享陪护床销售合同
- 为移民签订虚假销售合同
- 孕期体质评估调理方案手册
- 二手房公司销售合同
- 装配式水泥房销售合同
- 2026中国主题公园行业市场调研及消费趋势与投资机会研究报告
- 2026届陕西西安高考物理模拟卷(原卷版)
- 长期照护师职业技能鉴定考试复习题库(附答案)
- 2026年大学财务处招聘考试专业知识模拟题
- 2026届山东省聊城市临清市重点达标名校中考押题生物预测卷含解析
- 2025年贵州省高考化学试卷真题(含答案)
- 泌乳奶牛营养需要
- DL-T 1083-2019 火力发电厂分散控制系统技术条件
- 六三制新青岛版四年级下册科学第16课《动物的“家”》课件
- LY/T 2810-2017结构化森林经营技术规程
- GB/T 14996-2010高温合金冷轧板
评论
0/150
提交评论