




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲加法器设计定点加法器设计进位链结构串行进位并行进位浮点加法器设计规格化浮点数运算的基本原理浮点加法器设计实现3.1定点加法器设计算术逻辑部件的核心单元是加法器。加法器是影响算术逻辑部件整体性能的关键部分。定点多位加法器是指能够实现多位二进制数相加运算的电路。A:1101B:1011111被加数加数低位进位00011和S进位C
0+3.1定点加法器设计---不考虑低位进位的一位加法器一位半加器半加器被加数A加数B和S进位C---考虑低位进位的一位加法器一位全加器:被加数加数和进位全加器低位进位3.1.1进位链结构
按形成进位的方式可以将多位加法器分为两类:串行进位加法器串行进位方式是将多个全加器的进位输出依次级联。并行进位加法器并行进位加法器设有专门的并行进位产生逻辑,运算速度较快。3.1.1进位链结构串行进位加法器每步操作只实现一位求和。采用一位加法器设计n位全加器,则需将n位二进制求和运算分解为n步操作实现,每位的进位作为下一步求和操作的进位输入。串行加法器所用元件很少,但速度太慢。3.1.1进位链结构并行进位加法器使用n个全加器一步实现n位相加,即n位数据同时求和。计算机的运算器基本上都采用并行加法器,所用全加器的个数与操作位数相同。并行加法器的运算速度不仅与全加器的速度有关,更取决于进位传递的速度。3.1.1进位链结构从本质上来讲,进位的产生是从低位开始,逐级向高位传递的。假定Cin为低位进位信号,则本位(第i位)产生的进位信号Cout为:3.1.1进位链结构Cout=Gi+PiCin是构成各种进位链结构的基本逻辑式。Gi=AiBi称为第i位的进位产生函数,或称为本位进位或绝对进位。若本位的两输入量均为1,必产生进位。这是不受进位传递影响的分量。
3.1.1进位链结构Pi称为进位传递函数,而PiCin则称为传送进位或条件进位。Pi的逻辑含义是:若本位的两个输入至少一个为1时,则当低位有进位传来时,本位将产生进位。3.1.2串行进位串行进位方式是指:逐级地形成各位进位,每一级进位直接依赖于上一级进位。设n位并行进位加法器的序号是第一位为最低位,第n位为最高位,则各进位信号的逻辑式如下:C1=G1+P1C0=A1B1+(A1B1)C0C2=G2+P2C2=A2B2+(A2B2)C1...Cn=Gn+PnCn=AnBn+(AnBn)Cn-13.1.2串行进位两个多位数相加时,只要将低位全加器的进位输出端接到高位全加器的进位输入端,就可以构成串行进位加法器。任一位的加法运算必须在低一位的加法运算完成之后才能进行。在各级全加器之间,进位信号采用串联结构,所用元件最少,逻辑电路比较简单,但运算时间比较长。3.1.2串行进位
串行进位加法器3.1.2串行进位可以通过使用1位全加器的串联行成多位串行进位加法器。要实现8位串行进位加法器,只需要首先1位全加器模块,然后在顶层模块中对该1位全加器实例化,通过串联的方式产生8位全加器的各位输出。3.1.2串行进位首先实现一个加法器模块3.1.2串行进位 实现8位全加器时,只要在顶层模块进行相应位的映射即可实现。3.1.3并行进位并行加法器又称为超前进位加法器。每位的进位只有加数和被加数决定,而与低位的进位无关,即在加法运算过程中各级进位信号同时送到各个全加器的进位输入端。3.1.3并行进位根据进位产生函数Gi=AiBi及进位传递函数,可得到如下逻辑式:C1=G1+P1C0C2=G2+P2G1+P2P1P0C3=G3+P3G2+P3P2G1+P3P2P1C0...Cn=Gn+PnGn-1+…+(Pn…P1)C03.1.3并行进位在并行进位结构中,各进位结构是独自形成的,并不直接依赖于前级。当加法器运算的有关输入(AiBiC0)稳定后,各级同时产生自己的Gi和Pi,也同时形成自己的进位信号Ci。3.1.3并行进位4位并行进位加法器的设计采用数据流方式进行描述。其中,P表示进位传递信号,如果P为0,就否决前一级的进位输入,G表示绝对进位信号,如果g为1,表示一定会向后一级产生进位输出。pp信号和gg信号用于多个超前进位模块之间的连接,例如利用4个4位超前进位加法器模块构成16位超前进位加法器。3.1.3并行进位3.2浮点加法器浮点数比定点数的表示范围宽,有效精度高,更适合于科学与工程计算的需要。浮点数由阶码E和尾数M组成,其数值为:(-1)Ms×M×BE3.2.1规格化浮点数加减运算
基本原理浮点数X=Mx·2Ex±
Y=My·2Ey(1)对阶(2)尾数进行加(减)运算(3)规格化(4)舍入处理对阶的原则:小阶对大阶。当调整阶码时,尾数应同步地移位,以保证浮点数的值不变。如果阶码以2为低,则每当阶码增1时,尾数应右移一位。
3.2.1规格化浮点数加减运算
基本原理规格化1)左规运算结果为11.1XXX或00.0XXX,尾数左移1位,阶码减1。2)右规运算结果为10.XXX或01.XXX,尾数右移1位,阶码加1。最多右移1次。3.2.1规格化浮点数加减运算
基本原理3.2.2浮点加法器的设计数据格式数据共32位,S(1b)为符号位,表示浮点数的正负,Exponent(8b)为阶码,Mantissa(23b)为尾数。阶码采用移码表示
[E]阶=E+128
尾数采用2的补码表示形式
[M]补=2+M,S(1b)Exponent(8b)Mantissa(23b)
符号位在最前面(S),最后的23位均为数值部分。本节设计的浮点加法器尾数采用补码表示,可以简化设计,而不必判断两数的绝对值大小关系。3.2.2浮点加法器的设计输入输出端口定义3.2.2浮点加法器的设计浮点加法器的工作流程3.2.2浮点加法器的设计
浮点加法器的工作流程可以用状态描述。设计7个状态(读者也可自行根据流程图定义状态机,状态数可以多余或少于7个),分别表示运算过程的各个步骤,各状态的含义如表所示。3.2.2浮点加法器的设计状态编码 执行的操作S0:4’0000 初始化S1:4’0001 检测操作数是否是零S2:4’0010 比较阶码并计算阶码的差值S3:4’0011 阶码小的尾数右移并修改阶码S4:4’0100 尾数求和S5:4’0101 判断结果是否溢出以及是否需要 规格化S6:4’0110对结果进行规格化3.2.2浮点加法器的设计浮点加法器的状态转换图3.2.2浮点加法器的设计第四讲乘除法器设计常用的机器编码格式定点乘法器的原理及实现原码一位乘法设计补码一位乘法设计阵列乘法器设计定点除法器原理及实现原码除法器设计补码除法器设计阵列除法器设计4.1常用机器数的编码格式
原码表示法反码表示法补码表示法4.1常用机器数的编码格式4.1.1原码表示法原码表示法是一种最简单的机器数表示法,其最高位为符号位,符号位为0时表示该数为正,符号位为1时表示该数为负,数值部分与真值相同。原码形式为XS.X1X2…Xn,其中XS表示符号位。纯小数原码的定义为:
[X]原=纯整数原码的定义为:
[X]原=
X0≤X<11-X=1+∣X∣-1<X≤0
X,0≤X<2n2n-X=2n+∣X∣,-2n<X≤04.1常用机器数的编码格式原码的优点是直观易懂,机器数和真值间的转换很容易,用原码实现乘、除运算的规则简单。缺点是加、减运算规则较复杂。4.1常用机器数的编码格式4.1.2反码表示法反码是对一个数的各位求反。正数的反码和原码的形式相同;负数的反码是符号位为1,数值部分等于其各位的绝对值求反。4.1常用机器数的编码格式4.1.3补码表示法补码的符号位表示方法与原码相同(即正数为0,负数为1),其数值部分的表示与数的正负有关:正数:数值部分与真值形式相同;负数:将真值的数值部分按位取反,且在最低位加1。4.1常用机器数的编码格式补码形式为XS.X1X2…Xn,其中XS表示符号位。纯小数补码的定义为:
[X]补=纯整数补码的定义为:
[X]补=
在补码表示中,真值0的表示形式是唯一的:
X,0≤X<12+X=2-∣X∣,-1<X≤0X,0≤X<2n2n+1+X=2n+1-∣X∣,-2n<X≤0[+0]补=[-0]补=000004.2定点乘法器的原理及实现乘法运算是计算机中一种重要的基本运算,实现方法包括以下几种。(1)用软件实现乘法运算。(2)在加法器基础上增加一些硬件实现乘法运算。(3)设置专用硬件乘法器实现乘法运算。使用该方法会使计算机结构复杂,成本增加,但能使运算速度大大提高。4.2定点乘法器的原理及实现乘法运算是计算机中一种重要的基本运算,实现方法包括以下几种。(1)用软件实现乘法运算。(2)在加法器基础上增加一些硬件实现乘法运算。(3)设置专用硬件乘法器实现乘法运算。使用该方法会使计算机结构复杂,成本增加,但能使运算速度大大提高。4.2定点乘法器的原理及实现原码一位乘法设计原码二位乘法设计补码一位乘法设计阵列乘法器设计设计方法模块功能与原理分析模块结构与电路模型VHDL语言设计实现FPGA验证4.2.1原码一位乘法原理及实现原码一位乘法的法则是:①乘积的符号为被乘数的符号位与乘数的符号位相异或;②乘积的绝对值为被乘数的绝对值与乘数的绝对值之积。即
[X]原×[Y]原=(X0⊕Y0)(|X|×|Y|)
4.2.1原码一位乘法原理及实现手工乘法运算例:若[X]原=0.1101,[Y]原=1.1011,求两者之积。解:乘积的符号为0⊕1=1手算过程如下:
1101
×1011110111010000
1101.100011114.2.1原码一位乘法原理及实现A,B,C,D都是寄存器二选一选择器一位全加器移位寄存器计数器4.2.1原码一位乘法原理及实现原码一位乘法器框图原码一位乘法器功能模块(1)控制器设计控制器功能:控制移位寄存器和16位寄存器。端口定义:PORT(CLK,START:INSTD_LOGIC;CLKOUT,RSTALL,DONE:OUTSTD_LOGIC);(1)控制器设计输入端口CLK:乘法时钟信号START:乘法器启动信号。信号的上跳沿及其高电平有两个功能,即16位寄存器清零和被乘数A[7..0]向移位寄存器加载;低电平则作为乘法使能信号。输出端口CLKOUT:时钟控制端RSTALL:清零端口DONE:乘法完成标志位(1)控制器设计计数器端口输出控制信号(2)16位锁存器设计16位锁存器功能:存储部分积及部分积移位端口定义
PORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(8DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(15DOWNTO0));(2)16位锁存器设计移位及锁存功能(3)移位寄存器移位寄存器功能是右移一位操作。端口定义
PORT( CLK:INSTD_LOGIC; LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);QB:OUTSTD_LOGIC);(3)移位寄存器设计移位功能(4)1位乘法器设计1位乘法器功能:当前数据位与另外一个操作数进行与运算。1位乘法运算(5)加法器设计8位并行加法器设计(6)仿真结果4.2.2原码二位乘法器设计原码二位乘法
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1原码二位乘法的法则表4.2.2原码二位乘法器设计例:设X=+0.100111,
Y=-0.100111,利用原码求积。
4.2.2原码二位乘法器设计
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=Yi=C4.2.2原码二位乘法器设计
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=0&&Yi⊕C=14.2.2原码二位乘法器设计
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1⊕Yi=1&&Yi=C4.2.2原码二位乘法器设计
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=1&&Yi⊕C=14.2.2原码二位乘法器设计4.2.3补码一位乘法运算布斯(Booth)法
假定被乘数X和乘数Y均为用补码表示的纯小数,其中X0、Y0是它们的符号位:[X]补=X0.X-1X-2…X-(n-1)
[Y]补=Y0.Y-1Y-2…Y-(n-1)布斯法补码一位乘法的算法公式为:[X·Y]补=[X]补[(Y-1-Y0)20+(Y-2-Y-1)2-1+(Y-3-Y-2)2-2+……+(Y-(n-1)-Y-(n-2))2-(n-2)+(0-Y-(n-1))2-(n-1)]4.2.3布斯补码一位乘法运算
YiYi-1
Yi-1-Yi操作
00
0+0,右移一次
01
1+[X]补,右移一次
10-1+[-X]补,右移一次
11
0+0,右移一次乘数的相邻两位的操作规律
4.2.3布斯补码一位乘法运算例:已知X=0.1010,Y=-0.1101。利用布斯法补码一位乘法求积。解:首先将两数用补码表示:[X]补=00.1010,[Y]补=11.0011,而[-X]补=11.0110。4.2.3布斯补码一位乘法运算4.2.3布斯补码一位乘法运算A,B,C,D都是寄存器四选一选择器加法器移位寄存器计数器符号位参与运算4.2.3布斯补码一位乘法运算4.2.4阵列乘法器设计设X=X3X2X1X0,Y=Y3Y2Y1Y0,计算X·Y=?
(1)基本乘加单元二输入与门一位全加器(2)定点无符号数阵列乘法器Y0Y0Y2Y3Y1Y2Y1Y3X3X2X1X00000Z6Z7Z5Z4Z2Z3Z0Z1(2)定点无符号数阵列乘法器TOP_ROWMID_ROWLOW_ROW(3)TOP_ROW功能实现(4)MID_ROW功能实现(5)LOW_ROW功能实现(6)阵列乘法器结构描述实现4.3定点数除法运算定点数除法分为原码除法和补码除法两类。除法实现方法①双操作数加法器将除法分为若干次“加减与移位”的循环,由时序控制部分实现;②采用迭代除法,将除法转换为乘法处理,可以利用快速乘法器实现除法器;③阵列除法器,一次求得商与余数,实现快速除法的基本途径。4.3.1原码除法运算原码除法的法则应包括:①除数≠0;定点纯小数时,|被除数|<|除数|;定点纯整数时,|被除数|>|除数|。②与原码乘法类似的是原码除法商的符号和商的值也是分别处理的,商的符号等于被除数的符号与除数的符号相异或。③商的值等于被除数的绝对值除以除数的绝对值。④将商的符号与商的值拼接在一起就得到原码除法的商。4.3.2定点除法器的原理及实现恢复余数法:先减后判,如果减后发现不够减,则上商0,并加上除数,即恢复到减操作之前的余数(第一步的余数即被除数)。其缺点是即增加了一些不必要的操作,又使操作步数随着不够减情况发生的次数而变。4.3.2定点除法器的原理及实现不恢复余数除法(加减交替除法)先减后判,如果发现不够减,则上商0,并将下一步的减除数操作改为加除数操作。这样可使操作步数固定,只与所需商的位数有关,而与是否够减无关,因此能减少运算时间。4.3.3原码加减交替除法器原码加减交替除法器的运算法则:1.除法运算前,应满足条件:X*<Y*,且Y*≠0,否则,按溢出或非法除数处理;2.符号位不参与运算,单独处理:qf=xfyf;3.部分余数采用单符号位或双符号位;4.每步部分余数运算规则:
①若余数R≥0,则商上1,左移一次,减除数;②若余数R<0,则商上0,左移一次,加除数。4.3.3原码加减交替除法器例:若X=-0.10001011,Y=0.1110试利用原码加减交替除法器求商及余数。解:写出[X]原=1.10001011,[Y]原=0.1110。商符=1⊕0=1;4.3.3原码加减交替除法器左移4.3.4补码除法运算①符号判断。被除数和除数同号,被除数减除数;若异号则加除数。②余数与除数同号,上商为1,余数左移1位,下次用余数减除数操作求商。若异号,上商为0,余数左移1位,下次用余数加除数操作求商。③重复②直至除尽或达到精度要求。④商修正。在除不尽时,最低位恒置1修正。4.3.4补码除法运算YNNY4.3.4补码除法运算例:若X=-0.10001011,Y=0.1110试利用补码除法求商及余数。解:写出[X]补=1.01110101,[Y]补=0.1110。[-Y]补=1.0010
〔商〕补﹦1.01101;余数为:〔余数〕补﹦1.0011×2-44.3.4补码除法运算补码除法器框图
4.3.4补码除法设计端口定义port( oper_a,oper_b: instd_logic_vector(7downto0);--被除数,除数,最高位为符号位
done:outstd_logic;--完成除法操作标志
clk,rst:instd_logic;--时钟信号/复位信号 Q,R: outstd_logic_vector(7downto0)--商Q最高位为符号位,余数R );4.3.4补码除法设计复位赋初值判断余数与除数符号是否相同运算结束4.3.5阵列除法器00y1
x1y2
x2y3
x3
r3r4r5r6x4x5x6q110q2q3CASCASCASCAS异或门全加器PxiCiyiCi+1可控加减法器CASSi4.3.5阵列除法器(1)可控加/减法单元(CAS—ControllableAdderSubtracter)
当P=0时,做加法;当P=1时,做减法,变+Y*为+[-Y*]补。异或门全加器PxiCiyiCi+1Si4.3.5阵列除法器(2)阵列除法算法流程
设被除数X=0.x1x2x3x4x5x6
除数
Y=0.y1y2y3
则
商
Q=0.q1q2q3
余数
R=0.00r3r4r5r64.3.6阵列除法过程第一步:试减,即P=1,实现X
+[-Y]补。因为X*<Y*,所以一定不够减,则最高位进位Ci+1=0,可利用此进位输出产生商和下一步的P。第二步:P=0,做X
+Y
。当最高位进位Ci+1
=1时,表示够减,则q1=1,P=1;当最高位进位Ci+1
=0时,表示不够减,则q1=0,P=0。第三步和第四步:P=0时,做X
+Y;P=1时,做X
+[-Y]补。上商和P值产生的规则与第二步相同。4.3.7阵列除法器设计根据原理说明采用VHDL进行功能设计。参考阵列乘法器设计方法进行设计。第五讲存储器设计5.1随机存取存储器(RAM)设计5.2只读存储器(ROM)设计5.3双端口RAM设计5.4先进先出(FIFO)设计5.5CRC校验电路设计存储器分类双端口存储器先进先出(FIFO)存储器铁电存储器半导体存储器RAMROM其他存储器双极型金属氧化物(MOS)静态:SRAM动态:DRAM掩模工艺ROM可一次编程ROM:PROM可擦写的PROMEPROM
E2PROME2PROMFlashSDRAMDDRSDRAMDDR2SDRAMDDR3SDRAM存储器分类双端口存储器先进先出(FIFO)存储器铁电存储器半导体存储器RAMROM其他存储器双极型金属氧化物(MOS)静态:SRAM动态:DRAM掩模工艺ROM可一次编程ROM:PROM可擦写的PROMEPROM
E2PROME2PROMFlash设计方法模块功能与原理分析模块结构与电路模型VHDL语言设计实现FPGA验证5.1静态随机存储器SRAM设计数据存储功能地址控制功能写入与读出功能数据总线地址总线控制信号5.1.1RAM地址译码方式一维译码二维译码RAM芯片有n条地址线,表示2n个存储单元。
104存储容量8K×8bitA12~A0D0~D7CS1、CS2OEWE5.1.2SRAM6264芯片决定存储单元的容量,一般1K~256M→地址总线数:10~28决定存储单元的宽度(位数,bit)片选→地址译码输出允许(读)写允许105(1)SRAM读出时序加载地址信号加载片选信号OE低电平有效,WE为高电平106(2)SRAM写入时序加载地址信号数据加载到总线,WE为低电平片选信号有效(3)SRAM的VHDL程序实现端口定义
PORT(address:INSTD_LOGIC_VECTOR(3DOWNTO0); cs,oe,we:INSTD_LOGIC; data:INOUTSTD_LOGIC_VECTOR(7DOWNTO0));(4)SRAM的VHDL程序实现写入数据读出数据总线三态5.1.3RAM容量扩展存储器与CPU连接——位扩展法
5.1.4随机读写存储器RAM存储器与CPU连接——字扩展法
5.2只读存储器ROM的设计只读存储器(ROM)的内容是初始设计电路时就写入到内部的,通常用于存储固件。ROM主要用于计算机基本输入输出系统(BIOS)的存储和用作嵌入式系统中的程序存储器。ROM只需设置数据输出端口和地址输入端口。
5.2.1只读存储器ROM的电路结构存储矩阵地址译码器输出缓冲器5.2.2简单ROM的设计设计思想:采用二进制译码器的设计方式,将每个输入组态对应的输出与一组存储数据对应起来。
5.2.3通用ROM的VHDL设计设计一个容量为256*8bit的ROM8位地址线Addr[7..0]8位数据输出线Dout[7…0]使能信号线OE5.2.3通用ROM的VHDL设计VHDL数据对象--文件类型应用端口定义5.2.4通用ROM的VHDL设计结构体实现5.2.5通用ROM验证5.3双端口RAM双端口RAM是在1个SRAM存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对其进行随机性访问的存储器(共享式多端口存储器)。双口RAM最大的特点是存储数据共享,并且必须具有访问仲裁控制。5.3双端口RAM通用集成电路组成的双端口若两个CPU在同一时间段访问RAM发生竞争,则由仲裁电路迫使后访问的CPU处于等待状态。特点:成本低、简单且存储容量大。缺点:发生竞争,一个CPU必须等待,降低了访问效率。5.3双端口RAM专用双端口RAM芯片,如IDT7132/7142、DS1609、CY7C08D53、CY7C024等。芯片有两套完全独立的数据线、地址线和读写控制线,可使两个CPU分时独立访问其内部RAM资源。优点是通讯速度快,实时性强,接口比较简单,两边CPU都可主动进行数据传输。缺点是成本高,需要克服竞争现象。5.3双端口RAM双端口RAM内有一个总线抢占优先级比较器5.3.1两种方案应用场合在要求存储量较大时,一般采用通用集成电路组成的双端口RAM;在通信实时性要求较高的而通信数据量不大时,一般采用专用双端口RAM芯片。
5.3.2双端口RAM设计端口定义5.3.2双端口RAM设计结构体设计RAM数据类型定义端口A对RAM操作端口B对RAM操作5.4先进先出(FIFO)设计要求:存入数据按顺序排放,存储器全满时给出信号并拒绝继续存入,全空时也给出信号并拒绝读出;读出时按先进先出原则;存储数据一旦读出就从存储器中消失。
5.4先进先出(FIFO)设计先进先出(FirstInFirstOut,FIFO)与普通存储器的区别是没有外部读写地址线,其数据地址由内部读写指针自动加减1完成。FIFO通常利用双口RAM和读写地址产生模块来实现其功能。
5.4先进先出(FIFO)设计先进先出(FirstInFirstOut,FIFO)与普通存储器的区别是没有外部读写地址线,其数据地址由内部读写指针自动加减1完成。FIFO通常利用双口RAM和读写地址产生模块来实现其功能。
满标志空标志
5.4.1FIFO类型同步控制的FIFO
FIFO的读写时钟相同。异步控制的FIFO用于跨时钟域的数据交换;FIFO的读写时钟不同;读写时钟之间不一定存在相位、周期方面的约束关系。同步FIFO设计5.4.2同步FIFO设计FIFO为空,不可从FIFO读数据,但可写;FIFO为满,不可向FIFO写数据,但可读;非空非满时,FIFO可读、可写。FIFO的读写受同一时钟控制;FIFO的大小为N。5.4.2同步FIFO设计问题:如何判断FIFO为空、满?FIFO的读写操作的位置如何判定?5.4.2同步FIFO设计5.4.2同步FIFO设计当wr_ptr=rd_ptr时,FIFO数据为空;当wr_ptr-rd_ptr=M-l或rd_ptr-wr_ptr=l时,FIFO数据为满;当wr_ptr>=rd_ptr时,wr_ptr-rd_ptr为FIFO内数据个数;当wr_ptr<=rd_ptr时,M-(rd_ptr-wr_ptr)为FIFO内数据个数。5.4.3同步FIFO的VHDL实现(1)双端口RAM端口定义5.4.3同步FIFO的VHDL实现(1)双端口RAM结构体实现5.4.3同步FIFO的VHDL实现(2)写地址计数器5.4.3同步FIFO的VHDL实现5.4.3同步FIFO的VHDL实现(4)空满状态产生器端口定义5.4.3同步FIFO的VHDL实现(4)空满状态产生器结构体实现5.4.4异步FIFO设计读写时钟信号不相同通过地址编码方式解决读写地址变化不同步而引起的空满标志错误的问题。5.4.6存储器设计总结存储单元数据结构整数数组TYPEmemoryISARRAY(INTEGERRANEG<>)OFINTEGER;位矢量SUBTYPEwordISSTD_LOGIC_VECTOR(k-1DOWNTO0);TYPEmemoryISARRAY(0TO2**w-1)OFword;5.4.6存储器设计总结存储单元初始化(外部文件读取)自定义数据格式文件.COE文件
(1)自定义数据格式文件VHDL文本输入输出包集合(TEXTIO)VHDL语言对文件格式不作任何限制。TEXTIO按行进行处理,一行为一个字符串,以回车、换行符作为行结束符。(2).COE文件MEMORY_INITIALIZATION_RADIX=2;MEMORY_INITIALIZATION_VECTOR=
01110100,
00100000,
11110101,
10000000,
01111000,
00100010,
00000001,
00010100,
数据格式,当前设定为2进制,还可以为8,10,16进制(3)XilinxFPGA内部IP核设计FPGA具有内嵌的BLOCKRAM(BRAM)来扩展其应用范围和系统集成能力(SOC)。BRAM可用于配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。BRAM内部每个单位即单片块RAM大小为18Kbit(即位宽为18bit深度为1024,Spartan-3EFPGA)。(4)FPGA内部IP核设计(4)FPGA内部IP核设计5.5CRC校验电路设计CRC原理分析CRC电路设计数据通信差错检测在数字通信系统中可靠与快速往往是矛盾的。如何合理地解决可靠与速度这一对矛盾呢?
可靠性快速性可靠性快速性数据检测技术奇偶校验和校验循环冗余码校验CRC奇偶校验只需要1位校验码,对消息位进行异或运算。和校验把消息当成若干个8位(或16、32位)的整数序列,相加得到校验码。5.5.1CRC原理将待发送的位串看成系数为0或1的多项式;收发双方约定一个生成多项式G(x)(其最高阶和最低阶系数必须为1)。发送方用位串及G(x)进行某种运算得到校验和,并在帧的末尾加上校验和,使带校验和的帧的多项式能被G(x)整除。接收方收到后,用G(x)除多项式,若有余数,则传输有错。(1)CRC校验和计算方法1.若生成多项式G(x)为r阶(即r+1位位串),原帧为m位,其多项式为M(x),则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- pte考点申请流程
- 2024理工英语4形考
- 涂料绿色施工方案
- 旅游企业文化
- 小学信息技术上册 第14课 复制与粘贴教学设计 苏科版
- 2024六年级英语上册 Unit 1 Li Ming Goes to Canada Lesson 6 Baby Becky at Home教学设计 冀教版(三起)
- 第八单元《稍复杂的排列问题》(教学设计)-2024-2025学年三年级下册数学人教版
- 江苏省淮安市洪泽区校联考2024-2025学年九年级下学期3月月考语文试题(原卷版+解析版)
- 八年级政治上册 7.2 礼仪展风采教学设计1 新人教版
- 9 古诗三首 闻官军收河南河北(教学设计)-2023-2024学年统编版语文五年级下册
- 楼梯踏步抹灰标准合同7篇
- 【厦门大学】DeepSeek大模型赋能高校教学和科研
- 西安房屋租赁合同(官方版)6篇
- 巧手包出小混沌(课件)三年级下册劳动人民版
- 2025-2030中国IC卡读写器行业市场现状分析及竞争格局与投资发展研究报告
- 2024-2025学年人教版初中地理七年级下册课件 第8章 第4节 俄罗斯
- 2025年南京秦淮区一中七年级下3月份月考英语试卷
- 2025届高三化学二轮复习 化学工艺流程 课件
- 2024广东深圳市龙岗区产服集团“春雨”第二批招聘笔试笔试参考题库附带答案详解
- PLC应用技术课件 任务7. S7-1200 PLC控制电动机星三角启动(定时器)
- 《清华大学介绍》课件
评论
0/150
提交评论