您的当前位置:首页正文

电子技术实验大作业实验报告-上海交通大学

来源:九壹网


电子技术实验大作业实验报告

1. 实验名称

四位二进制数的可控加法 / 减法

2. 设计思路

本作业主要完成的是四位二进制数的可控加法。实现了附加功能中的在四位数码管上显示和数值溢出的显示功能。

本作业主要由两个模块组成,一个是主程序模块,负责较简单的加法运算;另外一个是a_to_g子程序模块,输入一个4位二进制数字,用来把数字显示在数字管上。数值溢出则是看cout位是否为1,为1则溢出。

3. 程序代码

`timescale 1ns / 1ps

w(sum),.clk(clk),.dp_a_to_g(dp_a_to_g),.out0(out0),.cout(cout));

\\

endmodule

module a_to_g(

input [3:0]sw, input clk, input cout,

#

output reg [6:0]dp_a_to_g, output reg [3:0]out0

);

integer num; integer s; integer i;

initial begin i=0; end

always @(posedge clk)

&

begin

i=i+1;

if (i[16:14]>3) i=0;

s=i[15:14]; if (~cout) begin case(s)

0:out0=4'b0111; 1:out0=4'b1011; 2:out0=4'b1101;

}

3:out0=4'b1110;

endcase case(s)

0:num=sw[0]; 1:num=sw[1]; 2:num=sw[2]; 3:num=sw[3];

endcase end else begin

out0=4'b0000;

end

end

num=2;

always @(*)

case(num)

0:dp_a_to_g=7'b0000001;

$

endmodule

endcase

1:dp_a_to_g=7'b1001111; 2:dp_a_to_g=7'b0110000;

default: dp_a_to_g=7'b1111111;

4.

<

5.

实验心得

让四位数码管循环显示时,如果设定的循环间隔太短,则因为毛刺等之类的原因,会使整个数码管亮起来,人眼只能看到四个八。而设定的频率太低的话,则无法造成人眼短暂停留视觉的效果,而是一个一个亮。选择正确的频率才能得到正确的结果。

做此次试验的最大心得就是编程序得走一步看一步,按模块功能一块一块做。做完一块,检查一块。之前一开始我选的题目是数字时钟,一鼓作气把功能大部分都写出来之后,发现了一堆bug,改了好几个小时都没有办法排除 ,只能重新做。很可惜浪费了时间。

第二个体会是感受到了高级语言和verilog这种硬件描述语言的差异所在。对于一般使用的高级语言来说,有成熟的封装和函数,以及各种各样的数据类型,使用起来比较容易上手。而对verilog来说,因为跟硬件更为靠近,很多时候不能光码代码,还得想想能否实验。而且各种规则也不尽相同,很容易做无用功。需要从低级到高级循序渐进的学习,以为掌握一种语言就可以吃遍天下的想法是幼稚的。

学习路上没有捷径,今天在学习verilog的路上真可是又复习了一遍这个人生哲理了!

module adder(number1,number2,sum,overflow); input [3:0] number1; input [3:0] number2; output [3:0] sum; output overflow;

wire c1,c2,c3;

assign sum[0]=number1[0] ^ number2[0]; assign c1 = number1[0] & number2[0]; assign sum[1]=number1[1]^number2[1]^c1;

assign c2 = (number1[1] & number2[1]) | (number1[1] & c1) |

(number2[1] & c1);

assign sum[2]=number1[2]^number2[2]^c2;

assign c3 = (number1[2] & number2[2]) | (number1[2] & c2) | (number2[2] & c2);

assign sum[3]=number1[3]^number2[3]^c3;

assign overflow= (number1[3] & number2[3]) | (number1[3] & c3) | (number2[3] & c3); endmodule

因篇幅问题不能全部显示,请点此查看更多更全内容

Top