您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 北工大-基于逻辑门的七段数码管字形发生器的设计2
数逻大作业2王禹心171101132018-11-15一、构造74LS138并进行测试1.在LogicSim中对Decode器件进行配置,构成高有效使能、高有效输出的3-8译码器2.添加逻辑,将使能信号扩展成3个(一个高有效,两个低有效),输出调整为低有效,形成74LS138,测试后,编辑逻辑符号(含学号信息)3.添加一个新的电路设计,使用“74LS138”,构造图示电路,测试并回答问题(1)只有A7A6A5A4A3的取值组合为111011101111111,译码器才能正常工作。(2)使能无效时,译码器输出无效状态,即逻辑成高阻状态。(3)译码器正常工作时,填写表格:4.截取word报告用图有效输出端输入变量A2A1A0取值仅/Y1=0时001仅/Y3=0时011仅/Y6=0时11074LS138y0y1y2y3y4y5y6y7G1G2AG2Bx2x1x0A2A1A0A7A6A5A4&≥1A3/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y7二、设计能完成四种运算的32位ALU1.利用LogicSim中的加法器、减法器、与门、或门以及选择器,构造能完成四种运算的ALU,功能表如下:ALU_selALU_out说明00A+B加法01A-B减法10A&B按位与11A|B按位或171101132.添加运算结果为零的标志信号zero3.算术运算(补码)测试:若(A)10=-5,(B)10=5,填表ALU_selALU_out(ALU_out)10zero0001011004.逻辑运算测试:若(A)16=FFFF0000,(B)16=0000FFFF,填表ALU_selALU_out10117.将这个ALU的VerilogHDL描述补充完整(模块名含学号)modulealu_17110113(A,B,ALU_sel,ALU_out,zero);input[31:0]A,B;input[1:0]ALU_sel;output[]ALU_out;outputzero;reg[31:0]ALU_out;assignzero=is(ALU_out==32’b0)?1:0;always@(AorBorALU_sel)case(ALU_sel)0:ALU_out=A+B;1:ALU_out=A-B;2:ALU_out=A&B;3:ALU_out=A|B;default:ALU_out=32’b0;endcaseendmodule三、立即数扩展电路的设计与验证1.按照要求将输入的16位数扩展成32位输出2.功能表信号名位宽方向说明Imm1616输入来自指令寄存器的16位立即数Extsel2输入00:无符号扩展,将16位立即数进行0扩展至32位立即数;01:符号扩展,将16位补码立即数扩展成32位补码立即数;10:低位0扩展,将16位立即数移至32位立即数的高16位,低16位补0。ExtImm3232输出扩展后的32位立即数3.利用LogicSim中的“分线器”和“选择器”,构造立即数扩展电路4.模拟验证,填表Imm16ExtselExtImm321111000011110000000000000000001111011111111111110111010000111100001111105.编辑逻辑符号(不要忘记学号信息),备用6.截取word报告用图四、7条MIPS指令的译码电路设计与验证1.7条指令说明见相关ppt,根据7条MIPS指令的特征码“opcode”和“funct”,设计指令译码器2.指令译码器功能表输入输出加法减法或立即数立即数置高位取字存字相等跳转opcodefunctaddusubuoriluilwswbeq00000010000110000000000001000110100000001101x0010000001111x0001000100011x0000100101011x0000010000100x00000013.截取word报告用图五、相关选择信号的编码器设计与验证1.当指令被译码后,为完成指令功能,应对数据通路中的选择信号进行编码。例如:addu和subu指令完成A、B两个数的运算;ori指令完成A与立即数的“按位或”逻辑运算;lui指令完成高位“置”有符号立即数;lw和sw指令要通过A+有符号立即数获得数据存放地址;beq指令通过判断A-B的结果是否为零,建立PCsel信号。指令译码4编码器5ALU2立即数扩展3选择器muxopcodefuncImm16ExtImm32AB选择控制信号ALU_sel、B_sel、Ext_sel、PC_selzerozeroALU_outALU_selB_selExt_sel2.编码器功能表(对照图1,理解编码含义)指令ALU_sel[1:0]EXT_sel[1:0]B_selPC_seladdu00xx00subu01xx00ori110010lui001010lw000110sw000110beq01xx01(当zero=1时)3.截取word报告用图六、综合验证1.在LogicSim中,按照图1进行电路(逻辑符号)连接2.按给定数据(注:十进制)进行测试当A=10、B=-5、Imm16=-1时,完成addu测试,截取测试结果并说明;opcode=000000funct=100001时,输出结果为5当A=10、B=10、Imm16=-1时,完成subu测试,截取测试结果并说明;opcode=000000funct=100011时,输出结果为0当A=10、B=10,Imm16=5时,完成ori测试,截取测试结果并说明;opcode=001101funct=x时,输出结果为15当A=0、B=10,Imm16=32时,完成lui测试,截取测试结果并说明;opcode=001111funct=x时,输出结果为2的21次方当A=33、B=33,Imm16=32时,完成beq测试,截取测试结果并说明;opcode=100011funct=x时,输出结果为0当A=2、B=33,Imm16=32时,完成beq测试,截取测试结果并说明;opcode=101011funct=x时,输出结果为负的2的4次方当A=10、B=10,Imm16=-5时,完成lw测试,截取测试结果并说明;opcode=000100funct=x时,输出结果为-111111111110001七、小结我学习了ALU、MIPS、编码器、立即数扩展的基本原理,而且能够运用它们运用实现加法、减法、或立即数、取字、存字和相等跳转等功能。由于我是一个个做的问题,因此我在调用封装图时需要先将它们添加进来,在project里选择Loadlibrary,之后选择LogisimLibrary就可以导入之前做过的封装图了。除此之外,我还学会使用了一些新的器件,例如:bitextender,multiplexer,decoder,priorityencoder等等。不仅让我对Logisim和数字逻辑课程有了更深刻的理解,还让我对CPU有了新的认识。
本文标题:北工大-基于逻辑门的七段数码管字形发生器的设计2
链接地址:https://www.777doc.com/doc-5205464 .html