寄存器及寄存器堆设计

寄存器及寄存器堆设计
寄存器及寄存器堆设计

寄存器组的设计与实现

寄存器组的设计与实现 第______ _________组 成员___ ____ ____ 实验日期___ _____ _____ 实验报告完成日期___________ 1、实验目的 1、学习掌握Quartus软件的基本操作; 2、理解寄存器组的工作原理和过程; 3、设计出寄存机组并对设计的正确性进行验证; 二、实验内容

1、设计出功能完善的寄存器组,并对设计的正确性进行验证。要求如下: (1)用图形方式设计出寄存器组的电路原理图 (2)测试波形时用时序仿真实现,先将不同的数据连续写入 4个寄存器后,再分别读出 (3)将设计文档封装成器件符号。 (4)数据的宽度最好是16位 2、能移位的暂存器实验,具体要求如下: (1)用图形方式设计出能移位的暂存器电路原理图,分别实 现左移、逻辑右移和算术右移。 (2)测试波形时要用时序仿真实现,测试数据不要全为0也 不要全为1,算术右移的测试数据要求为负数(即符号位为 1) (3)将设计文档封装成器件符号。 (4)数据的宽度最好是16位 三、能完善的寄存器组设计思想 1、对于寄存器组设计思路 利用具有三态功能的寄存器堆74670芯片进行设计,根据实验要求,需要设计16位的存储器组,则需要74670芯片4片,在寄存器组工作时,同时对4片74670芯片进行读写操作控制,封装后即可作为包含有4个寄存器的16位寄存器组在主机系统中调用。 2、对74670器件的学习 74670(三态输出4×4寄存器堆)提供4个4位的寄存器,在功能上可对4个寄存器去分别进行写操作和读操作。在寄存器进行写操作时,通过WB、WA两个寄存器选择端的组合和00、01、10、11、来选择寄存器,公国GWN写操作端控制进行三态控制,在GWN为低电平时将数据写入端数据D4D3D2D1写入该寄存器;在寄存

计算机原理与及设计实验报告

计算机原理与设计 实验报告 实验三多周期MIPS CPU的控制部件用有限状态机实现多周期CPU的控制部 件

一.实验目的 1、了解MIPS—CPU控制器的功能和工作原理; 2、掌握用有限状态机技术实现多周期控制器的方法; 3、熟练掌握用Verilog HDL语言设计多周期控制器的方法; 4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法; 5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。 二.实验内容 (1)MIPS—CPU控制器的有限状态机设计,根据MIPS—CPU 各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。通过Verilog HDL语言实现多周期控制器有限状态机。 (2)根据MIPS—CPU控制器的接口要求,在有限状态机的

