一. 系统模块实现
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
主模块
实现
/*********************主模块*********************/
module BCD(A0,A1,B0,B1,displayA0,displayA1,displayB0,displayB1,displayS0,displayS1,displayS2); //主模块端口
input [3:0]A0; //考虑到A0、B0、A1、B1的值可能超过十进制数8,顾定义长度为4位;
input [3:0]A1;
input [3:0]B0;
input [3:0]B1;
output [6:0]displayB0;
output [6:0]displayB1;
output [6:0]displayA0;
output [6:0]displayA1;
output [6:0]displayS0;
output [6:0]displayS1;
output [6:0]displayS2;
reg [3:0]S0;
reg [3:0]S1;
reg [3:0]S2;
reg [4:0]C0;
reg [4:0]C1;
reg [4:0]T0; //低位和值可能超过16,所以定义T0、T1长度为5;
reg [4:0]T1;
reg [4:0]Z0;
reg [4:0]Z1;
always //不停重复;
begin
T0=A0+B0; //低位相加和值赋T0;
if(T0>9)
begin
Z0=10; //如果低位相加有进位,则赋值Z0=10;
C0=1; //如果T0>9,则有进位,此时C0=1;
end
else
begin
Z0=0;
C0=0;
end
begin
T1=A1+B1+C0; //高位为A1加B1再加进位C0,赋值给T1;
if(T1>9)
begin
Z1=10;
C1=1;
end
else
begin
Z1=0;
C1=0;
end
end
begin
S0=T0-Z0; //和值S0到S1赋值;
S1=T1-Z1;
S2=C1;
end
end
display in0(displayA0,A0);
display in1(displayA1,A1);
display in2(displayB0,B0);
display in3(displayB1,B1);
display out0(displayS0,S0);
display out1(displayS1,S1);
display out2(displayS2,S2);
endmodule
说明
由于实验所用开发板芯片应用EP2C35F672C6,不设置时序,always结构让程序处于不停执行状态。
译码显示模块
实现
/*************七段数码管显示译码器******************/
module decode4_7(decodeout,indec);
output[6:0] decodeout;
input[3:0] indec;
reg[6:0] decodeout;
always @(indec)
begin
case(indec) //用case 语句进行译码
4'd0:decodeout=7'b1000000;
4'd1:decodeout=7'b1111001;
4'd2:decodeout=7'b0100100;
4'd3:decodeout=7'b0110000;
4'd4:decodeout=7'b0011001;
4'd5:decodeout=7'b0010010;
4'd6:decodeout=7'b0000010;
4'd7:decodeout=7'b1111000;
4'd8:decodeout=7'b0000000;
4'd9:decodeout=7'b0010000;
default: decodeout=7'bz;
endcase
end
endmodule
说明
此处采用老师提供PDF里面的四输入七段数码管显示译码器模块,四个输入端口,七个输出端口分别对应数码管的七段LED灯,LED灯由低电平控制。
二. 结果与讨论
出现的问题以及解决过程
A. 一开始输出端口为s0,s1,s2,无法对应七段数码显示管,后来把它当成变量换成七位输出端口对应数码管成功。
B. 一些语法错误比如缺少end,缺少“;”号,以及输出对象被说明为wire类型。后来编译过程中排除了语法错误,把错误说明wire类型与reg类型更改修正。
仿真的结果
波形仿真
开发板仿真结果
三. 实验
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
此次实验内容虽然说不是很困难,甚至应该说这是一个入门级的小实验,但是前前后后也是花了我很多脑细胞和时间,跑了很多次实验室,才搞定。通过此次实验,首先是对Verilog HDL语言的设计思想有了深入理解,将这种自顶向下的设计理念运用于实践中,设计2位BCD码加法器,突出了Verilog HDL作为硬件描述语言的良好可读性和可移植性,对上学期所学的而理论知识有了深刻的理解。
在这次的课程设计中我不仅学习到有关程序编写以及设计方面的逻辑思维,对系统功能的实现也有了较为深入的了解,对各模块的调试等也学习到不少东西,总之,从这次设计中学到很多东西,也巩固了我的理论学习。