当前位置:首页 > 测试测量 > 测试测量
[导读]   计算机系统是由许多具有独立功能的模块互相连接而成的。随着计算机的不断发展和广泛应用,各生产厂商除了向用户提供整套系统外,还设计和提供各种功能的插件模块,让用户根据自己的需要构成自己的应

  计算机系统是由许多具有独立功能的模块互相连接而成的。随着计算机的不断发展和广泛应用,各生产厂商除了向用户提供整套系统外,还设计和提供各种功能的插件模块,让用户根据自己的需要构成自己的应用系统或扩充原有的系统。这些模块间需要互相通信,需要有高速、可靠的信息交换通道,这就是总线。总线使得计算机各模块之间的信号线可以直接互相连接,提高了信号传输的速度。

  VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,在电子设计领域得到广泛应用,最新版本为IEEE标准的1076-1993版,由IEEE在1993年公布。VHDL主要用于描述数字系统的结构、行为、功能和接口。本文用VHDL的有限状态机来描述和仿真计算机总线控制器的逻辑行为。

  1 总线在总线控制器的控制下工作

  在计算机系统各模块之间的信息通信过程中,每一时刻只能有一组信息在总线上传输。如果有多组信息要传输,只能在总线控制器的控制下,按顺序分别传输,这样对每一组信息的传输就形成一个传输周期,这个周期包括申请分配阶段、寻址阶段、数据交换阶段和撤消阶段。申请分配阶段由主模块提出总线使用申请,经总线控制器批准后获得总线使用权;之后主模块把从模块地址放置到地址总线上,即寻址阶段;从模块接收到地址后做好相应的通信准备工作,并与主模块建立通信,进行数据交换;数据交换结束后,主模块通知总线控制器,并交还总线使用权,即撤消阶段。常用的总线通信方式有同步通信方式和异步通信方式两种。

  2 同步通信方式的有限状态机描述和仿真

  在同步通信方式里,模块之间的通信传输周期是固定的。有精确稳定的系统时钟作为传输周期的“标尺”,通信双方严格按照时钟标尺进行各种操作,以主模块(如CPU)从从模块(如内存)读取数据为例,总线控制器框图如图1所示。

  这种方式下总线的控制状态转移图如图2所示。

  用VHDL进行描述并在MAX+PLUSII上进行仿真,结果如图3所示:

  从图3可以看出,控制器一开始处于状态0(空闲状态),此时总线批准控制信号grant、片选信号csbar、地址有效信号effect和读控制信号rbar均处于无效的高电平;一旦有主模块发出总线请求,即request信号为低电平,控制器转移到状态1,总线批准控制信号有效,申请得到批准,这里假设主模块只有一个,即不存在多个主模块竞争使用总线的情况;进入状态2后,主模块发出地址,这里假设地址为“AD”,同时置片选信号csbar和地址有效信号effect为有效状态,从模块接收到地址有效信号和片选信号后,根据主模块发出的地址进行数据准备工作;进入状态3后,主模块发出读控制信号,即置rbar信号为有效状态;进入状态4后,假设从模块数据准备就绪,并发送到数据总线上,这里假设数据为“DA”,主模块读取数据;进入状态5后,主模块读数据完毕,发出撤消信号,即置withdraw信号为有效状态,之后返回状态0,所有控制信号都返回到无效状态;至此,一个数据传输周期结束。在传输过程中,各个模块的动作严格按照系统时钟同步进行。

  本设计下载到GW48—GK2/PK2 EDA实验开发系统,该系统目标芯片为EP1K100QC208-3,按照结构图No.0进行硬件测试,实验系统提供测试引脚的限制,只测试地址和数据均为4位(测试低4位)的情况,结果如图4所示。

  从图4中可以看出,在状态0,首先设置withdraw、request和rst为“1”,依次对应图中下方3个发光二极管,此时4个输出控制信号rbar、effect、csbar和grant为“1”,这4个信号按次序组成一个4位二进制数据,该数据经过译码器译码后由数码管显示输出结果,因4个信号均为“1”,故应该显示结果“F”,如图中上面的数码管显示“F”(右边第3个数码管)。第2步,按照图3所示时序设置rst和request信号并由按键3输入一个时钟脉冲,进入状态1,此时grant信号为“0”,4个输出控制信号组合为“1110”,可以看到图中数码管显示“E”,表明主模块申请总线被批准。第3步,设置地址信号addr1(低4位)为“1010”,即“A”,如图中数码管下方两个发光二极管所示,并输入一个时钟脉冲,进入状态2,该地址信号由addr2经译码器译码后由数码管显示出来,如图中上面最右边的数码管显示“A”,在该状态中地址有效信号effect和片选信号csbar均为“0”,此状态下主模块发出地址有效信号和片选信号,4个输出控制信号组合为“1000”,从图中可以看到数码管显示数字“8”。第4步,输入一个时钟脉冲进入状态3,该状态下主模块发出读控制信号,即置rbar信号为“0”,4个输出控制信号全部为“0”,如图中数码管显示“0”。第5步,设置数据信号get_data(低4位)为“1101”,即“D”,如图中数码管下方两个发光二极管所示,并输入一个时钟脉冲,进入状态4,该数据信号由data经译码器译码后由数码管显示出来,如图中上面右边第2个数码管显示“d”。第6步,输入一个时钟脉冲,进入状态5,主模块读取数据完毕,并发出撤消信号,1个数据传输周期结束;之后如果再输入一个时钟脉冲则回到状态0。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

当前最流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相当多的拥护者。VHDL 语言由美国军方所推出,最早通过国际电机工程师学会(IEEE)的标准,在北美及欧洲应用非常普遍。而 V...

关键字: vhdl verilog

    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2P

关键字: vhdl i2c 串行总线

  目前,许多厂商都提供通用的串行通信芯片,其传输方式分为同步方式和异步方式。其中,异步芯片大多与INTEL的8250芯片兼容;而同步方式,由于一般涉及到所支持的传输协议(BSC、HDLC、SD

关键字: FPGA cpld vhdl 通信芯片

当今汽车行业所面临的挑战与电信行业十多年前所经历的类似。混合动力电动汽车和燃料电池汽车等新技术也促进了研发活动的日趋活跃,正如我们在手机演变成多媒体设备的进程中所看到的一样。同样,电信业面临着功

关键字: vhdl 仿真 系统设计

0 引言 VHDL超高速集成电路硬件描述语言是随着集成电路系统化和高度集成化逐步发展起来的,是一种用于数字系统设计、测试,面向多领域、多层次的IEEE标准硬件描述语言。它从20世纪70年

关键字: EDA vhdl 医疗电子

在使用lattice domiand时,出现了下面示图现象,一个输入信号总是出现在unconnected栏里,也即意味着你不能绑定管脚。logical net 'clkin' has no load.

关键字: lattice vhdl

一个VHDL程序代码包含实体(entity)、结构体(architecture)、配置(configuration)、程序包(package)、库(library)等。一、数据类型1.用户自定义数据类

关键字: vhdl

1、--GENERIC可以用来指定一些全局的变量,它要放在entity之后,port口映射之前entity ethernet isgeneric(--GENERIC语句指定的参数是全局的MIIM_PH

关键字: vhdl
关闭
关闭