当前位置:文档之家› 数字逻辑个性课实验报告

数字逻辑个性课实验报告

学生学号0121410870432实验成绩学生实验报告书实验课程名称逻辑与计算机设计基础开课学院计算机科学与技术学院指导教师姓名肖敏学生姓名付天纯学生专业班级物联网14032015--2016学年第一学期译码器的设计与实现【实验要求】:(1)理解译码器的工作原理,设计并实现n-2n译码器,要求能够正确地根据输入信号译码成输出信号。

(2)要求实现2-4译码器、3-8译码器、4-16译码器、8-28译码器、16-216译码器、32-232译码器。

【实验目的】(1)掌握译码器的工作原理;(2)掌握n-2n译码器的实现。

【实验环境】◆Basys3 FPGA开发板,69套。

◆Vivado2014 集成开发环境。

◆Verilog编程语言。

【实验步骤】一·功能描述输入由五个拨码开关控制,利用led灯输出32种显示二·真值表三·电路图和表达式四·源代码module decoder_5(input [4:0] a,output [15:0] d0);reg [15:0] d0;reg [15:0] d1;always @(a)begincase(a)5'b00000 :{d1,d0}=32'b1000_0000_0000_0000_0000_0000_0000_0000;5'b00001 :{d1,d0}=32'b0100_0000_0000_0000_0000_0000_0000_0000;5'b00010 :{d1,d0}=32'b0010_0000_0000_0000_0000_0000_0000_0000;5'b00011 :{d1,d0}=32'b0001_0000_0000_0000_0000_0000_0000_0000;5'b00100 :{d1,d0}=32'b0000_1000_0000_0000_0000_0000_0000_0000;5'b00101 :{d1,d0}=32'b0000_0100_0000_0000_0000_0000_0000_0000;5'b00110 :{d1,d0}=32'b0000_0010_0000_0000_0000_0000_0000_0000;5'b00111 :{d1,d0}=32'b0000_0001_0000_0000_0000_0000_0000_0000;5'b01000 :{d1,d0}=32'b0000_0000_1000_0000_0000_0000_0000_0000;5'b01001 :{d1,d0}=32'b0000_0000_0100_0000_0000_0000_0000_0000;5'b01010 :{d1,d0}=32'b0000_0000_0010_0000_0000_0000_0000_0000;5'b01011 :{d1,d0}=32'b0000_0000_0001_0000_0000_0000_0000_0000;5'b01100 :{d1,d0}=32'b0000_0000_0000_1000_0000_0000_0000_0000;5'b01101 :{d1,d0}=32'b0000_0000_0000_0100_0000_0000_0000_0000;5'b01110 :{d1,d0}=32'b0000_0000_0000_0010_0000_0000_0000_0000;5'b01111 :{d1,d0}=32'b0000_0000_0000_0001_0000_0000_0000_0000;5'b10000 :{d1,d0}=32'b0000_0000_0000_0000_1000_0000_0000_0000;5'b10001 :{d1,d0}=32'b0000_0000_0000_0000_0100_0000_0000_0000;5'b10010 :{d1,d0}=32'b0000_0000_0000_0000_0010_0000_0000_0000;5'b10011 :{d1,d0}=32'b0000_0000_0000_0000_0001_0000_0000_0000;5'b10100 :{d1,d0}=32'b0000_0000_0000_0000_0000_1000_0000_0000;5'b10101 :{d1,d0}=32'b0000_0000_0000_0000_0000_0100_0000_0000;5'b10110 :{d1,d0}=32'b0000_0000_0000_0000_0000_0010_0000_0000;5'b10111 :{d1,d0}=32'b0000_0000_0000_0000_0000_0001_0000_0000;5'b11000 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_1000_0000;5'b11001 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0100_0000;5'b11010 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0010_0000;5'b11011 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0001_0000;5'b11100 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0000_1000;5'b11101 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0000_0100;5'b11110 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0000_0010;5'b11111 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0000_0001;default {d1,d0}=32'bxxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx;endcaseendendmodule五·测试用例映射:d0[0]:U16... ...d0[15]:LD15从左向右映射低位数段输入:1111输出:v16亮学生学号0121410870432实验成绩学生实验报告书实验课程名称逻辑与计算机设计基础开课学院计算机科学与技术学院指导教师姓名肖敏学生姓名付天纯学生专业班级物联网14032015--2016学年第一学期数据选择器的设计与实现【实验要求】:(1)理解数据选择器的工作原理,设计并实现2n选1的数据选择器,要求能够正确地根据输入的控制信号选择合适的输出。

