数字逻辑个性课实验报告

数字逻辑个性课实验报告
数字逻辑个性课实验报告

学生学号0121410870432实验成绩

学生实验报告书

实验课程名称逻辑与计算机设计基础

开课学院计算机科学与技术学院

指导教师姓名肖敏

学生姓名付天纯

学生专业班级物联网1403

2015--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)

begin

case(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;

endcase

end

endmodule

五·测试用例

映射:d0[0]:U16... ...d0[15]:LD15从左向右映射低位数段输入:1111

输出:v16亮

学生学号0121410870432实验成绩

学生实验报告书

实验课程名称逻辑与计算机设计基础

开课学院计算机科学与技术学院

指导教师姓名肖敏

学生姓名付天纯

学生专业班级物联网1403

2015--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_1

sel16_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_1

sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[4]),.out_sgn(out_sgn)); endmodule

module 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_1

sel8_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_1

sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[3]),.out_sgn(out_sgn));

endmodule

module 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_1

sel2_1(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[2]),.out_sgn(out_sgn)); endmodule

module 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_sgn[0]),.in_sgn2(in_sgn[1]),.add_sgn(add_sgn[0]),.out_sgn(for_out_sgn));

select_2_1

sel2_2(.in_sgn1(in_sgn[3]),.in_sgn2(in_sgn[2]),.add_sgn(add_sgn[0]),.out_sgn(back_out_sgn));

select_2_1

sel2_3(.in_sgn1(for_out_sgn),.in_sgn2(back_out_sgn),.add_sgn(add_sgn[1]),.out_sgn(out_sgn)); endmodule

module 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_sgn2;

end

endmodule

电路

图out

四.结果检验

选择线从大到小对应从左到右的左边五个拨码开关,输入从大到小对应剩下从左到右十一个拨码开关。任意选led灯一个对应输出。

只将最右边一个拨码开关打开,led灯亮。

学生学号0121410870432实验成绩

学生实验报告书

实验课程名称逻辑与计算机设计基础

开课学院计算机科学与技术学院

指导教师姓名肖敏

学生姓名付天纯

学生专业班级物联网1403

2015--2016学年第一学期

ALU的设计与实现

【实验要求】:

(1)理解全加器的工作原理,设计并实现1位,8位,32位全加器,能实现基本的加法运算。(2)设计并实现1位,8位,32位补码器,能够计算补码,从而实现加法和减法运算。【实验目的】

实现1位,8位,32位全加器;实现1位,8位,32位补码运算;实现1位,8位,32位的加减法器。

【实验环境】

◆Basys3 FPGA开发板,69套。

◆Vivado2014 集成开发环境。

◆Verilog编程语言。

【实验步骤】

一.功能描述

输入两个八位二进制数,最高位代表符号位,0代表正1代表负,输出八位led灯,一个代表结果符号,八位代表加减后的结果。

二.真值表

二.表达式

([7])

_{[7],~[6:0]1}_[7:0]([7])

_{[7],~[6:0]1}_[7:0]

_0[0][0][0]0[0][0]1[0][0]1[0][0]0;[0][0][0]0[0][0]0[0][0];

_0[1][1][1][0][1][1][0][if a a o a a else

a o a if

b b o b b else b o b

c a b a b a b a b s a b a b a b c a b s a b s a =+==+==+++=++=++1][1][0][1][1][0];[1][1][1][0][1][1][0][1][1];

_0[2][2][2][1][2][2][1][2][2][1][2][2][1];[2][2][2][1][2][2][1][2][2];

_0[3][3][3][2][3][3][2][3]b s a b s s a b s a b s a b c a b s a b s a b s a b s s a b s a b s a b c a b s a b s a +=++=+++=++=++[3][2][3][3][2];[3][3][3][2][3][3][2][3][3];

_0[4][4][4][3][4][4][3][4][4][3][4][4][3];[4][4][4][3][4][4][3][4][4];

_0[5][5][5][4][5][5][4][2][b s a b s s a b s a b s a b c a b s a b s a b s a b s s a b s a b s a b c a b s a b s a b +=++=+++=++=++5][4][5][5][4];[5][5][5][4][5][5][4][5][5];

_0[6][6][6][5][6][6][5][6][6][5][6][6][5];[6][6][6][5][6][6][5][6][6];

_0[7][7][7][6][7][7][6][7][7]s a b s s a b s a b s a b c a b s a b s a b s a b s s a b s a b s a b c a b s a b s a b +=++=+++=++=++[6][7][7][6];[7][7][6][7][7][6][7][7];(_[7])0;

{_[7],~(_[6:0]1)}_[7:0]

s a b s sign a b s a b s a b if c o begin

sign c c o c o end else c c o +=++==-=

四.Verilog 代码描述

module bumaqi( input [6:0] value, Input sign,

相关主题
相关文档
最新文档