总线控制逻辑的VHDL设计仿真与测试

发布者:MysticGlow最新更新时间:2016-09-28 来源: eccn关键字:总线控制逻辑  VHDL  设计仿真 手机看文章 扫描二维码
随时随地手机看文章

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

  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所示:

用VHDL进行描述并在MAX

  从图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  设计仿真 引用地址:总线控制逻辑的VHDL设计仿真与测试

上一篇:CDMA2000与1x/EV-DO移动终端测试的要求和方法
下一篇:基于LXI的多总线融合的自动测试系统

推荐阅读最新更新时间:2024-03-30 23:24

CMC Microsystems为数百位加拿大大学研究员提供Tensilica XtensaLX2设计的FPGA原型仿真技术
美国加州Santa Clara 2007年5月14日讯 - Tensilica 公司日前宣布,CMC Microsystems公司已升级对Tensilica公司Xtensa LX2 处理器生成器的授权,使得研究员可以通过加拿大SOC研究网络(SOCRN)获得Xtensa LX2进行FPGA原型验证设计的能力。 该技术通过降低功耗和增加芯片功效帮助优化设计,使36所参加了SOCRN的大学中的研究员能够为包含有定制Xtensa LX2 处理器的设计创建基于FPGA的硬件仿真原型。 该协议将使含有Xtensa 可配置处理器技术的片上系统(SoC)设计的使用和应用更加广泛。 根据 Tensilica公司大学计划,所有大学的学生、研究员和教
[焦点新闻]
一种DSP内嵌DARAM的电路设计与ADvance MS仿真验证
  在复杂的系统级微处理器设计中,存储器负责系统程序和数据的储存,是整个系统的重要组成部分,在CPU执行指令的过程中,要经常被访问存储器,所以存储器的读写速度会影响指令执行的速度。RAM是系统芯片中常用的存储器,用来存放数据,普通的RAM在一个时钟周期内只能进行一次读或写操作,即CPU在一个时钟周期内只能访问存储器一次,称为单存取随机存储器(Single-Access On-Chip RAM),而双存取随机存储器(Dual-Access On-Chip RAM)可以在一个吋钟周期内进行数据的读和写两次操作。利用 DARAM 一个周期内“双存取”的特点,可以大幅提高CPU执行指令的速度,进而提高整个系统的性能。   1 DARAM整
[嵌入式]
一种DSP内嵌DARAM的电路<font color='red'>设计</font>与ADvance MS<font color='red'>仿真</font>验证
S波段固态功率放大器的仿真设计
  1 引言   微波功率放大器作为发射机单元中至关重要的部件在许多微波电子设备和系统中广泛应用,如现代无线通信、卫星收发设备、雷达、遥测遥控系统、电子对抗等。传统的大功率放大器用真空管来实现,随着半导体器件的不断发展,固态器件的优势不断明显,微波固态功率放大器具有体积小、工作电压低、稳定性高、良好的可重复性等优点在许多领域倍受青睐。本文研究的是S波段的大功率固态放大器,输出功率是180W的连续波,工作频率为2.0GHz到2.3GHz,功率增益大于13dB,增益平坦度小于+/-1.0dB,1 dB增益压缩点处的输出功率为50dBm,饱和输出功率大于53.4dBm,功率附加效率大于48%。   2 匹配电路的设计   由于功率放大器
