logo资料库

先进先出(84位)FIFO存储器设计课设及源码.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
课程设计报告 《计算机组成与系统结构》 题 目: 8*4 位先进先出(FIFO)存储器设计 学生姓名: 专 班 学 业: 级: 号: 指导教师: 2014.1.4
目 录 1.课程设计目的………………………………………………………01 2.课程设计设备………………………………………………………01 3.课程设计原理………………………………………………………01 (1)顶层原理图………………………………………………………01 (2)各信号的功能为…………………………………………………01 (3)内部逻辑图………………………………………………………02 4.设计操作步骤………………………………………………………03 5.设计主要代码………………………………………………………04 6.设计结果 ……………………………………………………………09 7.心得体会 ……………………………………………………………09 8.参考文献 ……………………………………………………………10
8*4 位先进先出(FIFO)存储器设计 FIFO 简介: FIFO 是英文 First In First Out 的缩写,是一种先进先出的 数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使 用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加 1 完成,不能像普通存储器那样可 以由地址线决定读取或写入某个指定的地址。 一.课程设计目的 了解及掌握先进先出(FIFO)存储器的工作特性及其读写方法。 二.课程设计设备 1.TDN-CM+或 TDN-CM++教学实验系统一台。 2.PC 微机一台。 三.课程设计原理 1.顶层原理图: 此为 8*4 的 FIFO,在顶层原理图,有三个模块:控制信号模块、 寄存器模块、数据选择器模块都用 ABEL 语言设计。 2.各信号的功能为: EMPTY :FIFO 存储器为空标志,高电平有效。 1
FULL :FIFO 存储器满标志,高电平有效。 RST :清 FIFO 存储器为空。 FIFOWR :FIFO 存储器写入信号,低电平有效。 FIFORD :FIFO 存储器读信号,低电平有效。 ID0~ID7 :FIFO 存储器输入数据线。 OD0~OD7 :FIFO 存储器读出数据线。 各信号后的括号内的数字为本设计在 CPLD 中定义的相应的管脚号。 3.内部逻辑图: 2
四.设计操作步骤 1.编写 cpld 芯片设计程序,按照上述功能要求及管脚说明,进行 芯片设计。 2.编译所设计的程序 3.实验连线图接线。 4.具体操作步骤 接线图中 OO1、OO2、OOE1、OOE2、OOEE1、OOEE2 是六个观察记 数的指示灯,其中 OO1、OO2 是写信号记数,OOE1、OOE2 是读信号 记数,OOEE1、OOEE2 是 FIFO 中的 数据个数。FULL 及 EMPTYy 是 满和空标志灯。 实验时,将 SWITCH UNIT 单元中的 SW-B 开关置为 “0”,然后拨 动系 统右下 脚的 CLR 清零 开关使 读、写 信号记 数清 零。给 INPUT 3
DEVICE 单元中置一个数,按动 START,此时将该数写入到 FIFO 中,依 次写四次后,FULL 满标志置位。此时再也写不进去;然后连续按动 KK2- 读信号,将顺序读出所存的四个数,数据总线显示灯及 OUTPUT UNIT 单元中的数码管显示所读出的数据。四个数全部读出后,EMPTYy 空标志 置位。检查执行结果是否与理论值一致。 设计接线图如下: 五.设计主要代码 4
MODULE FIFO "INPUT RST,FIFORD,FIFOWR PIN ; "OUTPUT OEE1,OEE2, FULL,EMPTY PIN ISTYPE 'COM'; OE1,OE2,O2,O1 PIN ISTYPE 'REG'; "NODE W , FLAGG PIN ISTYPE 'REG'; C1,C2,C3,C4 PIN ISTYPE 'COM'; OE=[OE2,OE1]; O=[O2,O1]; OEE=[OEE2,OEE1]; EQUATIONS OE.CLK=FIFORD; O.CLK=FIFOWR; OE.AR=!RST; O.AR=!RST; W.CLK=FIFORD; W.AR=!RST#(!FIFOWR); W:=1; FLAGG.CLK=FIFOWR; FLAGG.AR=W&(!FIFORD)#(!RST)#(OEE==1)&(!FIFORD); FLAGG:=1; WHEN OE==3 THEN OE:=0 ELSE OE:=OE+1; WHEN O==3 THEN O:=0 ELSE O:=O+1; OEE=O-OE; C1=!FIFOWR&!O2&!O1; C2=!FIFOWR&!O2&O1; C3=!FIFOWR&O2&!O1; C4=!FIFOWR&O2&O1; EMPTY=(OE==O)&!FLAGG; FULL=(OE==O)&FLAGG; 5
END MODULE MUX4 "INPUT OE1,OE2,CLK PIN ; D07,D06,D05,D04,D03,D02,D01,D00 D17,D16,D15,D14,D13,D12,D11,D10 D27,D26,D25,D24,D23,D22,D21,D20 D37,D36,D35,D34,D33,D32,D31,D30 PIN ; PIN ; PIN ; PIN ; "OUTPUT O7,O6,O5,O4,O3,O2,O1,O0 PIN ISTYPE 'REG'; I0=[D07,D06,D05,D04,D03,D02,D01,D00]; I1=[D17,D16,D15,D14,D13,D12,D11,D10]; I2=[D27,D26,D25,D24,D23,D22,D21,D20]; I3=[D37,D36,D35,D34,D33,D32,D31,D30]; OD=[O7,O6,O5,O4,O3,O2,O1,O0]; OE=[OE2,OE1]; EQUATIONS OD.CLK=!CLK; WHEN OE==0 THEN OD:=I0; ELSE WHEN OE==1 THEN OD:=I1; ELSE WHEN OE==2 THEN OD:=I2; ELSE WHEN OE==3 THEN OD:=I3; 6
分享到:
收藏