FPGA八位加法器

                                                           
         
  FPGA 
(信息科学与工程学院)
实验名称:  流水线设计技巧设计加法器                   
        通信071                     
生姓名 喻明富  07437126       
2010 ~ 2010学年第 学期第 次试验
实验日期: 1030 指导教师: 刘威     
    绩:          审阅教师:       
信息科学与工程学院电子与信息技术实验中心
一、 实验目的
1、 理解流水线设计技巧的原理;
2、 通过比较普通加法器和流水线加法器的性能验证后者的优越性。
二、 实验要求
1、 用《EDA麻石脱硫除尘器技术》课程所学方法设计一个8位加法器;
2、 盆角齿用流水线技巧设计一个2级流水线的8位加法器;
3、 比较普通加法器和流水线加法器的性能。离心浓缩
三、 实验原理
1、 设计一个普通加法器,用8个一位加法器级联,组成行波进位式加法器;
1-1 行波进位式加法器
为了方便进行时间分析,需要在输入和输出端分别加上寄存器。
输入端(图1-2
1-2 输入端所加的寄存器
输出端(图1-3
1-3 输出端所加的寄存器led点阵书写显示屏
处理后可进行delay time分析、setup/hold time分析和频率分析。
2、 流水线设计方法
流水线设计就是将一个时延比较大的复杂的组合逻辑系统地分割,在各个部分(分级)之间插入寄存器以暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的耗时较小,各小操作能并行执行,所以数据可以像流水线一样轮流进入每一步小操作进行处理,这样整体地来看系统,数据可以更快地进入和流出系统,所以能提高数据吞吐率(提高处理速度)。这样的流水线的速率取决于每一步小操作所耗费的时间。由于采用同步寄存器分割组合逻辑,只要每个组合逻辑的时延小于寄存器的时钟周期,那么系统的频率取决于系统的时钟频率。
流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法来提高系统的工作频率。
例如,利用FPGA设计8位加法器时,考虑到:
1>FPGA每个逻辑单元规模小,一般为4输入LUT,如果加法器位数大于4bit,则会受到LUT容量限制。
2>FPGA触发器资源丰富,可以作为每一级流水的缓存。
由于操作数是不断加入输入端,因此每个加法的平均耗费时间是寄存器时钟的周期,即加法器速度取决于时钟的速度。
两级流水线的8位加法器系统结构为下图1-2
second
1-2 二级流水线的加法器结构
Cin为低位进位输入,inainb8bit的无符号数据,clk为系统时钟。第一级锁存器存储输入数据。第一级流水线进行inainb以及cin的低四位的加法运算,运算结果与高四位数据一并锁存至第二级锁存器。第二级流水线进行高四位的加法运算,并将数据锁存至第三级锁存器,第三级锁存器输出8bit的和sum及进位输出cout
四、 实验仪器
Pc机一台
GW48实验开发系统一台(芯片为EPF10K10LC84-4
安全监控
MAX+PLUSII软件系统一套
五、 实验内容
1、 设计一个行波进位的8位加法器,完成功能仿真和时序分析;
原理图设计:
进行setup/hold time时间分析,或进行频率分析。
2、 设计一个2级流水线的8位加法器,完成功能仿真和时序分析;
VHDL语言设计:
--File:add8b.vhd
--Designer:喻明富
--Module:Eight full adder
--Description:Eight full adder
-
-Simulator:MAX+plus2/Windows XP
--Synthesizer:MAX+plus2/Windows XP
--Date:2010.10.27
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.std_logic_arith.all;
USE IEEE.std_logic_unsigned.all;
ENTITY add8b IS
    PORT(
        clk:IN STD_LOGIC;
        cin: IN STD_LOGIC;
        a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
        s:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
        cout:OUT STD_LOGIC);
END;
ARCHITECTURE cheng OF add8b IS
SIGNAL adda1,adda2,addb1,addb2,reg1a,reg1b,add1,add2:STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL reg2:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL cin1:STD_LOGIC;
BEGIN
    PROCESS(clk)                     
BEGIN
    IF clk'EVENT AND clk='1' THEN
        adda1<='0'&a(3 DOWNTO 0);
        addb1<='0'&b(3 DOWNTO 0);
        adda2<='0'&a(7 DOWNTO 4);
        addb2<='0'&b(7 DOWNTO 4);
        cin1<=cin;
    END IF;
    END PROCESS;
   
    PROCESS(CLK)                     
    BEGIN滴胶卡制作
    IF clk'EVENT AND clk='1' THEN
        add1<=adda1+addb1+cin1;     
        reg1a<=adda2;               
        reg1b<=addb2;               
    END IF;
    END PROCESS;
   
    PROCESS(CLK)                     
    BEGIN
    IF clk'EVENT AND clk='1' THEN
        add2<=reg1a+reg1b+add1(4);     
        reg2<=add1(3 DOWNTO 0);
    END IF;
    END PROCESS;
        s<=add2(3 DOWNTO 0)®2(3 DOWNTO 0); 
        cout<=add2(4);                       
END cheng ;
进行setup/hold time时间分析,或进行频率分析。

本文发布于:2024-09-21 22:18:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/150457.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   流水线   系统   实验
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议