中国高校课件下载中心 》 教学资源 》 大学文库

《数字电路与逻辑设计》课程实验指导(可编程逻辑实验)实验十二 移位相加8位乘法器电路设计

文档信息
资源类别:文库
文档格式:DOC
文档页数:3
文件大小:18.5KB
团购合买:点击进入团购
内容简介
《数字电路与逻辑设计》课程实验指导(可编程逻辑实验)实验十二 移位相加8位乘法器电路设计
刷新页面文档预览

实验十二移位相加8位乘法器电路设计 1.实验目的 学习应用移位相加原理设计8位乘法器。 2.实验原理 该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是:乘法 通过逐项移位相加原理实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和 相加:若为0,左移后以全0相加,直至被乘数的最高位。从图12.1的逻辑图及其乘法操 作时序图如图12-2(本例中的相乘数为9FH和FDH)上可以看出此乘法器的工作原理。图 12-1中,START信号的上 升沿及其高电平有两个功能 即16位寄存器清零和被乘数 AN7.0 向移位寄存器SREG8B加载:它的低电平则作为乘法使能信号。CLK为乘法时钟信号。当 被乘数加载于8位右移寄存器SREG8B后,随若每一时钟节拍,最低位在前,由低位至高 位逐位移出。当为1时,1位乘法器andarith打开,8位乘数B7.0在同一脉冲进入8位加 法器,与上一次锁存在16位锁存器g160中的高8位进行相加,其和在下一时钟脉冲的上 升沿被锁进此锁存器。被乘数的移出位为0时,与门全零输出。如此往复,直至8个时钟歌 冲后,最后乘积完整出现在rgl6b端口。 例18位右移寄存器的设计 源程序: Library ieee Use ieee.std_logic_1164.all; Entity sreg8b is Port(clk,ld:in std_logic; d:in std logic vector(7 downto 0): q:out std logic). End; Architecture behav of sreg8b is Signal reg8:std logie vector(7 downto 0): Begin Process(clk.Id) Begin If ld='l'then Reg8<=d; Elsif(clk'event and clk=1)then Reg8(6 downto0)<=reg8(7 downto 1): end if, end process, q<=reg8(0) End 例28位加法器的设计 源程序 Library ieee;

实验十二 移位相加 8 位乘法器电路设计 1.实验目的 学习应用移位相加原理设计 8 位乘法器。 2.实验原理 该乘法器是由 8 位加法器构成的以时序方式设计的 8 位乘法器。其乘法原理是:乘法 通过逐项移位相加原理实现,从被乘数的最低位开始,若为 1,则乘数左移后与上一次的和 相加;若为 0,左移后以全 0 相加,直至被乘数的最高位。从图 12-1 的逻辑图及其乘法操 作时序图如图 12-2(本例中的相乘数为 9FH 和 FDH)上可以看出此乘法器的工作原理。图 12-1 中,START 信号的上升沿及其高电平有两个功能,即 16 位寄存器清零和被乘数 A[7.0] 向移位寄存器 SREG8B 加载;它的低电平则作为乘法使能信号。CLK 为乘法时钟信号。当 被乘数加载于 8 位右移寄存器 SREG8B 后 ,随着每一时钟节拍,最低位在前,由低位至高 位逐位移出。当为 1 时,1 位乘法器 andarith 打开,8 位乘数 B[7.0]在同一脉冲进入 8 位加 法器,与上一次锁存在 16 位锁存器 reg16b 中的高 8 位进行相加,其和在下一时钟脉冲的上 升沿被锁进此锁存器。被乘数的移出位为 0 时,与门全零输出。如此往复,直至 8 个时钟脉 冲后,最后乘积完整出现在 reg16b 端口。 例 1 8 位右移寄存器的设计 源程序: Library ieee; Use ieee.std_logic_1164.all; Entity sreg8b is Port(clk,ld:in std_logic; d:in std_logic_vector(7 downto 0); q:out std_logic); End; Architecture behav of sreg8b is Signal reg8: std_logic_vector(7 downto 0); Begin Process(clk,ld) Begin If ld='1' then Reg8<=d; Elsif ( clk'event and clk='1') then Reg8(6 downto 0) <= reg8 (7 downto 1); end if; end process; q<=reg8(0); End; 例 2 8 位加法器的设计 源程序: Library ieee;

Use ieee.std logic 1164.all: logic_unsigned all: Entity adder8b is Port(a,b:in std_logic_vector(7 downto 0): sout std logic vector(7 downto 0)): End: Architecture behav of adder8b is Begin S<=0'&a+b End 例31位乘法器的设计 源程序: Library ieee. Use ieee.std_logic_1164.all; Entity andarith is Port(abin:ns_logic din:in std_logic_vector(7 downto 0): dout:out std_logic_vector(7 downto 0)), End; Architecture behav of andarith is Begin Process(abin,din) Begin For I in 0 to 7 loop Dout(i)<=din(i)and abin End loop. end process; End: 例416位锁存器右移寄存器的设计 源程序: Library icce Use ieee.std_logic_1164.all: Entity reg16b is Port(clk.clrinstd_logic. d:in std logie_vector(downto 0). out std logic_vector(15 downto )) End; Architecture behav of reg16b is

Use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; Entity adder8b is Port( a,b:in std_logic_vector(7 downto 0); s:out std_logic_vector(7 downto 0)); End; Architecture behav of adder8b is Begin S<=’0’ & a + b; End; 例 3 1 位乘法器的设计 源程序: Library ieee; Use ieee.std_logic_1164.all; Entity andarith is Port(abin:in std_logic; din:in std_logic_vector(7 downto 0); dout:out std_logic_vector(7 downto 0)); End; Architecture behav of andarith is Begin Process(abin,din) Begin For I in 0 to 7 loop Dout(i) <=din(i) and abin; End loop; end process; End; 例 4 16 位锁存器/右移寄存器的设计 源程序: Library ieee; Use ieee.std_logic_1164.all; Entity reg16b is Port(clk,clr:in std_logic; d:in std_logic_vector(8 downto 0); q:out std_logic_vector(15 downto 0)); End; Architecture behav of reg16b is

Signal r16s:std_logic_vector(15 downto 0). Begin rocess(clk,clr) Begin If clr='l'then R16s<=(others=0) Elsif(clkevent and clk=1)ther R16s(6 downto 0)<=r16s(7 downto 1): R16s(15 downto 7)<=d: end if. end process: 9r16s End, 3.实验内容 3.1根据给出的乘法器逻辑原理图及其各模块的VHDL描述,在MAX+-plusII上完成 全部设计,包括编译、综合和仿真操作等。以8乘以F5H为例,进行仿真,对仿真波形 作出详细解释,包括对8个工作时钟脉冲中,每一个脉冲乘法操作的方式和结果,对照波形 给以详细说明 3.2编程下载,进行实验验证。 4.注意事项 电路工作之前应进行初始化。 5.预习要求 (1)完成实验内容。的电路设计任务 (2)预习移位寄存器、加法器、锁存器工作原理。 6.实验报告 (1)详细分析以上各个模块的逻辑功能,以及他们的工作原理。 (2)写出以上程序分析报告、仿真波形图及其分析报告、硬件测试和实验过程报告

Signal r16s: std_logic_vector(15 downto 0); Begin Process(clk,clr) Begin If clr='1' then R16s’0’); Elsif ( clk'event and clk='1') then R16s(6 downto 0) <= r16s (7 downto 1); R16s(15 downto 7) <=d; end if; end process; q<=r16s; End; 3.实验内容 3.1 根据给出的乘法器逻辑原理图及其各模块的 VHDL 描述,在 MAX+plusII 上完成 全部设计,包括编译、综合和仿真操作等。以 87H 乘以 F5H 为例,进行仿真,对仿真波形 作出详细解释,包括对 8 个工作时钟脉冲中,每一个脉冲乘法操作的方式和结果,对照波形 给以详细说明。 3.2 编程下载,进行实验验证。 4.注意事项 电路工作之前应进行初始化。 5.预习要求 (1)完成实验内容。的电路设计任务。 (2)预习移位寄存器、加法器、锁存器工作原理。 6.实验报告 (1)详细分析以上各个模块的逻辑功能,以及他们的工作原理。 (2)写出以上程序分析报告、仿真波形图及其分析报告、硬件测试和实验过程报告

已到末页,全文结束
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档