数字电路课程设计
题目乘法器设计
班级实验二班
学号
姓名
时间第十三、十四周
地点科A-304
指导陈学英唐青
【摘要】:用FPGA设计完成基于半加器、全加器和保留进位思想设计的4BIT四级流水乘法器,用modelsim仿真其结果。
【目录】:
第一章、实验任务及原理
第二章、设计思路方法及方案
第三章、FPGA模块程序设计与仿真
第四章、结束语
【正文】启功书法作品真迹
【第一章】:实验任务及原理
本实验只要求编写乘法器的硬件代码,并用Modelsim进行仿真测
试。设计乘法器,两个输入都是4BIT,对所有输入相乘都得到正
确结果,乘法器采用四级流水设计,以增加处理速度。用modelsim
仿真时,要求用时钟上升沿方式遍历所有输入,检查输出结果是否
正确。原理用到流水,进位保留思想。
【第二章】:设计思路及方案
虾尾的家常做法
算法结构(无符号)
如何证明面面垂直
由上图可见,乘法的运算最终是加法的运算,两个4BIT输入,输出为7BIT。模块一、半加器:单比特输入相加,
模块二、全加器:由两个半加器组成,有一个进位输入,
模块三、进位保留加法器:
最终程序结构图
韩国人为什么叫棒子流水设计的原理:在前向割集上加入四级流水
图一
图二
徒劳的意思
如上图所示方框代表触发器,五边形代表组合逻辑块,假设图一中逻辑块输入输出延时为Ta,图二将逻辑块切割成两块,延时分别为T1,T2,且Ta=T1+T2,
并在两逻辑块之间加触发器,两个逻辑块工作频率都可以达到clk频率,故工作速度增加一倍,虽然时延增加了,但资源优化了许多。
【第三章】:FPGA程序模块及仿真
半加器的程序模块:潘小梅
entity half_adder is
port(a,b:in std_logic;
s,cout:out std_logic);
end half_adder;
architecture Behavioral of half_adder is
begin
s<=a xor b;
cout<=a and b;
end Behavioral;
全加器的程序模块:调用半加器,采用顶层设计
entity full_adder is
port(a,b,cin:in std_logic;
s,cout:out std_logic);
end full_adder;
architecture Behavioral of full_adder is
component half_adder
port(a,b:in std_logic;
cout,s:out std_logic);
end component;
中唐四杰signal h1s,h1cout,h2cout:std_logic;
begin
u1:half_adder port map(a,b,h1cout,h1s);
u2:half_adder port map(cin,h1s,h2cout,s);
cout<=h1cout or h2cout;
end Behavioral;
关于青春的古诗
乘法器的程序模块:
library IEEE;
u IEEE.STD_LOGIC_1164.ALL;
u IEEE.STD_LOGIC_ARITH.ALL;
u IEEE.STD_LOGIC_UNSIGNED.ALL;
----Uncomment the following library declaration if instantiating
----any Xilinx primitives in this code.
--library UNISIM;
--u UNISIM.VComponents.all;