首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
用VHDL设计专用串行通信芯片
来源:本站整理  作者:佚名  2009-07-17 09:59:19



(5)WTHR.VHD

WTHR.VHD作为整个芯片的发送模块,其中包括发送保持器、并/串转换。

端口描述如下:

entity wthr is

port (sen:in STD_LOGIC; --发送使能信号

whtr: in STD_LOGIC; --写发送保持器信号

dbus: in STD_LOGIC_VECTOR (7 downto 0;

--8位数据线,单向

rsthr:in STD_LOGIC; --清发送保持器

thre:out STD_LOGIC; --发送保持器数据空

thre:out STD_LOGIC; --发送串行数据线

clkout:out STD_LOGIC; --发送数据同步时钟信号

sclk: in STD_LOGIC); --波特率发生器产生的分频信号

end wthr;

当发送保持器无数据时,thre信号有效,通知CPU可写。一旦CPU写入数据且sen有效,便根据波特率发生器产生的sclk信号将数据并/串转换,并通过dout和clkout将串行数据和同步时钟发送。

    仿真波形如图5。部分实现代码如下:

process (rsthr,sclk,sen,sef) --parallel data to serial data variable l:integer range 0 to 7;

begin

if rsthr='1' then

m<=0;

1:=7;

sef<='1';

elsif wthr='1'then

sef<='0';

elsif sen='1'and sef='0' then

if sclk'event and sclk='1' then

dout<=w_p(1);

m<=m+1;

l:=1-1;

if m=7 then

m<=0;

1:=7;

esf=<='1';

end if;

end if;

end if;

end process;

3 实现难点及使用VHDL应注意的一些问题

由于VHDL语言是描述硬件行为的,相对其它开发软件的高级语言而言,在编程过程中有一些特殊性,所以经常会出现语法正确但无法综合的问题。其原因多半因为编程者对硬件内部的工作原理了解不够,写出的代码硬件无法实现。通过这块芯片的设计,在此总结出一些应注意的问题,供大家参考:

(1)在一个进程中只允许一个信号上升沿作为触发条件。

(2)信号值改变后要经过一个小的延时才能生效,同个信号不能在多个进程中赋值(因为多个信号源不能同时对同一个信号驱动)。

(3)时序电路和组合电路最好不要在同一个进程中,以免费资源。

(4)一个功能模块最好按上升沿信号分多个进程完成,各进程间用信号联系。

(5)同一个信号在进程中的值改变后,要注意该值改变前后该进程中其它变量的变化,避免逻辑死锁。

(6)在顺序语句中,注意信号因赋值后需延时改变而与变量的不同。

(7)设计双向三态数据线时,内部数据线最好读写分开。与外部结合时,不同读数据线之间,读写数据线之间应使用三态门,且由读信号控制。

本设计由于采用了VHDL语言作为输入方式并细合可编程逻辑门阵列CPLD,大大缩短了设计周期,提高了设计的可靠性、灵活性,使用户可根据自己的需求,方便、高效地设计出适合的串行通信芯片。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:167,113.30000 毫秒