[电源管理]
S波段固态功率放大器的<font color='red'>仿真</font><font color='red'>设计</font>
一种多功能电子密码锁的VHDL设计
摘要:利用EDA技术,在可编程逻辑器件CPLD上实现了一种多功能电子密码锁。为弥补传统密码锁的不足,进一步提高可靠性,该系统中所有数据的存储、运算都完全由硬件实现。利用VHDL语言对电路进行行为描述,QuartusⅡ软件中的EDA工具进行仿真及下载。整个设计过程采用自顶向下方案,设计效率高,开发成本低。采用了MAXⅡ系列的CPLD作为硬件核心,其功耗低,逻辑执行速度远高于单片机,在安防行业中有较强的市场竞争力。 0 引言   传统机械锁的防盗功能差,在现代高科技安防系统中无法起到作用,已逐步被更可靠、更智能的电子数字密码锁代替。目前市场上的大部分密码锁产品是以单片机为核心的,利用软件进行控制,实际应用中系统稳定性较差
[安防电子]
一种多功能电子密码锁的<font color='red'>VHDL</font><font color='red'>设计</font>
汽车尾灯VHDL设计
1.系统设计要求     用6个发光管模拟6个汽车尾灯(左右各3个),用4个开关作为汽车控制信号,分别为:左拐、右拐、故障和刹车。车匀速行驶时,6个汽车尾灯全灭;右拐时,车右边3个尾灯从左至右顺序亮灭;左拐时,车左边3个尾灯从右至左顺序亮灭;故障时车6个尾灯一起明灭闪烁;刹车时,6个尾灯全亮 2.系统设计方案     根据系统设计要求,采用自顶向下设计方法,顶层设计采用原理图设计,它由主控模块、左边灯控制模块和右边灯控制模块三部分组成。 3参考VHDL源程序     (1) 主控制模块     说明:此程序为系统主控制模块。当左转时,lft信号有效;右转时,rit信号有效;当左右信号都有效的时,lr有效。
[嵌入式]
基于VHDL的I2C总线控制设计
摘要:从状态机的角度,介绍一种I2C控制核的VHDL设计方法。将其嵌入到FPGA中,用于实现与TMS320C6000系列DSP的接口,并配合DSP的软件完成对视频采集与显示处理系统中数字视频编、解码器工作模式寄存器的配置及其状态查询。着重介绍I2C控制核的总体设计方案,详细描述其内部命令状态机和时序状态机的工作原理及相应的VHDL代码。此外,介绍I2C控制核与DSP相互通信中断处理机制的VHDL实现方法。最后,给出在Xilinx公司的ISE6.1+ModelSimXE5.7c软件平台中进行EDA的综合结果与时序仿真图。 关键词:I2C总线 状态机FPGA VHDL DSP 控制器核 引言 I2C总线是双向、两线、串行、多主控(mul
[半导体设计/制造]
低容量可逆调速系统设计仿真实现(一)
1.引言   随着社会经济的发展,直流电动机在理论和实践上更加成熟,例如双闭环调速系统具有极好的运行和控制性能,在工业生产中始终占有相当的比例。由于资金条件有限和本着研究开发的态度大多采用仿真来进行模仿。   目前在matlab软件仿真中,很多公式和参数计算过后都需要通过建模,本文直接把得到的参数通过程序运算,输入到所得到的的模型中,简化了程序,节约了大量的时间,获得一定的经济效益,通过simulink仿真,使得模型更简明,本文主要介绍电源的选择,控制电路的设计,ACR和ASR的参数设计、系统仿真实现分析,通过满足一定的参数,实现电动机的运转,达到预期效果。   2.双闭环控制电路设计   2.1 转速调节器(ASR)的
[模拟电子]
低容量可逆调速系统<font color='red'>设计</font>与<font color='red'>仿真</font>实现(一)
CPLD被STM32读写VHDL程序
1 2 3 --本程序用来测试STM32对CPLD的读写操作 4 5 --测试功能如下: 6 7 --向0x05地址写入0x01,LED灯停止闪烁,写入其他数据闪烁继续 8 9 --0x03,0x04寄存器为定值,可以通过STM32读取然后使用串口输出看看是否一致 10 11 12 13 --文件名:AD.vhd 14 15 library ieee; 16 17 use ieee.std_logic_1164.all; 18 19 use ieee.std_logic_unsigned.all; 20 21 22 23 entity AD is 24 25 port
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved