1、逻辑与计算机设计基础课实验报告学生学号 0121410870432实验成绩学 生 实 验 报 告 书实验课程名称逻辑与计算机设计基础开 课 学 院计算机科学与技术学院指导教师姓名肖敏学 生 姓 名付天纯学生专业班级物联网14032015-2016学年第一学期译码器的设计与实现【实验要求】:(1)理解译码器的工作原理,设计并实现n-2n译码器,要求能够正确地根据输入信号译码成输出信号。(2)要求实现2-4译码器、3-8译码器、4-16译码器、8-28译码器、16-216译码器、32-232译码器。【实验目的】 (1)掌握译码器的工作原理;(2)掌握n-2n译码器的实现。【实验环境】Basys3
2、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) begin case(a) 5b00000 :d1,d0=32b1000_0000_0000_0000_0000_0000_0000_0000; 5b00001 :d1,d0=32b0100_0000_0000_0000_0000_0000
3、_0000_0000; 5b00010 :d1,d0=32b0010_0000_0000_0000_0000_0000_0000_0000; 5b00011 :d1,d0=32b0001_0000_0000_0000_0000_0000_0000_0000; 5b00100 :d1,d0=32b0000_1000_0000_0000_0000_0000_0000_0000; 5b00101 :d1,d0=32b0000_0100_0000_0000_0000_0000_0000_0000; 5b00110 :d1,d0=32b0000_0010_0000_0000_0000_0000_0000
4、_0000; 5b00111 :d1,d0=32b0000_0001_0000_0000_0000_0000_0000_0000; 5b01000 :d1,d0=32b0000_0000_1000_0000_0000_0000_0000_0000; 5b01001 :d1,d0=32b0000_0000_0100_0000_0000_0000_0000_0000; 5b01010 :d1,d0=32b0000_0000_0010_0000_0000_0000_0000_0000; 5b01011 :d1,d0=32b0000_0000_0001_0000_0000_0000_0000_0000
5、; 5b01100 :d1,d0=32b0000_0000_0000_1000_0000_0000_0000_0000; 5b01101 :d1,d0=32b0000_0000_0000_0100_0000_0000_0000_0000; 5b01110 :d1,d0=32b0000_0000_0000_0010_0000_0000_0000_0000; 5b01111 :d1,d0=32b0000_0000_0000_0001_0000_0000_0000_0000; 5b10000 :d1,d0=32b0000_0000_0000_0000_1000_0000_0000_0000; 5b1
6、0001 :d1,d0=32b0000_0000_0000_0000_0100_0000_0000_0000; 5b10010 :d1,d0=32b0000_0000_0000_0000_0010_0000_0000_0000; 5b10011 :d1,d0=32b0000_0000_0000_0000_0001_0000_0000_0000; 5b10100 :d1,d0=32b0000_0000_0000_0000_0000_1000_0000_0000; 5b10101 :d1,d0=32b0000_0000_0000_0000_0000_0100_0000_0000; 5b10110
7、:d1,d0=32b0000_0000_0000_0000_0000_0010_0000_0000; 5b10111 :d1,d0=32b0000_0000_0000_0000_0000_0001_0000_0000; 5b11000 :d1,d0=32b0000_0000_0000_0000_0000_0000_1000_0000; 5b11001 :d1,d0=32b0000_0000_0000_0000_0000_0000_0100_0000; 5b11010 :d1,d0=32b0000_0000_0000_0000_0000_0000_0010_0000; 5b11011 :d1,d
8、0=32b0000_0000_0000_0000_0000_0000_0001_0000; 5b11100 :d1,d0=32b0000_0000_0000_0000_0000_0000_0000_1000; 5b11101 :d1,d0=32b0000_0000_0000_0000_0000_0000_0000_0100; 5b11110 :d1,d0=32b0000_0000_0000_0000_0000_0000_0000_0010; 5b11111 :d1,d0=32b0000_0000_0000_0000_0000_0000_0000_0001; default d1,d0=32bx
9、xxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx; endcase endendmodule五测试用例映射:d00:U16. .d015:LD15从左向右映射低位数段输入:1111输出:v16亮学生学号 0121410870432实验成绩学 生 实 验 报 告 书实验课程名称逻辑与计算机设计基础开 课 学 院计算机科学与技术学院指导教师姓名肖敏学 生 姓 名付天纯学生专业班级物联网14032015-2016学年第一学期数据选择器的设计与实现【实验要求】:(1)理解数据选择器的工作原理,设计并实现2n选1的数据选择器,要求能够正确地根据输入的控制信号选择合适的输出。(
10、2)要求实现21选1的数据选择器、22选1 的数据选择器、24选1的数据选择器、25选1的数据选择器,2n选1的数据选择器。【实验目的】 (1)掌握数据选择器的工作原理;(2)掌握2n选1的数据选择器的实现。【实验环境】Basys3 FPGA开发板,69套。Vivado2014 集成开发环境。Verilog编程语言。【实验步骤】一功能描述由五个拨码开关控制选择,十一个拨码开关控制输入内部定义二十一位数,输出由一个led灯显示。二真值表三表达式四函数module select_32_1( input 10:0 in_sgn, input 4:0 add_sgn, output out_sgn )
11、; wire 20:0in_in_sgn; wire for_out_sgn; wire back_out_sgn; assign in_in_sgn=21b0000_0000_0000_0000_00000; select_16_1 sel16_1(.in_sgn(in_in_sgn3:0,in_sgn10:0),.add_sgn(add_sgn3:0),.out_sgn(for_out_sgn); select_16_1 sel16_2(.in_sgn(in_in_sgn20:4),.add_sgn(add_sgn3:0),.out_sgn(back_out_sgn); select_2_
12、1 sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn4),.out_sgn(out_sgn);endmodulemodule select_16_1( input 11:0 in_sgn, input 3:0 add_sgn, output out_sgn ); wire 3:0in_in_sgn; wire for_out_sgn; wire back_out_sgn; assign in_in_sgn=4b0000; select_8_1 sel8_1(.in_sgn(in_sgn7:0),.add_s
13、gn(add_sgn2:0),.out_sgn(for_out_sgn); select_8_1 sel8_2(.in_sgn(in_in_sgn3:0,in_sgn11:8),.add_sgn(add_sgn2:0),.out_sgn(back_out_sgn); select_2_1 sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn3),.out_sgn(out_sgn);endmodulemodule select_8_1( input 7:0 in_sgn, input 2:0 add_sgn, o
14、utput out_sgn ); wire for_out_sgn; wire back_out_sgn; select_4_1 sel4_1(.in_sgn(in_sgn3:0),.add_sgn(add_sgn1:0),.out_sgn(for_out_sgn); select_4_1 sel4_2(.in_sgn(in_sgn7:4),.add_sgn(add_sgn1:0),.out_sgn(back_out_sgn); select_2_1 sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn2),.
15、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_1 sel2_1(.in_sgn1(in_sgn0),.in_sgn2(in_sgn1),.add_sgn(add_sgn0),.out_sgn(for_out_sgn); select_2_1 sel2_2(.in_sgn1(in_sgn3),.in_sgn2(in_sgn2),.add_sgn(add_
16、sgn0),.out_sgn(back_out_sgn); select_2_1 sel2_3(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn1),.out_sgn(out_sgn);endmodulemodule select_2_1( input in_sgn1, input in_sgn2, input add_sgn, output out_sgn ); reg out_sgn; always(*) begin if(add_sgn=0) out_sgn=in_sgn1; else out_sgn=in_sgn
17、2; endendmodule四电路图五结果检验选择线从大到小对应从左到右的左边五个拨码开关,输入从大到小对应剩下从左到右十一个拨码开关。任意选led灯一个对应输出。只将最右边一个拨码开关打开,led灯亮。学生学号 0121410870432实验成绩学 生 实 验 报 告 书实验课程名称逻辑与计算机设计基础开 课 学 院计算机科学与技术学院指导教师姓名肖敏学 生 姓 名付天纯学生专业班级物联网14032015-2016学年第一学期ALU的设计与实现【实验要求】:(1)理解全加器的工作原理,设计并实现1位,8位,32位全加器,能实现基本的加法运算。(2)设计并实现1位,8位,32位补码器,能够计
18、算补码,从而实现加法和减法运算。【实验目的】 实现1位,8位,32位全加器;实现1位,8位,32位补码运算;实现1位,8位,32位的加减法器。【实验环境】Basys3 FPGA开发板,69套。Vivado2014 集成开发环境。Verilog编程语言。【实验步骤】一功能描述输入两个八位二进制数,最高位代表符号位,0代表正1代表负,输出八位led灯,一个代表结果符号,八位代表加减后的结果。二真值表 二表达式四Verilog代码描述module bumaqi( input 6:0 value, Input sign,output 7:0 comp ); reg 7:0 comp; always (
19、sign) if(sign=1) comp=sign,value6:0+1; Else comp=sign,value6:0;endmodulemodule fulladd_2( input a, input b, input x, output s, output c ); wire s1,c1,c2; xor xor1(s1,a,b); xor xor2(s,s1,x); and and1(c1,a,b); and and2(c2,s1,x); or or1(c,c1,c2);endmodulemodule fulljia( input 7:0 a, input 7:0 b, output
20、 7:0 s, output c ); wire 6:0 c_mid; full2 fu1(.a(a0),.b(b0),.x(0),.c(c_mid0),.s(s0); full2 fu2(.a(a1),.b(b1),.x(c_mid0),.c(c_mid1),.s(s1); full2 fu3(.a(a2),.b(b2),.x(c_mid1),.c(c_mid2),.s(s2); full2 fu4(.a(a3),.b(b3),.x(c_mid2),.c(c_mid3),.s(s3); full2 fu5(.a(a4),.b(b4),.x(c_mid3),.c(c_mid4),.s(s4);
21、 full2 fu6(.a(a5),.b(b5),.x(c_mid4),.c(c_mid5),.s(s5); full2 fu7(.a(a6),.b(b6),.x(c_mid5),.c(c_mid6),.s(s6); full2 fu8(.a(a7),.b(b7),.x(c_mid6),.c(c),.s(s7);endmodulemodule jiajian( input 7:0 a, input 7:0 b, output 7:0 c, output sign ); wire 7:0a_o; wire 7:0b_o; wire 7:0c_o; bumaqi bu1(a6:0,a7,a_o7:
22、0); bumaqi bu2(b6:0,b7,b_o7:0); fulljia fu(a_o7:0,b_o7:0,c_o7:0,sign); reg 7:0 c; always(c_o7)if(c_o7)c=c_o7,(c_o6:0-1); else c=c_o7:0;if(c_o7)sign=0;endmodule五电路图六结果检验输入a为2,b为3,led灯显示正5.输入a为2,b为负3,led灯显示负1.学生学号 0121410870432实验成绩学 生 实 验 报 告 书实验课程名称逻辑与计算机设计基础开 课 学 院计算机科学与技术学院指导教师姓名肖敏学 生 姓 名付天纯学生专业班级物
23、联网14032015-2016学年第一学期计数器的设计与实现【实验要求】:(1)利用D触发器设计并实现二进制计数器,要求实现216-1的计数;(2)利用D触发器设计并实现十进制计数器(BCD码),要求实现105-1的计数;(3)利用D触发器设计并实现3位纽环计数器。【实验目的】 1.掌握二进制和十进制计数器的设计与实现;2.掌握二进制和十进制计数器的集成;3.掌握纽环计数器的实现。【实验环境】Basys3 FPGA开发板,69套。Vivado2014 集成开发环境。Verilog编程语言。【实验原理】【实验步骤】包括:功能描述,真值表,逻辑方程,电路图,Verilog代码实现(硬件映射代码),
24、实验结果或者仿真结果1)二进制计数器022实现Q1nQ0nQ1n+1Q0n+1C00010011001011011001Q1n+1= Q1nQ0nC=Q1nQ0n2 十进制计数器(1)十进制计数器0-9Q3nQ2nQ1nQ0nQ3n+1Q2n+1Q1n+1Q0n+1C000000010001001000100011001101000100010101010110011001110111100010001001100100001Verilog代码实现module jishuqi_60(input clk,input rst,output reg 7:0q);second_clk second(c
25、lk,clk_1); wire 3:0m; wire c; reg 3:0 n=4b0000;jishuqi_10 jishuqi2(clk_1,rst,m,c);always(posedge clk_1)beginif(c=1)case(n) 4b0000: n=4b0001; 4b0001: n=4b0010; 4b0010: n=4b0011; 4b0011: n=4b0100; 4b0100: n=4b0101; 4b0101: n=4b0110; 4b0110: n=4b0111; 4b0111: n=4b1000; 4b1000: n=4b1001;endcaseq=n3:0,m3
26、:0;endendmodulemodule jishuqi_10(input clk_1,input rst,output reg 3:0q,output reg c);always(posedge clk_1 or posedge rst)beginif(rst=1)q=4b0000;case(q) 4b0000:q=4b0001; 4b0001: q=4b0010; 4b0010: q=4b0011; 4b0011: q=4b0100; 4b0100: q=4b0101; 4b0101: q=4b0110; 4b0110: q=4b0111; 4b0111: q=4b1000; 4b100
27、0: begin q=4b1001; c=1; end 4b1001:begin q=4b0000; c=0; end endcase endendmodulemodule second_clk(input clk,output reg second_clk);reg 27:0 count=0;parameter M=2;always(posedge clk)begin second_clk=0; count=count+1; if(count=M) second_clk=1; if(count=2*M) begin second_clk=0; count=0; endendendmodule结果仿真学生学号 0121410870432实验成绩学 生 实 验
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1