基础上,用Verilog HDL实现完整的MIPS—CPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译; (3)设计控制器的硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计; (4)在MIPS—CPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译; (5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。三.实验原理与步骤 1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成 (1).时钟周期以最复杂阶段所花时间为准 (2).尽量分成大致相等的若干阶段 (3).每个阶段内最多只能完成:1次访存或1次寄存器堆读/写或1次ALU

杭电计组实验4-寄存器堆设计实验

杭州电子科技大学计算机学院 实验报告 实验项目: 课程名称:计算机组成原理与系统结构设计 姓名: 学号: 同组姓名: 学号 : 实 验 位 置 ( 机 号 ) : 实验日期: 指 导 教 师: 实验 内容 (算 法、 程 序、 步骤 和 方 法) 一、 实验目的 (1 )学会使用Verilog HDL 进行时序电路的设计方法。 (2)掌握灵活应用Verilog HDL 进行各种描述与建模的技巧和方法。 (3 )学习寄存器堆的数据传送与读 /写工作原理,掌握寄存器堆得设计方法。 二、 实验仪器 ISE 工具软件 三、 步骤、方法 (1) 启动Xilinx ISE 软件,选择File->New Project,输入工程名shiyan2,默认选择后,点 击Next 按钮,确认工程信息后点击 Finish 按钮,创建一个完整的工程。 (2) 在工程管理区的任意位置右击,选择 New Source 命令。弹出 New Source Wizard 对 话框, 选择Verilog Module,并输入Verilog 文件名,点击Next 按钮进入下一步, 点击Finish 完成创建。 (3) 编辑程序源代码,然后编译,综合;选择 Synthesize--XST 项中的Check Syntax 右击 选择 Run 命令,并查看RTL 视图;如果编译出错,则需要修改程序代码,直至正确。 (4) 在工程管理区将 View 类型设置成 Simulation ,在任意位置右击,选择 New Source 命 令,选择Verilog Test Fixture 选项。点击Next ,点击Finish ,完成。编写激励代码,观察仿 真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。 (5) 由于实验四并未链接实验板,所以后面的链接实验板的步骤此处没有。

实验六移位寄存器的设计

实验六移位寄存器的设计 一、实验目的 1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验预习要求 1、复习有关寄存器及串行、并行转换器有关内容。 2、查阅CC40194、CC4011及CC4068 逻辑线路。熟悉其逻辑功能及引脚排列。 3、在对CC40194进行送数后,若要使输出端改成另外的数码,是否一定要使寄存器清零? 4、使寄存器清零,除采用R C输入低电平外,可否采用右移或左移的方法?可否使用并行送数法?若可行,如何进行操作? 5、若进行循环左移,图6-4接线应如何改接? 6、画出用两片CC40194构成的七位左移串 /并行转换器线路。 7、画出用两片CC40194构成的七位左移并 /串行转换器线路。 三、实验设备及器件 1、+5V直流电源 2、单次脉冲源 3、逻辑电平开关 4、逻辑电平显示器 5、CC40194×2(74LS194)CC4011(74LS00) CC4068(74LS30) 四、设计方法与参考资料 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图6-1所示。 其中D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端; 入端,S L为左移串行输入端;S1、S0为操作模式控制端;R

移位寄存器的设计

实验四移位寄存器的设计 电科092 朱恩遇09401700324 1实验目的:掌握QuartusII的VHDL语言描述输入法 (1)掌握VHDL语言描述输入法 (2)掌握VHDL语言 (3)理解if语句进行描述计数器。 2 、实验内容 (1)设计一个移位寄存器 (2)根据VHDL语言描述输入法编译和波形仿真。 3 、实验要求 (1) 熟悉VHDL语言描述输入法 (2) 设计一个移位寄存器的VHDL程序,具有左、右移位,同步置数、同步清零等功 能 (3) 用QuartusII软件编译和波形仿真 (4) 把自己认为好的实验结果写成实验报告。(要计成绩) 4、实验步骤 程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity yw is port(data:in std_logic_vector(5 downto 0); left_da,right_da,reset,clk:in std_logic; mode :in std_logic_vector(1 downto 0); qout :buffer std_logic_vector(5 downto 0)); end yw; architecture behave of yw is begin process begin wait until rising_edge(clk); if(reset='1')then qout<="000000"; else case mode is when"00"=>qout<=qout; when"01"=>qout<=right_da&qout(5 downto 1); when"10"=>qout<=qout(4 downto 0)&left_da;

西工大2017年数字集成电路设计实验课实验一

实验四 译码器的设计及延迟估算 1、 设计译码器并估算延迟 设计一个用于16bit 寄存器堆的译码器,每一个寄存器有32bit 的宽度,每个bit 的寄存器单元形成的负载可以等效为3个单位化的晶体管(后面提到负载都为单位化后的负载)。 译码器的结构可参考典型的4-16译码器 译码器和寄存器堆的连接情况(Output 输出为1的一行寄存器被选中) ① 假定4个寄存器地址位的正反8个输入信号,每个信号的输入负载可以等效为10。确定 译码器的级数,并计算相关逻辑努力,以此来确定每一级中晶体管的尺寸(相当于多少个单位化的晶体管)及整个译码电路的延迟(以单位反相器的延迟的本征延迟Tp0为单位)。 解: 96332,10int =?==ext g C C C ,9.696/10F ==? 假定每一级的逻辑努力:G=1,又因为分支努力(每个信号连接8个与非门): 81*8*1B ==, 路径努力8.7686.91=??==GFB H 所以,使用最优锥形系数就可得到最佳的电路级数39.36.3ln 8.76ln 6.3ln ln ===H N ,故N 取3级。 因为逻辑努力:2121G =??=,路径努力:6.15386.92=??==GFB H 则使得路径延时最小的门努力 36.5)6.153(3/1===N H h 。 所以: . 36.5136.5,68.2236.5, 36.5136.5132211=========g h f g h f g h f

故第一级晶体管尺寸为7.68 1036.5=?; 第二级尺寸为956.1768.27.6=?; 第三级尺寸为96244.9636.5956.17≈=?。 故延迟为:0008.22)36.5136.5436.51(p p p t t t =+++++= ② 如果在四个寄存器地址输入的时候,只有正信号,反信号必须从正信号来获得。每个正信号的输入的等效负载为20,使用与①中同样的译码结构,在这种条件下确定晶体管的大小并评估延迟(以单位反相器的延迟的本征延迟Tp0为单位)。 解:因为输入时通过两级反相器,使这两个反相器分摊原来单个反相器的等效扇出,将两级反相器等效为一级,故其逻辑努力32.236.5h ==, 故36.5,68.2,32.2,32.24321====f f f f 所以: 第一级尺寸为:()9.2832.210=?; 第二级尺寸为:728.632.29.2=?; 第三级尺寸为:03.1868.2728.6=?; 第四级尺寸为:65.9636.503.18=? 正信号通路的延迟为:()0036.2236.5136.5436.5132.2132.2p p p t t t =++++++++= 反信号通路情况与上问相同,延迟为0008.22)36.5136.5436.51(p p p t t t =+++++= 2、 根据单位反相器(NMOS:W=0.5u L=0.5u PMOS:W=1.8u L=0.5u),设计出实 际电路,并仿真1题中第一问的路径延迟。 设计出实际电路如下:

计算机组成原理课程设计报告

序号: 学号: C H A N G Z H O U U N I V E R S I T Y 计算机组成原理 课程设计报告 题 目: 8位机微程序控制器模型计算机的设计与实现 学 生 姓 名: 学 号: 学 院(系): 专 业 班 级: 校内指导教师: 专业技术职务: 实 习 时 间: 年 月 日 年 月 日

计算机组成原理课程设计任务书

计算机科学与技术系指导教师

目录 1、课程设计的目的 (1) 2、课程设计的环境 (1) 3、课程设计的内容 (1) 3.1课程设计的原理 (1) 3.2课程设计机器指令 (3) 3.3微指令格式 (4) 3.4数据通路图 (6) 4、设计方案 (7) 4.1设计指令 (9) 4.2微程序流程图 (10) 4.3微指令二进制微代码表 (10) 5、验证与结果分析 (13) 5.1课设过程中所遇问题 (23) 5.2对应问题的解决 (23) 6、课程设计总结 (24) 6.1任务分工 (24) 6.2心得体会 (24) 参考文献 (26)

1、课程设计的目的 深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。 总体概括而言,分为两点:1、在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一台基本模型计算机。2、为其定义两条以上的机器指令,并编写相应的微程序,上机调试,掌握整机概念。 2、课程设计的环境 硬件环境:TEC-9实验系统一台,排线若干,连接有关联的开关,使信号同步。 软件环境:HQFC-B1计算机组成原理软件,进行微程序的写入。 3、课程设计的内容 1、通过知识的综合运用,设计一台新的微程序控制器模型计算机。 2、选择合适的寻址方式,进行数据的提取。 3、确定你需要做的两条指令,并画出对应指令的流程图。 4、根据流程图,设计控制器代码。 5、根据控制器代码,在TEC-9实验系统上进行连线、调试,修改控制器代码。 6、最后,得出正确的控制器代码并完成实验报告、答辩,课程设计完成3.1课程设计的原理 TEC-9实验系统的组成:控制台、数据通路、控制器、时序电路、数字逻辑实验区、电源模块 时序发生器 时序发生器产生计算机模型所需的时序和数字逻辑实验所需的时钟。时序电路由一个500KHz晶振、2片GAL22V10组成。根据本机的设计,执行一条微程序指令需要4个节拍脉冲T1、T2、T3、T4,执行一条机器指令需要三个节拍电位W1、W2、W3,因此本机的基本时序如下:

计数器和移位寄存器设计仿真实验报告

实验四典型时序电路的功能测试与综合仿真报告 15291204 张智博 一.74LS290构成的24位计数器 方法:第一片74290的Q3与第二片的INB相连,R01,R02相连,INA,R91,R92悬 空构成24位计数器。50Hz,5v方波电压源提供时钟信号,用白炽灯显示输出信号。 实验电路:

001011,001100,010001,010000,010010,010011,010100,011000,011001,011010,011011,011100,100000,100001,100010,100011,100100,最终又回到000000,实现一次进位。 二.74LS161构成的24位计数器 方法:运用多次置零法 用两片74LS161构成了24位计数器,两片计数器的时钟信号都由方波电压源提供,第一片芯片的Q3和第二片芯片的Q0通过与非门,构成两个74LS161的LOAD信号,第一片的CO接第二片的ENT,其他ENT和ENP接Vcc(5v)。输出接白炽灯。 电路图: 实验现象:以下为1—24的计数过程

三.74LS194构成的8位双向移位寄存器 方法:通过两片194级联,控制MA,MB的值,来控制左右移动 实验电路由两片74LS194芯片构成。两个Ma接在一起,两个Mb接在一起,第一片的Dr,第二片的Dl,分别通过开关接到Vcc(5v)上。第一片的Q3接到第二片的Dr,第二片的Q0接到第一片的Dl。8个输出端分别接白炽灯。 实验电路:

实验现象: 右移: 接通Ma,Dr后,D0到D7全部为0,白炽灯从00000000变为10000000,11000000,

寄存器电路设计

实验五寄存器电路设计 1.画出74ls74构成的4位单向移位寄存器并说明其工作原理。 它是由四个D触发器串联而成的四位单向移位寄存器。 移位寄存器使其中所储存的二进制,在一位脉冲的作用下左右移动; 一位触发器可以储存1位二进制代码,存放n位二进制就需要n个触发器构成; 2.8位移位寄存器设计原理图。 实验五寄存器电路设计 一、实验目的

l、掌握寄存器的工作原理、测试和分析其工作状态 2、掌握集成双向移位寄存器和并行数据锁存器的功能及使用方法 3、8位移位寄存器电路设计 二、实验内容及步骤 1、并行输入/并行输出寄存器功能测试 表5.1 2、移位寄存器功能测试 (1)用74LS74构成的4位单向移位寄存器 11010000表5.2

(2) 74LSl94 表5.3 100X X X X X X X0000

3、8D 锁存器功能测试 表5.4 注: “个”表示单脉冲上升沿 4、8位移位寄存器电路设计(如不够可自行加纸) 自制表格:

设计思路: 用两片74LS194芯片来设计8位移步寄存器;主要思路是74LS194芯片在S0S1=00,01,10,11状态下分别为保持、右移、左移和置位的功能,而本实验就要应用了左移和右移的功能,只要将两个芯片的S0S1端连接在一起就可以实现由四位移步寄存器变为八位移步寄存器了; 原理图: 三、思考题 1.写出图5.1和图5.2的状态方程,并对照检查实验结果正确与否。 Q3=D3+D1D2 Q2= D0+D3 Q1=D3+D1D2 Q0=D0+D3 是正确的 四、实验总结(自己总结本次试验的重难点及心得、体会、收获,字数不得少于100字)

设计示例2寄存器堆设计

设计示例2:寄存器堆设计 1、 功能概述: MIPS 指令格式中的寄存器号是5bits ,指令可以访问25=32个32位的寄存器。这样的一堆寄存器“堆在一起”构成一个寄存器堆(Register File )。模块框图如图1所示: Regfile 图1 模块框图 2、 结构框图: 3、 接口说明: 表1: 寄存器堆模块接口信号说明表 clk we wdata Valid Valid waddr rst_n 图2 寄存器堆写时序框图

4、设计电路源代码 //功能描述风格寄存器堆的设计 module regfile( input clk, input rst_n, //写端口 input we, //写使能 input[4:0] waddr, //写寄存器下标 input[31:0] wdata, //待写入寄存器堆的数据 //读端口1 input[4:0]raddr1, //读端口1寄存器下标 output[31:0] rdata1,//从端口1读出的寄存器堆的数据 //读端口2 input[4:0]raddr2, //读端口2寄存器下标 output[31:0] rdata2 //从端口2读出的寄存器堆的数据); reg[31:0] regs[0:31]; //32个32位寄存器堆 //Write operation always @ (posedge clk or negedge rst_n) begin if(!rst_n) begin:reset_all_registers //将32个寄存器复位为0. integer i; for(i=0;i<32;i=i+1) regs[i] = 32'd0; end else begin //写寄存器堆有效时,更新寄存器堆中某个寄存器的数据 if((we == 1'b1) && (waddr != 5'h0)) begin regs[waddr] <= wdata; end end end //Read port1 operation assign rdata1 = (raddr1 == 5'd0) ? 32'd0 : regs[raddr1]; //Read port2 operation assign rdata2 = (raddr2 == 5'd0) ? 32'd0 : regs[raddr2];

寄存器的设计

实验报告 一实验目的 1、初步认识CPU结构,熟悉寄存器的使用方法 2、认识PC运行环境,熟悉PC 指令系统,指令的编码 3、熟悉基本的寻址方法 4、初步了解ASM(debug)工具的使用方法 5、对堆栈操作,了解栈顶,栈低的概念 6、为设计模型机做准备,(模型机指令系统) 二实验原理

1、CMD进入DOS环境 2、用DEBUG进行调试 3、(1)常用命令列表 (2) 通用寄存器:AX,BX,CX,DX 段寄存器:CS,DS,ES,SS 指针:IP,SP,BP,DI,SI (3) 指令的机器码表示方法(典型传输指令的格式) 第一字节:高6位是操作码26=64条指令 W位:指示传递数据商务类型是字(W=1)字节(W=0) D位:标明数据传输方向:(D=0 数据从寄存器传出,D=1数据传至寄存器)第二字节 REG字段:寄存器号,用3位编码寻址8种不同的寄存器,在根据第一字节的W位,选择8位或16位寄存器(对使用段寄存器的指令,REG段占2位)

注意:MOV指令的二个操作数中有一个必为寄存器,另一个操作数可以是寄存器,也可以是存储器单元,由指令代码的第二字节的MOD和R/M字段指定

d—0/1表示REG为源/目的操作数; w—0/1表示操作数类型为BYTE/WORD; mod、r/m—寻址方式,参见教材P56~57; IMME—立即数操作数,字段中用data表示; reg—通用REG用3位编码,段REG只用2位编码(即为0xx) 三实验步骤 开始->运行->cmd->debug 1.在通用寄存器中存数 执行指令: mov ax,1234 mov bx,5678 mov cx,abcd mov dx,ffff int 3 ^C 观察寄存器变化,并分析操作码 2. 寄存器不同寻址方式操作 执行指令: mov ax,1111 mov bx,[102] mov cx,106 mov dx,[bx] 观察寄存器变化,并分析操作码 3. 堆栈指针操作 执行指令: mov ax,1224 mov bx,5678 mov cx,abcd mov dx,ffff push ax push bx push cx push dx int 3

单周期CPU设计参考

单周期CPU及其Verilog HDL设计 一、指令的设计 MIPS32的指令的三种格式的参考: R类型: I类型: J类型: R类型指令的op为0,具体操作由func指定。rs和rt是源寄存器号,rd是目的寄存器号。只有移位指令使用sa来指定移位位数。I类型指令的低16位是立即数,计算时要把它扩展到32位。依指令的不同,有零扩展和符号扩展两种。J类型指令右边26位是字地址,用于产生跳转的目标地址。具体的指令格式和内容请参考MIPS32。 设计报告中需自行设计所有指令的二进制格式和对应的汇编指令格式。 二、单周期CPU的设计 我们把时钟的电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。单周期CPU指的是一条指令的执行在一个这样的时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个周期。 2.1执行一条指令所需的硬件电路 我们的目的地是要设计CPU的硬件电路,使其能够从存储器中读出一条条指令并执行指令所描述的操作。从存储器中读取指令的动作一般与指令本身的意义无关,可以以同样的方法把指令从存储器中取出。而执行指令则与指令本身的意义密切相关,因此最重要是首先搞清楚CPU要执行的每条指令的意义。下面以两种类型的电路来举例。 2.1.1与取指令有关的电路

指令存储在存储器中。CPU取指令时把程序计数器(PC)中的内容作为存储器的地址,根据它来访问存储器,从PC值指定的存储单元中取来一条32位指令。如果取来的指令执行时没有引起转移,PC的值要加4;如果转移,要把转移的目标地址写入PC,以便在下一个时钟周期取出下一条指令。 图2.1 取指令时用到的硬件电路和指令寄存器 如图2.1所示,PC是一个简单的32位寄存器,由32个D触发器构成。指令存储器(Inst Mem)的输入端a是地址、输出端do是数据输出,即指令。图中的加法器专供PC+4使用,它的输出接到多路器的一个输入端。如果取来的指令没有引起转移或跳转,则选择PC+4,在时钟上升沿处将其打入PC;若引起转移或跳转,则用多路器选择下一条指令该打入的PC值。 2.1.2寄存器计算类型指令执行时所需电路 寄存器类型的指令有add等。如图2.2所示是执行它们所需的部分硬件电路。大多数MIPS指令属于三操作数指令。指令格式中的rs和rt是两个5位的寄存器号,由它们从寄存器堆(Regfile)中读出两个32位的数据。由于寄存器号有5位,所以能从32个寄存器中选出一个。32个寄存器合在一起称为寄存器堆(Register File)。从寄存器堆读出的两个32位数据分别被送到ALU的a和b的输入端。 图2.2 执行寄存器计算类型指令所需电路 具体的计算由ALU完成。ALU的计算控制码aluc由控制部件(Control Unit)产生。这里的控制部件是简单的组合电路,输入信号是指令的操作码op和功能码func,输出信号3个,它们分别是ALU的操作码aluc、计算结果是否写入寄存器堆的控制信号wreg和下一条指令的地址选择信号pcsource。ALU的计算结

寄存器组的设计与实现预习

寄存器组的设计与实现

一、实验目的 1、学习掌握Quartus||软件的基本操作; 2、理解寄存器组的工作原理和过程; 2、设计出寄存器组并对设计的正确性进行验证。 二、实验内容 1、设计出功能完善的寄存器数组并对设计的正确性进行验证。 (1)用图形方式设计出寄存器的电路原理图; (2)测试波形时用时序仿真实现,先将不同的数据连续写入4个寄存器后,再分别读出;(3)将设计文件封装成器件符号; (4)数据宽度最好为16位。 三、实验设计 1、集成电路芯片 (1)74760:三态输出4*4寄存器堆 74760提供了4个4位寄存器。在功能上可对这4个寄存器分别进行写操作和读操作。在寄存器写操作时,通过WB、WA两个寄存器选择端的组合00、01、10、11选择寄存器。通过GWN写控制端进行三态控制,GWN为低电平时将数据写入端数据D4D3D2D1写入该寄存器。在寄存器读操作时,通过RB、RA两个寄存器选择端的组合00、01、10、11选择寄存器,通过GRN读控制端进行三态控制,在GRN为低电平时,将所选寄存器数据通过Q4Q3Q2Q1进行输出。 “写”功能表

“读”功能表 2、设计原理 要设计16位的存储器组,需要74670芯片4片,在寄存器组工作时,同时对4片74670芯片进行操作,封装后即可作为包含有4个16位寄存器的寄存器组在主机系统中调用。 四、实验结果 1、原理图

寄存器组由4个74670组成,将4个芯片的GWN、WA、WB、GRN、RA、RB 分别连在一起,共同控制4个芯片的读写操作。总共有22个输入端。即 IN[15]、IN[14]....IN[1]、IN[0]和GWN、WA、WB、GRN、RA、RB。16个输出 端。即OUT[15]、OUT[14]...OUT[1]、OUT[0]。

寄存器组的设计与实现

实验三寄存器组的设计与实现 一、实验目的 1. 学习掌握Quartus II 的图形编辑、编译、仿真的设计流程; 2. 学习74670三态输出寄存器堆的使用; 3. 理解寄存器组的工作原理和过程,设计出4个16位寄存器组并对设计的正确性进行验证 二、实验任务及要求 1. 设计出功能完善的寄存器组,并对设计的正确性进行验证。具体要求如下: (1) 用图形方式设计出寄存器组的电路原理图。 (2) 测试波形要用时序仿真实现,先将不同的数据连续写入4个寄存器后,再分别读出。 (3) 将设计文件封装成器件符号。 (4) 数据的宽度最好为16位。 三、实验装置 安装有Quartus II软件的PC机1台 四、设计思想 运用具有三态功能的芯片74670进行设计,74670为4*4(4个4位寄存器)的寄存器堆,使用四片74670并联,同时对4 片74670 芯片进行读写操作控制,从而实现4个16位数据的存储与输出。 五、逻辑电路图

74670芯片图:三态输出的4*4寄存器堆 六、实验结果: 见原理图,波形图以及元件封装图。 1.原理图分析:见设计思想

2.波形图分析: 当RE为1,WE不为1时,实现输入功能,WB,WA控制数据输入到哪个寄存器组当RE为1,WE为1时,出现高阻状态,此时既不输入也不输出 当WE为1,RE不为1时,实现输出功能,RB,RA控制哪个寄存器组的数据输出 3.封装元件的功能说明: d[15..0]16位输入数据 q[15..0]16位输出数据 gwn:写入数据使能控制端,低有效 wa,wb:选择控制端,四种组合控制16位数输入到相应四种寄存器组 grn:读出数据使能控制端,低有效 ra,rb:选择控制端,四种组合控制从四种寄存器组读出相应16位数

8位移位寄存器的电路设计与版图实现要点

8位移位寄存器的电路设计与版图实现 摘要 电子设计自动化,缩写为EDA,主要是以计算机为主要工具,而Tanner EDA则是一种在计算机windows平台上完成集成电路设计的一种软件,基本包括S-Edit,T-Spice,W-Edit,L-Edit与LVS等子软件,其S-Edit以及L-Edit为常用软件,前者主要实现电路设计,后者主要针对的是已知电路的版图绘制,而T-Spice主要可实现电路图及版图的仿真,可以用Tanner EDA实现电路的设计布局以及版图实现等一系列完整过程。本文用Tanner EDA工具主要设计的是8位移位寄存器,移位寄存器主要是用来实现数据的并行和串行之间的转换以及对数据进行运算或专业处理的工具,主要结构构成是触发器,触发器是具有储存功能的,可以用来储存多进制代码,一般N 位寄存器就是由N个触发器构成,移位寄存器工作原理主要是数据在其脉冲的作用下实现左移或者右移的效果,输入输出的方式表现为串行及并行自由组合,本设计就是在Tanner EDA的软件平台上进行对8位移位寄存器的电路设计仿真,再根据电路图在专门的L-Edit 平台上完成此电路的版图实现,直至完成的结果和预期结果保持一致。 关键词:Tanner EDA;L-Edit;移位寄存器,S-Edit

8 bits shift register circuit design and layout Abstract Electronic design automation,referred to as EDA,it is based on computers as the main tool,and Tanner EDA is a kind of software that complete the integrated circuit design on Windows platforms.Its Sub-Softwares include S-Edit,T-Spice,W-Edit,L-Edit and LVS and so on.S-Edit and L-Edit are commonly used software,S-Edit is primarily designed to achieve circuit,the latter is aimed primarily known circuit layout drawing,T-Spice can achieve schematic and layout simulation.We can achieve layout of the circuit design and a series of complete process layout used Tanner EDA tools.In this paper, Tanner EDA tools are mainly designed an 8-bit shift register.The shift register is mainly used for data conversion between parallel and serial, and the data processing tool operation or professional,its main structure is the trigger composition,flip-flop is a storage function,it can be used to store more hexadecimal code,In general N-bits register is composed of N trigger.Working principle of the shift register data under the action of the pulse, mainly the effect of the shift to the left or right,input and output of the way of serial and parallel free combination.This design is in Tanner on the EDA software platform to 8 bits shift register circuit design and simulation,then according to the circuit diagram on special L - Edit platform to complete the circuit layout implementation,until the finish is consistent with the results and expected results. Keywords:Tanner EDA;L-Edit;Shift register,S-Edit

寄存器堆的设计

寄存器堆设计 1、功能概述: MIPS指令格式中的寄存器号是5bits,指令可以访问25=32个32位的寄存器。这样的一堆寄存器“堆在一起”构成一个寄存器堆(Register File)。 2、接口说明: 寄存器堆模块接口信号说明表 脉冲reg, 复位端reg, 写使能端reg, 写地址reg, 写数据reg, 读地址一reg, 读地址二reg, 读数据一reg, 读数据二reg; 设计思路: 1、复位处理是利用标志位flag实现的,当复位时,flag=0;利用i来计数,当i<31 时,flag都等于0;直到i=32,复位完成,flag=1,这时,才可以进行写操作。 2、当复位时,需要32个脉冲才能将寄存器全部复位。复位未完成,flag一直等于 0。若复位未完成时,进行写操作,这时,并不能写进去,便出错了。所以,进行32分频,当寄存器可以写入时,复位已完成。 3、设计电路源代码 //----32个32位寄存器堆 module regfile( input reg, //脉冲 input reg, //复位端 input reg, //写使能端 input [4:0] reg读地址一 input [4:0] reg读地址二 input [4:0] reg, //写地址 input [31:0] reg, //写数据 output [31:0] reg读数据一 output [31:0] reg读数据二

); //---------------------------------- reg [31:0]regfiles[0:31]; //实现寄存功能 reg [4:0] i; //实现flag的变换reg flag; //实现复位的标志reg reg; //实现写数据的脉冲 reg [4:0]count; //---32分频处理 always@(posedge reg or posedge reg) begin if(reg) begin count<=5'd0; reg<=1'b0; end else if(count<5'd16) begin count<=count+1'b1; end else begin count<=5'd0; reg<=~reg; end end //---复位处理 always@(posedge reg or posedge reg) begin if(reg) begin i<=5'd0;

