ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:139.53KB ,
资源ID:9482150      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9482150.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(寄存器组.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

寄存器组.docx

1、寄存器组青岛理工大学实 验 报 告实验课程: 计算机组成原理I 实验日期: 2013 年 10月15日, 交报告日期:2013 年10月30日,成绩:实验地点:现代教育技术中心101(计算机实验室)计算机工程 学院,计算机科学与技术 专业, 班级:计算112班 实验指导教师:盛建伦 批阅教师:同组学生姓名任师锋秦世帅学号201107063201107061一、实验课题 一、主要元件设计 116位寄存器 功能要求:同步并行置数,异步复位(清零),三态输出,片选信号,读/写控制。 2地址译码器功能要求:3-8译码器二、顶层设计 用层次结构设计的方法设计一个通用寄存器组。包括8个16位寄存器,1个地

2、址译码器等元件。 功能要求:每个寄存器能够同步并行置数,异步复位(清零),三态输出。每个都可以(用地址)独立访问三、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。 四、深入的课题 上面设计的通用寄存器组,每次只能访问一个寄存器。如果想同时访问两个寄存器,应该怎样设计? 16位的寄存器每次读/写都是一个16位字,如果需要写入的是8位的字,即将8位的字写到16位寄存器的高8位或低8位(例如,16位寄存器A由AH和AL两个8位的寄存器组成),读出时,可一次读16位。应该怎样设计S3S2S1二、逻辑设计 地址译码器(3-8译码器)系统框图3-8译码器

3、A2A3A1 Y7Y0端口说明:A(1-3):输入信号 S(1-3):使能端 Y(0-7):输出端口 功能表:输 入输 入Y0Y1Y2Y3Y4Y5Y6Y7A1A211111011111011110111101111101111111011001010A3101111101011100110011111111111011011011111111当s=1的时候3-8译码器工作逻辑函数:, , ,十六位寄存器系统框图z十六位寄存器chiprwrClk D0D0A15 A0端口说明:A(0-15):输入D(0-15):输出Clk:时钟信号r,chip,z:分别是异步清零信号,片选信号,三态输出rw,:

4、分别是读写控制信号功能表:10000clkChiprwz说明rX三态门关闭写入寄存器0X0读1异步清零X1X不工作XXXX1X000X十六位寄存器组系统框图AI0s0AI1S1十六位寄存器AI2S2zrwrClkD0D0A15 A0端口说明:S(0-2):使能端 AI(0-3):给译码器的输入 z,r,clk,rw:分别是三态输出,异步置零,时钟,读写控制 A(0-15):数据输入 D(0-15):数据输出 十六位寄存器逻辑图S1Y6Y7S2S33-8译码器AADClkClk。A1A3A2。十六位寄存器。十六位寄存器十六位寄存器DDrwrwrwrrrClkZZZA输出数据流输入数据流三、VHD

5、L程序1、3-8译码器:-Decodelibrary ieee;use ieee.std_logic_1164.all;entity decode isport( s1,s2,s3: in std_logic;-使能端 A : in std_logic_vector(2 downto 0);-输入 Y : out std_logic_vector(7 downto 0)-输出);end decode; architecture de_behave of decode is signal s: std_logic;begin s=s1 and (not s2) and (not s3); Y(0

6、)=not( (not A(2) and (not A(1) and (not A(0) and s ); Y(1)=not( (not A(2) and (not A(1) and A(0) and s); Y(2)=not( (not A(2) and A(1) and (not A(0) and s ); Y(3)=not( (not A(2) and A(1) and A(0) and s); Y(4)=not( (A(2) and (not A(1) and (not A(0) and s); Y(5)=not( (A(2) and (not A(1) and A(0) and s)

7、; Y(6)=not( (A(2) and A(1) and (not A(0) and s); Y(7)=not( (A(2) and A(1) and A(0) and s);end de_behave;2、十六位寄存器:-十六位寄存器library ieee;use ieee.std_logic_1164.all;entity Sixteen_Register isport ( -clk:时钟信号(上升沿有效) -r:异步清零信号(高电平有效) -chip:片选信号(低电平有效) -z:三态门(z=1三态门打开) -load:同步置数信号 -rw:读写控制信号 rw = 1 is Rea

8、d ,or is Write clk,r,chip,z,rw : in std_logic ; a : in std_logic_vector(15 downto 0); d : out std_logic_vector(15 downto 0) );end Sixteen_Register;architecture behave of Sixteen_Register issignal sign : std_logic_vector(15 downto 0);-中间信号begin process(clk,r,chip,z,rw) begin if chip = 0 then -片选信号有效时

9、候 if r = 1 then -异步置零 sign 0); elsif rising_edge(clk) then -clk上升沿 if rw = 1 then d = sign; else -时钟上升沿,写 sign=a; end if; if z = 0 then dZ); end if; end if; else dZ); end if; end process;end behave;3、十六位寄存器组-通用寄存器组library ieee;use ieee.std_logic_1164.all;entity Sixteen_Register_group is port( -A是选择信

10、号,端口和3-8译码器相连 -clk是时钟信号 -load是 同步置数控制端 -rw是读写控制 -r异步清零 -load:同步置数信号 -z三态门 -a输入 -d输出 s1,s2,s3 : in std_logic; AI : in std_logic_vector(2 downto 0); clk,rw,r,z: in std_logic; a : in std_logic_vector(15 downto 0); d : out std_logic_vector(15 downto 0) );end Sixteen_Register_Group;architecture struct of

11、 Sixteen_Register_Group issignal Y : std_logic_vector(7 downto 0);-暂时存储3-8译码器产生的信号component Sixteen_Register -十六位寄存器元件说明port ( -clk:时钟信号(上升沿有效) -r:异步清零信号(高电平有效) -chip:片选信号(低电平有效) -z:三态门(z=1三态门打开) -load:同步置数信号 -rw:读写控制信号 rw = 1 is Read ,or is Write clk,r,chip,z,rw : in std_logic ; a : in std_logic_ve

12、ctor(15 downto 0); d : out std_logic_vector(15 downto 0) );end component;component decode -3-8译码器元件说明port( s1,s2,s3: in std_logic;-使能端 A : in std_logic_vector(2 downto 0);-输入 Y : out std_logic_vector(7 downto 0)-输出);end component;begin -3-8译码器的一次例化 TEdecode: decode port map (A=AI , Y=Y,s1=s1,s2=s2,s

13、3=s3); -十六位寄存器的例化 G0:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(0),a=a,d=d); G1:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(1),a=a,d=d); G2:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(2),a=a,d=d); G3:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(3),a=a,

14、d=d); G4:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(4),a=a,d=d); G5:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(5),a=a,d=d); G6:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(6),a=a,d=d); G7:Sixteen_Register port map (clk=clk,r=r,z=z,rw=rw,chip=Y(7),a=a,d=d);end str

15、uct;四、仿真设计3-8译码器仿真设计:从它的功能表可以知道输入的数据是有限的且只有八组。故可以按照功能表对全部数据进行仿真。故仿真数据,大可以参考前边列出的功能表。十六位寄存器仿真设计:验证无工作状态功能:令chip=1,若输出为Z则说明其没有工作。验证异步清零功能:使chip=0且r=1,接着使chip=0,clk处于上升沿,r=0,z=1,rw=1。 若仿真结果是16个0则表明异步清零功能有效,且简洁验证了,读功能是正确的。验证写入寄存器的功能:使chip=0且clk处于上升沿,r=0,rw=0。接着读出数据,若读出的数据是这之前写入寄存器的数据则表明写功能正确。验证读功能:使chip

16、=0且clk处于上升沿,r=0,rw=1。若仿真的结果是之前写入寄存器的数据,则辨明读功能是正确的。仿真数据:(一个句号分割一组数据,不全的数据,则用仿真中的默认数据代替)令chip=1。令r=1。(异步清零)令chip=0,clk处于上升沿,r=0,z=1,rw=1。(读出数据)令chip=0, clk处于上升沿,r=0,z=1,rw=0。(写入数据)这里有一点奇怪的地方是,写入数据时z=1,即三态门打开了。其实读或者写入数据是由rw控制的,此处设置此数据的目的在于验证程序的正确性。即:三态的数据是由z控制的而不是其他信号。令chip=0,clk处于上升沿,r=0,z=1,rw=1。(读出数

17、据,用来验证写入功能的正确性)。令chip=0,r=1,z=1。验证清零功能,它应该是不受三态输出的影响的。令chip=0,clk处于上升沿,r=0,z=1,rw=1。(读出数据,读出的数据应该为全零)令chip=0,r=0,z=0,rw=0,验证三态门,和写入寄存器的功能。输出应该是高祖态。令chip=0,clk处于上升沿,r=0,z=1,rw=1。(读出数据)读出的数据应该和之前写入的数据一致。对于以上仿真,每种情况可多输入几组数据,以尽可能避免偶然误差。注意:对于chip不工作状态,我是用Z来代替的,它有可能使你和三态输出混淆,但是我实在不知道,该用什么样的数据来表示寄存器的不工作状态。

18、十六位寄存器组仿真设计:对十六位寄存器组,共有8个寄存器。每一个寄存器都要进行功能验证,一、为了验证译码器的正确性;二、为了验证每个寄存器的功能是否都正确。(实际上这些寄存器都是由一个模板复制而来,之所以每个都进行验证是为了查看每个组件之间的连接是否正确)。按照十六位寄存器的仿真设计,对每一种片选信号都进行十六位寄存器的仿真。五、结果分析讨论1、3-8译码器功能仿真结果:结果讨论:从仿真图可以看出对于每种输入,都可以得到和功能表一致的结果。故3-8译码器设计是正确的。2、十六位寄存器仿真结果:结果讨论:从仿真图可以看出对于精心选择的数据,都输出了正确的结果。因此可以断定该十六位寄存器的设计是正

19、确的。3、十六位寄存器组的仿真结果:当片选第一片寄存器时的仿真图:结果讨论:在片选信号选择第一片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第二篇寄存器的仿真图:结果讨论:在片选信号选择第二片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果当片选信号选择第三篇寄存器的仿真图:结果讨论:在片选信号选择第三片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第四篇寄存器的仿真图:结果讨论:在片选信号选择第四片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第五篇寄存器的仿真图:结果讨论:在片选信号选择第五片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第六篇寄存器的仿真图:结果讨论:在片选信号选择第六片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第七篇寄存器的仿真图:结果讨论:在片选信号选择第七片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。当片选信号选择第八篇寄存器的仿真图:结果讨论:在片选信号选择第八片寄存器下,从仿真图可以看出对于精心选择的数据,都输出了正确的结果。综合上面的结果分析,可以推断出该十六位寄存器组的设计基本是正确的。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2