电子设计自动化。
大作业。题目加法器和减法器
学院自动化与电气工程学院。
班级电传1102班。
姓名刘长颖。
学号20110321122
目录。一设计要求 4
二总体设计 5
2.1 总体结构图 5
2.1.1外部端口示意图 5
2.1.2总体结构图 5
2.2 各模块功能 5
2.2.1 运算控制 5
2.2.2 进位指示 5
2.2.3 运算数据输入 6
2.2.4 运算结果显示 6
2.2.5 运算控制 6
三单元模块设计 7
3.1运算控制 7
3.1.1端口定义 7
3.1.2 verilog运算控制模块程序 7
3.1.3 运算控制框图 7
3.1.4 运算控制模块**结果 8
3.2进位指示 8
3.2.1端口定义 8
3.2.2 verilog进位指示模块程序 8
3.2.3 进位指示框图 9
3.2.4 进位指示模块**结果 9
3.3预置数据输入 9
3.3.1端口定义 9
3.3.2 verilog预置数据输入模块程序 9
3.3.3 预置数据输入框图 10
3.3.4 运算数据输入模块**结果 10
3.4运算结果显示 11
3.4.1端口定义 11
3.4.2 verilog运算控制模块程序 11
3.4.3 运算结果显示框图 11
3.4.3 运算结果显示模块**结果 12
3.5运算 12
3.5.1 端口定义 12
3.5.2 运算模块程序 12
3.5.3 运算框图 13
3.5.4 运算**结果 13
四整体组装 14
4.1 总框图 14
构造一个四位二进制加法器和一个四位二进制减法器,完成各自的功能**。
利用四个按键输入四位加数(或减数)和被加数(或被减数)。
用七段数码管显示四位和(或差),用一只发光二极管指示进位(或借位)信号。
利用个开关控制,确定是四位二进制加法器还是一个四位二进制减法器。
2.1.1外部端口示意图。
图1 外部端口示意图。
2.1.2总体结构图。
总体结构分为运算控制、运算数据输入、进位指示、运算、运算结果显示这五个部分。各个部分的关系如图2总体结构图所示。
图2 总体结构图。
2.2.1 运算控制。
使用按键控制值所涉及的电路是进行加法运算还是减法运算。
2.2.2 进位指示。
当进行加法运算时,如果运算结果有进位,则指示灯亮,否则指示灯亮。
2.2.3 运算数据输入。
通过一个按键的控制控制所输入的数据时正对加法运算还是减法运算。
2.2.4 运算结果显示。
将当前运算(加法或者减法)结果显示在数码管上。
2.2.5 运算控制。
对运算规则进行控制,对当前的运算是加法运算和还是减法运算。
3.1.1端口定义。
module coturol(clk,key,shezhi);
clk为输入的系统时钟信号,key为输入运算法则的显示信号,shezhi为输出的结构标志信号。
3.1.2 verilog运算控制模块程序。
module coturol(clk,key,shezhi);
input clk;
output shezhi;
input key;
reg shezhi_r;
always@(key)
beginif(key ==1控制进行加法运算还是减法运算。
shezhi_r = 1;
elseshezhi_r = 0;
endassign shezhi=shezhi_r;
endmodule
3.1.3 运算控制框图。
图3 运算控制框图。
3.1.4 运算控制模块**结果。
图4 运算控制**图。
3.2.1端口定义。
module jinwei(c_tmp,led,clk,shezhi);clk为输入的系统时钟信号,c_temp为输入的运算结果参数,led为运算结果的进位指示信号,shezhi为运算判断信号的输出端口。
3.2.2 verilog进位指示模块程序。
module jinwei(c_tmp,led,clk,shezhi);
input clk;
output led进位指示。
input shezhi;
input[4:0] c_tmp;
reg led_r;
always@(posedge clk)
beginif(shezhi ==1)
beginif(c_tmp > 5'd16判断是否有进位。
led_r = 1;
elseled_r = 0;
endend
assign led=led_r;
endmodule
3.2.3 进位指示框图。
图5 进位指示框图。
3.2.4 进位指示模块**结果。
图6 进位指示**图。
3.3.1端口定义。
module yuzhi(a,b,clk,key1,key2,key);
clk为输入的系统时钟信号,key1为被加数a或被减速a的数据输入,key2为加数b或减速b的数据输入,key为1输入加数,0输入减数,a,b为运算的两个四位二进制数。
3.3.2 verilog预置数据输入模块程序。
module yuzhi(a,b,clk,key1,key2,key);
input[3:0] key1; /被加数a或被减速a的输入。
input[3:0] key2; /加数b或减速b的输入。
input[1:0] key; /1输入加数,0输入减数。
input clk;
output[3:0] a,b运算的两个四位数。
reg[3:0] a_r,b_r;
always@(posedge clk预置两个运算数据。
beginif(key[0] =1预置加法数据。
begin
a_r = key1;
b_r = key2;
endif(key[1] =1预置减法数据。
begina_r = key1;
b_r = key2;
endend
assign a=a_r;
assign b=b_r;
endmodule
3.3.3 预置数据输入框图。
图7 运算数据输入框图。
3.3.4 运算数据输入模块**结果。
图8 运算数据输入**图。
3.4.1端口定义。
module coturol(clk,key,shezhi);
clk为输入的系统时钟信号;key为加减法选择端口,1输入加数,0输入减数;shezhi运算控制输出端口。
3.4.2 verilog运算控制模块程序。
module coturol(clk,key,shezhi);
input clk;
output shezhi;
input key;
reg shezhi_r;
always@(posedge clk)
beginif(key ==1控制进行加法运算还是减法运算。
shezhi_r = 1;
elseshezhi_r = 0;
endassign shezhi=shezhi_r;
endmodule
3.4.3 运算结果显示框图。
图9 运算结果显示框图。
3.4.3 运算结果显示模块**结果。
图10 运算结果显示**图。
3.5.1 端口定义。
module yunsuan(clk,a,b,shezhi,c_tmp);
clk为输入的系统时钟信号,a为运算时的被减数或被加数,b为运算时的减数或加数,shezhi为进行运算控制的标志信号,c_tmp为运算结果的的输出信号。
EDA大作业
eda技术课程大作业。设计题目 4线 16线译码器设计。学生姓名。学号。专业班级 09电子信息1班 2012年5月26日。4线 8线译码器设计。1.设计背景与设计方案。1.1设计背景。译码器是组合逻辑电路的一个重要器件,它是一种将一种编码转换为另一种编码的逻辑电路,在编码时,每一种二进制 都赋予了特...
EDA大作业
eda技术课程大作业。设计题目 双二选一多路选择器。学生姓名 王行智。学号 201002050002 专业班级 电气自动化技术一班。2012 年 5 月 26日。1.设计背景 在很多时候,要完成一项工作,需要进行两次判断和选择,对于机器和人都是如此,这就需要两个选择器,双2选1多路选择器就应运而生了...
EDA大作业
一 设计方案。1 设计一个汽车尾灯控制器,利用eda软件 max plusii 进行编译及 设计输入可采用vhdl硬件描述语言输入法和原理图输入法,通过 查看设计的可行性,因条件有限,只能进行简单的 实验。2 设计要求。1 汽车尾部左右两侧各有多盏指示灯。2 汽车正常行驶时指示灯都不亮。3 汽车右转...