资源描述
EDA技术及应用
2017年
课题报告
课题名称:最大值检测电路的设计
班级:
专业:
学号:
姓名:
联系方式:
2017年5月
一.课题介绍
最大值检测电路要求实现的是六输入的六位二进制数大小的比较,则在程序中用到六个数值的端口有36个。分别为a:a1,a2,a3,a4,a5,a6; b:b1,b2,b3,b4,b5,b6; c:c1,c2,c3,c4,c5,c6; d:d1,d2,d3,d4,d5,d6; e:e1,e2,e3,e4,e5,e6; f:f1,f2,f3,f4,f5,f6。
设计电路时可进行两两比较的方法进行比较,最终得到六个数中的最大值。因为数值比较为六位有符号数,所以比较数值大小的范围为-32~31。最高位为高电平时代表负数。
实现最大值检测电路的方法又很多,本次介绍两种。混合输入法和VHDL语言输入法。
二.课题内容
1.混合输入法
两个数比较的VHDL设计
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COMPARE IS
GENERIC(SIZE:INTEGER:=6);
PORT (DAT1,DAT2:IN STD_LOGIC_VECTOR(SIZE DOWNTO 1);
MAX:OUT STD_LOGIC_VECTOR(SIZE DOWNTO 1));
END ENTITY COMPARE;
ARCHITECTURE ART OF COMPARE IS
BEGIN
PROCESS(DAT1,DAT2)
BEGIN
IF(DAT1(SIZE-1 DOWNTO 1)>DAT2(SIZE-1 DOWNTO 1)) THEN
MAX<=DAT1;
ELSE MAX<=DAT2;
END IF;
END PROCESS;
END ARCHITECTURE ART;
原理图输入
仿真图
RTL图
Technology Map Viewer-Post-Mapping图
2.VHDL输入法
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;
USE IEEE.Std_Logic_Arith.ALL;
PACKAGE maximum_1 IS
FUNCTION max (x, y : Std_Logic_Vector) RETURN Std_Logic_Vector;
END maximum_1;
PACKAGE BODY maximum_1 IS
FUNCTION max (x, y : Std_Logic_Vector) RETURN Std_Logic_Vector IS
BEGIN
IF x < y THEN
RETURN y;
ELSE
RETURN x;
END IF;
END max;
END maximum_1;
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;
USE Work.maximum_1.ALL;
ENTITY maximum IS
PORT(a, b, c, d, e, f: IN std_logic_vector(5 DOWNTO 0);
max_out: OUT std_logic_vector(5 DOWNTO 0));
END maximum;
ARCHITECTURE comparative OF maximum IS
BEGIN
max_out <= max(max(max(a, b), max(c, d)),max(e, f));
END comparative;
仿真图
RTL图
Technology Map Viewer-Post-Mapping图
3. 课题小结
在本次设计课程的实践中,使我最EDA的设计认识加深了一层。更懂得了,在设计的过程中,要多加思考,寻找更加简单高效的完成方法。这种思考,往往可以将实际设计的工作量减少到最少状态。
展开阅读全文