计算机组成原理相联存储器的设计.docx
《计算机组成原理相联存储器的设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理相联存储器的设计.docx(19页珍藏版)》请在冰豆网上搜索。
计算机组成原理相联存储器的设计
目录
第1章总体设计方案2
1.1设计原理2
1.2设计思路3
1.3设计环境4
第2章详细设计方案5
2.1顶层方案图的设计与实现5
2.1.1创建顶层图形设计文件5
2.1.2器件的选择与引脚锁定5
2.1.3编译、综合、适配6
2.2功能模块的设计与实现7
2.2.1输入寄存器的实现7
2.2.2存储体的设计与实现8
2.2.3数字比较器的实现10
2.2.4查找结果寄存器的实现12
2.3仿真调试13
第3章编程下载与硬件测试15
3.1编程下载15
3.2硬件测试及结果分析15
参考文献17
附录(电路原理图)18
第1章总体设计方案
1.1设计原理
相联存储器(ContentAddressedMemory),它是一种按内容访问的存储器,可以根据数据记录地一部分内容查找其它部分的内容。
在相联存储器中,每个存储的数据记录都是固定长度的字,每个字由若干字段组成,每个字段描述了用一个对象的属性,也称一个内容。
相联存储器的结构框图如图1.1所示。
输入寄存器(CR)
...
数字比较器
...
查找结果寄存器(SRR)
译码选择电路
存储体
…
…
图1.1相联存储器原理框图
它主要实现将输入寄存器(CR)的信息与存储体的信息作比较,相匹配的置为“1”,不匹配的置为“0”,将结果送入查找结果寄存器(SRR)中,并输出结果。
1.2设计思路
根据相联存储器的原理特点,即按照内容寻址,因此可以将相联存储器分为以下几个部分:
输入寄存器,译码选择电路,存储体,数字比较器,查找结果寄存器。
输入寄存器(CR):
用来存放检索字,其位数和相联存储器的字长相等。
译码选择电路:
用3-8译码器进行译码电路选择,如当置输入端B2B1B0为“000”,时钟脉冲信号为高电位时,可以向存储体第一个单元地址输入八位二进制的字信息,同时其他的存储单元的信息被屏蔽掉。
当置输入端B2B1B0为“001”时,时钟信号为高电位时,可以向存储体第二个单元地址输入八位二进制的字信息,同时其他的存储信号单元被屏蔽掉。
存储体(AMU):
用于存放待检索的数据,由八个八位二进制存器构成,以便快速存取。
数字比较器:
将检索的内容和从存储体中读出的所有单元内容的相应位进行比较,如果有某个存储单元的信息和检索项一致,就把符合寄存器的相应位置“1”,表示该字匹配 ;否则置“0”,表示不匹配。
查找结果寄存器(SRR):
用来存放待检索项与存储体的信息中相符合的单元的寄存器地址,其位数等于相联存储器的存储单元总数,每一位对应一个存储单元,位的序列数即为相联存储器的单元地址。
设存储体由8个字构成,字长为8位的二进制数。
CR为比较寄存器,字长也为8位,存放要比较的两个数。
首先向输入寄存器输入一个八位二进制的字,然后通过3—8译码器选择电路依次将八个八位二进制数输入到存储体中。
将输入到输入寄存器的字通过比较寄存器分别与存储体里的八个字检索比较,若匹配,则输出信号置1,否则置0。
匹配信号通过查找结果寄存器(SRR)输出,我们就能找到匹配的那个字。
若存储体八个单元存储的数据分别为0000000、00000001、00000010、00000011、00000100、00000101、00000110,00000111,输入寄存器中的存储数据是00000011,通过比较器CR进行比较之后,可以知道发现检索数据与存储体中的第四个单元的内容一致,所以结果查找寄存器SRR中的第四个单元置为“1”,其余的置“0”,则匹配结果输出为:
00001000。
1.3设计环境
·硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。
·EDA环境:
Xilinxfoundationf3.1设计软件、COP2000仿真软件。
图1.2Xilinxfoundationf3.1设计平台
图1.3COP2000计算机组成原理集成调试软件
第2章详细设计方案
2.1顶层方案图的设计与实现
该设计方案采用自上而下的设计方法,顶层设计使用原理图设计输入方式,以此实现相联存储器相关的逻辑功能,在XCV200可编程逻辑芯片上实现电路。
在Xilinxfoundationf3.1开发环境上设计好电路图,把输入/输出信号分别定位到XCV200芯片指定的引脚上,完成芯片的引脚的锁定。
2.1.1创建顶层图形设计文件
构成顶层图形文件的元器件如下表2.1
表2.1元器件
元器件类型
使用元器件数目
FD8CE
10
3_8译码器
1
COMP8
8
输入端口
20
输出端口
8
VCC
3
GND
1
总线及导线
若干
由上述元器件封装而成一个完整的设计实体。
该方案在Xilinxfoundationf3.1软件环境下进行软件的设计,实现顶层图形文件。
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于所提供的硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,因此采用的目标芯片为XilinxXCV200可编程逻辑芯片。
(2)引脚锁定
根据引脚分配表,把顶层图形文件中的输入/输出信号依次安排到XilinxXCV200芯片指定的引脚上,实现芯片的引脚锁定,各信号及XilinxXCV200芯片引脚对应关系如表2.1所示。
表2.2信号和芯片引脚对应关系
相联存储器内部信号
XCV200芯片引脚
IBUS0
P103
IBUS1
P102
IBUS2
P101
IBUS3
P100
IBUS4
P97
IBUS5
P96
IBUS6
P95
IBUS7
P94
B0
P73
B1
P72
B2
P71
AMBUS0
P87
AMBUS1
P86
AMBUS2
P85
AMBUS3
P84
AMBUS4
P82
AMBUS5
P81
AMBUS6
P80
AMBUS7
P79
CLOCK
P213
OBUS0
P110
OBUS1
P111
OBUS2
P203
OBUS3
P185
OBUS4
P184
OBUS5
P178
OBUS6
P152
OBUS7
P147
2.1.3编译、综合、适配
利用Xilinxfoundationf3.1设计软件对顶层图形文件进行编译,并尽量调整各器件和线的位置使其合理美观,连接完毕后进行仿真,待仿真成功后编译文件,编译成功后即可将文件下载到芯片中。
2.2功能模块的设计与实现
本相联存储器是由输入寄存器,选择比较电路,比较寄存器,存储体,查找结果寄存器组成的,设有20个输入端口和8个输出端口实现其输入和输出。
各部分元件均分别单独实现功能并仿真成功之后,再将各部分模块进行连接,经整体整合仿真成功后,完成了所需电路实体。
2.2.1输入寄存器的实现
输入寄存器是用一个元器件FD8CE组成。
FD8CE的字长为八位,用于存放检索数据,本方案用一个8位的D触发器来组成FD8CE。
(1)输入寄存器的结构图如下图2.1所示
图2.1输入寄存器图模块
(2)FD8CE的实现
一个FD8CE是使用八个1位D触发器构成的,每个1位D触发器存储一个二进制数,电路图如下图2.2所示
图2.2八位输入寄存器内部结构图
2.2.2存储体的设计与实现
该存储体一共由8个寄存器(FD8CE)组成,每个寄存器的字长为8位。
利用3—8译码器的输出端分别控制8个寄存器的CE使能端,使之可以分别对每一个存储器进行写入操作。
例如:
3—8译码器输入端B0,B1,B2为010时,其输出端D2输出为“1”,使得与D2端相连的寄存器的使能端为“1”,并且CLK信号为高电位时,即可将数据总线AMBUS7~AMBUS0的数据输入到该寄存器中。
如此可以最终实现对8个寄存器的分别写入操作。
(1)存储体的电路图如下图2.3所示
图2.3存储体及译码电路结构图
(2)实现方法
利用3—8译码器的输入端B0B1B2分别控制每一个寄存器的CE使能端及时钟脉冲端产生的脉冲信号实现对八个存储单元的信息输入。
将译码器的八个输出端分别与八个寄存器的使能端相连,实现逐个信息输入。
(3)功能仿真
对存储体的输入输出进行仿真,能够实现上述功能。
仿真图如图2.4所示。
其中总线SHU[7:
0]是输入寄存器的检索信息,总线Q0[7:
0]-Q7[7:
0]分别代表存储体的从上到下的八个寄存器存储的数据。
图2.4存储体输入仿真图
2.2.3数字比较器的实现
当检索内容与待检测内容分别写入到输入寄存器与存储体以后,需要通过比较寄存器把检索数据与存储体中每一个存储单元中的数据进行匹配比较,如果发现其某个存储单元中的数据和检索数据完全一致,就把符合寄存器的相应位置“1”,表示其该数据即为想要检索的数据,否则置“0”,表示存储体中没有符合匹配要求的数据。
(1)COMP8的实现
数字比较器使用8个COMP8组成的,COMP8的功能是实现1个八位二进制数的比较。
COMP8的电路图如下图2.5所示。
图2.5数字比较器元件图
COMP8的内部结构图如下图2.6所示。
其中总线A[7:
0]是用来传输检索信息,总线B[7:
0]是用来传送存储体的待检索信息的,EQ端是用来输出比较结果,当检索信息和带检索信息相同时EQ端置“1”,否则置“0”。
图2.6数字比较器的内部实现
(2)数字比较器的实现
比较模块的部件主要用数据比较器来实现,存储体中有8个寄存器,所以比较器也相应的需要8个,字位数也是8位。
匹配比较的结果将其输出到结果查找寄存器中。
比较线路的实现方法是:
先将输入寄存器的输出总线与8个比较器的输入总线相连接,存储体中的8个寄存器的输出总线与8个比较器另一个输入总线相连接。
此时随着脉冲信号的连续进行,存储体内每输入一个存储单元,就将其接到一个比较器的另一端与输入寄存器中的数据进行比较,相同时置“1”,不同时置“0”。
直至将所有存储单元都比较完为止。
数字比较器的电路如下图所示,其中总线Q0[7:
0]~Q7[7:
0]是存储体的数据总线,总线SHU[7:
0]是输入寄存器的数据总线,总线D[7:
0]是比较结果输出总线。
图2.7数字比较器逻辑模块图、
2.2.4查找结果寄存器的实现
查找结果寄存器同样由一个8位寄存器来实现,与输入寄存器原理一样。
输入总线与数字比较器输出结果总线相连接,用来存放比较后得到的匹配信息。
(1)查找寄存器与输入寄存器的元器件一样都是FD8CE,结构图如下图2.8所示
图2.8查找结果寄存器图
(2)FD8CE的结构图如下图2.9所示
图2.9查找结果寄存器图结构图
2.3仿真调试
仿真调试主要用来验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择
在进行功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,当脉冲遇到上升沿时选定的仿真信号和设置的参数如表2.3所示。
表2.3仿真信号选择和参数设置
输入信号
输出信号
IBUS
AMBUS
B2
B1
B0
CLK
OBUS
3
0
0
0
0
1
FF
3
1
0
0
1
1
00000000
3
2
0
1
0
1
00000000
3
3
0
1
1
1
0