VHDL并串转换

VHDL并串转换

ID:46610019

大小:266.57 KB

页数:11页

时间:2019-11-26

VHDL并串转换_第1页
VHDL并串转换_第2页
VHDL并串转换_第3页
VHDL并串转换_第4页
VHDL并串转换_第5页
资源描述:

《VHDL并串转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、YibinUniversity物理与电子工程学院题目:基于FPGA的51单片机总线接口专业:电子信息科学与技术姓名:戢红伟学号:130303035年级:2013级班级:三班指导老师:李庆时间:2015年6月23日一、电路功能与要求1、本电路能实现FPGA与单片机的部分接口功能,使单片机与FPGA能进行简单通信的功能,即单片机通过‘ALE’、‘WR’、‘P0’、‘P2’管脚与FPGA相连接,通过这几个控制引脚,控制FPGA进行并串转换。同时,在FPGA上自带有‘REST’与‘CLK’,实现对系统的清零复位,保证串行输出有序进行。P2P2数据输

2、出同步时钟S_CLKP0P0ALE串口数据输出ALES_DATAWRWR数据发送结束CLCLKLD复位REST单片机FPGA2、时序3、具体功能单片机是一个拥有多扩展模块的芯片三种总线,分别是地址总线、数据总线、控制总线。本题中当‘ALE’来一个高电平‘1’时,判断地址总线‘P2&P0’的值是否为“7FF0H”,若不为“7FF0H”,则继续等待下一个ALE高电平的到来。若为“7FF0H”,则判断‘WR’是否为高电平‘1’,则继续等待‘WR’高电平的到来。若为高电平,则将数据总线‘P0’数据送入FPGA内部进行“并—串”转换。二、设计思路需要

3、用到的引脚名:输入:ALE:地址锁存信号WR:数据写信号P2:高八位地址输入口P0:低八位地址/数据分时复用输入口REST:复位输出:S_DATA:串行数据输出口S_CLK:串行数据输出LD:转换完成信号内部传输/通信控制:DATA:锁存器数据(输出)与数据转换数据(输入)端口BUSY:数据转换器忙碌信号START:开始转换信号1、数据锁存器首先判断‘ALE’是否为高电平‘1’,若不为高电平则继续等待,若为高电平则判断地址‘P2&P0’是等于“7FF0H”,若等于,则继续等待ALE下一个高电平‘1’的到来。若等于,则判断‘WR’是否为高电平

4、‘1’,若不为‘1’,则从头开始。若为‘1’,则查询“数据转换”部分是否空闲信号‘BUSY’是否为‘0’,若不为‘0’,则在从头再来。若为‘0’,则将‘P0’口数据送往输出口输出并锁存,并将开始转换信号‘START’置‘1’,以通知“数据转换”部分开始转换。2、数据转换器判断‘START’是否为‘1’,若为‘0’,继续等待。若为‘1’,将‘BUSY’信号置‘1’,转换完成信号‘LD’置‘0’,并将数据转换成串行数据从‘S_DATA’输出(从高到低),同时在‘S_CLK’输出同步时钟信号。八位数据发送完时将转换完成信号‘LD’置‘1’以提醒后

5、级电路数据发送完成。三、程序1、实体一(数据锁存器)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLATCH_ADDISPORT(ALE,WR,BUSY:INSTD_LOGIC;--输入信号端口P2,P0:INSTD_LOGIC_VECTOR(7DOWNTO0);--地址/数据输入端口START:OUTSTD_LOGIC;--控制信号输出端口DATA:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--数据输出端口ENDLATCH_ADD;ARCHITECTUREBEHAVEOFLA

6、TCH_ADDISSIGNALADD:STD_LOGIC_VECTOR(15DOWNTO0);--地址锁存信号BEGINPROCESS(ALE,WR,P0,P2)BEGINIF(ALE='1')THEN--判断ALE是否为‘1’ADD<=P2&P0;--锁存地址IF(ADD="0111111111110000")THEN--判断地址IF(WR='1')THEN--判断WR是否为‘1’IF(BUSY='0')THEN--判断数据转换器是否忙碌DATA<=P0;--锁存数据START<='1';--置位START以通知数据转换器开始转换ELSE

7、START<='0';--数据转换器忙碌,不锁存数据ENDIF;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDBEHAVE;实体一电路接口图:2、实体二(数据转换器)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBING_CHUANISPORT(CLK,REST,START:INSTD_LOGIC;--CLK为输入时钟信号,CLR=0时清零,START=1开始转换DATA:INSTD_LOGIC_VECTOR(7DOW

8、NTO0);--八位数据信号BUSY,S_DATA:OUTSTD_LOGIC;--STOP=时正在转换,S_DATA串行数据输出S_CLK,LD:BUFFERSTD_LOGIC)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。