32位移双向位寄存器的设计

EDA课程设计报告题目:32位移位寄存器设计 专业班级:电气工程及其自动化101 姓名: 完成日期:2012年12月 30 日

设计要求 双向移位寄存器 设计要求:完成以下功能特性的双向32 位移位寄存器。同 时要求有使能端,用1602 显示。 32位移位寄存器设计 摘要:移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/ 串行的转换、数值运算以及其他数据处理功能。在本设计中 使用硬件描述语言Verilog,在EDA 工具QuartussII中,设计32位双向移位寄存器硬件电路,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。 关键词:Verilog QuartusII 移位寄存器 1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,移位寄 存器作为计算机的一个重要部件,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用 的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。移位寄存器 正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述 语言Verilog对移位寄存器进行编程实现。现在各种装饰用的流水灯、广告彩灯、宣传画越来越多 的出现在人民的生活当中,这些装饰控制设备多数要用移位寄存器来实现。在计算机中常要求寄存 器有移位功能。如在进行乘法时,要求将部分积右移;在将并行传送的数转换成串行数时也需要移 位。因此,移位寄存器的设计是必要的。 2 总体设计方案 移位寄存器的功能即是对每一个上升沿到来时,并且寄存器使能是时,对输入按照移位模式控 制信号的要求实现输出的左移和右移。首先,要完成双向的32位移位寄存器,就首先必须要实现8