(2)要求实现21选1的数据选择器、22选1 的数据选择器、24选1的数据选择器、25选1的数据选择器,2n选1的数据选择器。

【实验目的】(1)掌握数据选择器的工作原理;(2)掌握2n选1的数据选择器的实现。

【实验环境】◆Basys3 FPGA开发板,69套。

◆Vivado2014 集成开发环境。

◆Verilog编程语言。

【实验步骤】一.功能描述由五个拨码开关控制选择,十一个拨码开关控制输入内部定义二十一位数,输出由一个led灯显示。

二·真值表表达式_sgn _sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[0]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[1]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[2]_sgn[4]out add add add add add in add add add add add in add add add add add in add ad =+++_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[3]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[4]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[5]_sgn[4]_sgn[3]_sgn[2]d add add add in add add add add add in add add add add add in add add add ad +++_sgn[1]_sgn[0]_sgn[6]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[7]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[8]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]d add in add add add add add in add add add add add in add add add add add in +++_sgn[9]_sgn[4]_sgn[3]_sgn[2]_sgn[1]_sgn[0]_sgn[10]add add add add add in ++三.函数module select_32_1( input [10:0] in_sgn, input [4:0] add_sgn, output out_sgn );wire [20:0]in_in_sgn; wire for_out_sgn; wire back_out_sgn;assign in_in_sgn=21'b0000_0000_0000_0000_00000; select_16_1sel16_1(.in_sgn({in_in_sgn[3:0],in_sgn[10:0]}),.add_sgn(add_sgn[3:0]),.out_sgn(for_out_sgn)); select_16_1 sel16_2(.in_sgn(in_in_sgn[20:4]),.add_sgn(add_sgn[3:0]),.out_sgn(back_out_sgn)); select_2_1sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[4]),.out_sgn(out_sgn)); endmodulemodule select_16_1( input [11:0] in_sgn, input [3:0] add_sgn, output out_sgn );wire [3:0]in_in_sgn; wire for_out_sgn; wire back_out_sgn;assign in_in_sgn=4'b0000;select_8_1 sel8_1(.in_sgn(in_sgn[7:0]),.add_sgn(add_sgn[2:0]),.out_sgn(for_out_sgn)); select_8_1sel8_2(.in_sgn({in_in_sgn[3:0],in_sgn[11:8]}),.add_sgn(add_sgn[2:0]),.out_sgn(back_out_sgn));select_2_1sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[3]),.out_sgn(out_sgn));endmodulemodule select_8_1(input [7:0] in_sgn,input [2:0] add_sgn,output out_sgn);wire for_out_sgn;wire back_out_sgn;select_4_1 sel4_1(.in_sgn(in_sgn[3:0]),.add_sgn(add_sgn[1:0]),.out_sgn(for_out_sgn));select_4_1 sel4_2(.in_sgn(in_sgn[7:4]),.add_sgn(add_sgn[1:0]),.out_sgn(back_out_sgn));select_2_1sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[2]),.out_sgn(out_sgn)); endmodulemodule select_4_1(input [3:0] in_sgn,input [1:0] add_sgn,output out_sgn);wire for_out_sgn;wire back_out_sgn;select_2_1sel2_1(.in_sgn1(in_sgn[0]),.in_sgn2(in_sgn[1]),.add_sgn(add_sgn[0]),.out_sgn(for_out_sgn));select_2_1sel2_2(.in_sgn1(in_sgn[3]),.in_sgn2(in_sgn[2]),.add_sgn(add_sgn[0]),.out_sgn(back_out_sgn));select_2_1sel2_3(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[1]),.out_sgn(out_sgn)); endmodulemodule select_2_1(input in_sgn1,input in_sgn2,input add_sgn,output out_sgn);reg out_sgn;always@(*)beginif(add_sgn==0) out_sgn=in_sgn1;else out_sgn=in_sgn2;endendmodule电路图out四.结果检验选择线从大到小对应从左到右的左边五个拨码开关,输入从大到小对应剩下从左到右十一个拨码开关。

相关主题