微程序设计实验报告

《计算机组成原理》 实验报告 学院:计算机学院 专业: 班级学号: 学生姓名: 实验日期:2010.12.14 指导老师:\ 成绩评定: 五邑大学信息学院计算机组成原理实验室

实验五微程序设计实验 一、实验目的: 深入掌握微程序控制器的工作原理,学会设计简单的微程序。 二、预习要求: 1.复习微程序控制器工作原理; 2.复习计算机微程序的有关知识。 三、实验设备: EL-JY-II型计算机组成原理实验系统一台,连接线若干。 四、微程序的设计: 1.微指令格式 设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。 微指令的最基本成份是控制场,其次是下地址场。控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。 1)最短编码格式 这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。 2)全水平编码格式 这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。若控制场长n位,则至多可表示n个不同的微操作命令。 采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。 3)分段编码格式是将控制场分成几段。若某段长i位,则经译码,该段可表示2i个互斥的即不能同时有效的微操作命令。 采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。 2.微程序顺序控制方式的设计 微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。下面是常见的两种。 1)计数增量方式 这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。

CPU寄存器的设计

module xianshi(input [3:0]xs,output reg [6:0]l); always @ (xs) begin case(xs) 4'b0000: l<=7'b111_1110; 4'b0001: l<=7'b011_0000; 4'b0010: l<=7'b110_1101; 4'b0011: l<=7'b111_1001; 4'b0100: l<=7'b011_0011; 4'b0101: l<=7'b101_1011; 4'b0110: l<=7'b101_1111; 4'b0111: l<=7'b111_0000; 4'b1000: l<=7'b111_1111; 4'b1001: l<=7'b111_1011; 4'b1010: l<=7'b111_0111; 4'b1011: l<=7'b001_1111; 4'b1100: l<=7'b100_1110; 4'b1101: l<=7'b011_1101; 4'b1110: l<=7'b100_1111; 4'b1111: l<=7'b100_0111; default: l<=7'b000_0000; endcase end endmodule module show(clk,L3,L2,L1,L0,cout,dig); input clk; input[6:0] L3,L2,L1,L0; output reg [6:0]cout; output reg [2:0]dig; reg [9:0]s; initial s<=0; always @(negedge clk) begin if(s<=39) s = s+1; else s = 0; end always @(s)

相关文档
最新文档