当前位置:文档之家› 位同步的FPGA实现

位同步的FPGA实现

位同步的FPGA实现
位同步的FPGA实现

摘要

同步是通信系统中很重要的一个过程,它可以使通信系统更稳定、更可靠、更准确,它是数字通信系统有顺序进行的技术支撑。同步分为位同步、帧同步和载波同步,我们对数字通信信号的同步除了载波同步和帧同步之外,还要进行位同步。位同步也就是保证接收端准确有效抽样判决数字基带信号序列的基础,一般位同步信号从解调后的基带信号中提取出来,同时也可以从已调频带信号当中直接提取位同步信号,一般可以进行一元中央位置采样的决定,最好是在接收元素结束时间采样的决定。位同步有插入导频法(一种外同步法)和直接法(一种自同步法),本文运用了数字锁相法提取位同步电路的方案,以大规模可编程逻辑器件FPGA为主控制器,以VHDL硬件描述语言为主要语言对其进行在线编程,在QuartusⅡ软件工具中进行仿真和调试,以达到功耗低、成本低、效率高的技术要求。

关键词:位同步;数字锁相电路;FPGA;VHDL;QuartusⅡ

ABSTRACT

Synchronization is a very important process in communication system, it can make the system more stable, more reliable, more accurate, it is the digital communication system has the technical support of the order. Synchronization is divided into bit synchronization, frame synchronization and carrier synchronization, we on the digital communication signal in addition to frame and carrier synchronization and bit synchronization. Bit synchronization is the basis to ensure the correct and effective decision receiver sampling digital baseband signal sequence,general synchronization signal is extracted from the baseband demodulated signals, but also can directly extract bit synchronization signal from the frequency band signal has, in general can be a central position sampling decisions, preferably in the receiving elements in the end time sampling decision. Bit synchronization is the pilot insertion method (a kind of external synchronization method) and direct method (a self synchronizing method), this paper uses digital PLL method of bit synchronization circuit extraction, with the large-scale programmable logic device FPGA as the main controller, using the VHDL hardware description language is the main language of the online programming, simulation and debugging in QuartusⅡsoftware tools, to meet the requirements of low power consumption, low cost, high efficiency technology

Keywords: Bit synchronization (symbol extraction process); digital phase locked loop circuit (bit synchronization circuit); FPGA; VHDL; QuartusⅡ

目录

摘要........................................................................................................................... I ABSTRACT.................................................................................................................... II 第1章绪论.. (1)

第2章同步技术 (3)

2.1 同步技术 (3)

2.2 同步的分类 (3)

2.3 位同步 (3)

2.3.1 位同步方法 (4)

2.3.2 位同步系统性能指标 (5)

第3章基于FPGA设计流程的介绍 (7)

3.1 FPGA器件概述 (7)

3.2 FPGA设计操作流程 (7)

第4章微分型位同步的FPGA实现 (11)

4.1 微分型位同步原理 (11)

4.2 微分鉴相模块的VHDL实现 (12)

4.3 双相时钟信号的VHDL实现 (16)

4.4 单稳触发器的VHDL实现 (17)

4.5 控制及分频模块的VHDL实现 (19)

第5章系统仿真与结果分析 (21)

5.1 顶层模块的VHDL实现 (21)

5.2 系统的整体仿真与结果分析 (24)

结论 (25)

参考文献 (26)

致谢 (27)

第1章绪论

在数字通信系统中,要准确的恢复信号,接收端和发送端就必须保持严格同步。在数字通信系统中,同步又称为定时,是指收发双方在时间上保持步调一致。同步系统性能的优劣将直接影响数字通信的质量,甚至会影响数字通信能否正常运行。可以说同步系统是保证数字通信系统正常工作的前提。

早在1970那一年,胎膜早破(可编程只读存储器)是最古老的PLD的出现,它是可编程的只读存储器,它不能被擦除和重写,只能写一次,而在20世纪70年代中期,又出现了PLA(Programmable Logic Array),也就是可编程逻辑阵列。可编程阵列逻辑PAL(可编程逻辑阵列)1977美国AMD装置第一,这是一个熔丝编程。大约在1985年,Lattice公司率先发明GAL(Generic Array Logic),也就是通用阵列逻辑器件,该装置可电擦除,可编程,设置加密位PLD等,然而Altera 公司推出最晚的却是可擦除可编程逻辑器件—EPLD(Erasable PLD),它是在20世纪80年代中期推出的。880年底,格是在系统可编程技术提出了ISP(在系统编程),它还推出了一系列的在系统可编程逻辑器件(EPLD器件)。1985现场可编程的概念被首次提出,赛灵思公司,在同一时间,世界上第一个生产的FPGA (现场可编程门阵列,现场可编程门阵列)装置。而在1995年,Xilinx公司又推出了XC4025,它的可用门数达到了25000门。

PLD的分类:

(1)PROM 即可编程只读存储器(Programmable Read Only Memory)

(2)可编程逻辑阵列PLA(Programmable logic array PLA)

(3)可编程逻辑阵列PAL(Programmable logic array PAL)

(4)通用逻辑阵列GAL(Generic array logic GAL)

(5)即可擦除可编程器件EPLD (Erasable Programmable Logic Device)

(6)复杂可编程逻辑器件CPLD (Complex PLD)

(7)即现场可编程门阵列FPGA(Field Programmable Gates Array)现场可编程门阵(FPGA)是PAL、GAL、EPLD等可编程器件的进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,不仅克服了原本可编程器件门电路门数量有限等缺点,还解决了定制电路的不足。在第二十世纪中叶80年代,FPGA是一种高密度可编程逻辑器件,数组类型,它和我们以前所介绍的可编程逻辑器件是有所不同的。FPGA由逻辑功能块排成阵列组成,还有可编程的互连资源连接等这些逻辑功能块以及还有相应的输入\输出单元来共同实现不同的设计。这其中,FPGA的功能是由逻辑结构的配置数据而决定。同时,

存储在片上SRAM 或熔断器的配置数据。基于SRAM 的FPGA 器件,同时,存储

在片上SRAM 或熔断器的配置数据。用户可以控制加载过程,在现场修改器件的

逻辑功能,即所谓的现场可编程。

Quartus Ⅱ8.0是Altera 公司新近推出的EDA 软件工具,其设计工具完全支持

VHDL 、Verilog 的设计流程,其内部嵌有VHDL 、Verilog 逻辑综合器。第三方的

综合工具,如Leonardo Spectrum 、Synplify Pro 、FPGA Compiler Ⅱ有着更好的综

合效果,因此通常建议使用这些工具来完成VHDL/Verilog 源程序的综合。

Quartus Ⅱ可以直接调用这些第三方工具。同样,Quartus Ⅱ具备仿真功能,也支

持第三方工具,如Modelsim 。此外,Quartus Ⅱ为Altera DSP 开发包进行系统模型

设计提供了集成综合环境,它与MATLAB 和DSP Builder 结合可以进行基于FPGA

的DSP 系统开发,是DSP 硬件系统实现的关键EDA 工具。Quartus Ⅱ还可以与SOPC

Builder 结合,实现SOPC 系统开发

本文主要研究一种位同步电路的FPGA 实现,其研究的主要内容是:

理解位同步的概念及实现方法,建立位同步控制器模型,以FPGA 为主控器,

设计一个位同步控制器,并完成各模块电路测试激励程序的设计。

任务:

(1)掌握常用的位同步方法及实现原理;

(2)完成微分型位同步的设计与仿真;

(3)完成积分型位同步的设计与仿真;

(4)建立数字锁相环法仿真模型并完成功能仿真;

(5)完成数字锁相环法位同步的设计与仿真;

技术要求:

(1)完成测试激励信号源的设计;

(2)相位误差 C ?≤1e θ;

(3)同步带宽KHz f 1≥?;

第2章同步技术

2.1 同步技术

在数字通信系统中,要准确的恢复信号,接收端和发送端就必须保持严格同步。在数字通信系统中,同步又称为定时,是指收发双方在时间上保持步调一致。同步系统性能的优劣将直接影响数字通信的质量,甚至会影响数字通信能否正常运行。可以说同步系统是保证数字通信系统正常工作的前提。

2.2 同步的分类

同步是通信系统中很重要的一个过程,它可以使通信系统更稳定、更可靠、更准确,它是数字通信系统有顺序进行的技术支撑。同步分为位同步、帧同步和载波同步。

(1)载波同步

目前,在广泛采用的相移键控(2PSK,DPSK,MPSK)、最小频移键控(MSK)、正交幅度调制(QAM)等数字调制系统中,接收端解调时都必须提供与发送端调制载波同频同相的相干载波,获取该相干载波的过程称为载波同步(或载波提取)。

(2)位同步

无论是基带传输,还是频带传输,都需要位同步。在数字通信系统中,任何消息都是由一连串数字信号码元序列来传送的。但是由于传输信道不理想和受到噪声的干扰,数字信号必然会产生波形失真。接受时需要知道每个码元的起止时刻,以便在最佳的时刻进行抽样判决。这就要求接收端必须产生一个与接受码元具有相同频率和相同相位(位置)的位定时脉冲序列,即位同步(或码元同步),该码元定时脉冲序列称为位同步脉冲(或码元同步脉冲)

(3)帧同步

在前面介绍的数字时分多路复用系统中,各路信码都是在规定的时隙内传送,形成规定的帧结构,例如PDH基群、二次群、三次群和四次群帧结构。在这些帧结构中,都包括帧同步信号,用于接收端识别出每帧的起始时刻和分接定位以便正确分接。在接收端获得这些帧同步信号的过程称为帧同步(或群同步)。

2.3 位同步

位同步也就是保证接收端准确有效抽样判决数字基带信号序列的基础,一般

位同步信号从解调后的基带信号中提取出来,同时也可以从已调频带信号当中直

接提取位同步信号。对位同步的要求有:①让接收端产生出来的位同步脉冲频率

正好等于发送端的码元速率;②让接收器在正确的时刻接受接受象征例句。一般

可以进行一元中央位置采样的决定,最好是在接收元素结束时间采样的决定。插

入导频法(一种外同步法)和直接法(一种自同步法),是我们位同步的主要方

法。

2.3.1 位同步方法

(1)自同步法

自同步法是数字通信系统中应用最多、最常用的位同步方法。使用这种方法,

接收端可以接收来自好的位同步信号提取的数字信号。它包含滤波法和数字锁相

法,本文章主要运用的就是数字锁相法原理实现位同步的。

① 滤波法

1)波形变换-滤波法

二进制数字信号,如果是不归零的随机序列,它的功率谱中不包含有同步时钟

频率S S T T f /2,/1S =,等部分,不管是单极性的或是双极性的。不能直接从中滤

出S T f /1S =的同步信号分量。但我们可以某些变换的信号,其中包含一个数字信

号的同步信息,然后使用过滤器除去它,原理框图如图2.1所示。图中的波形变

换可以是微分,整流电路。

波形变换

窄带滤波移相脉冲形成位定时脉冲

图2.1 波原理变换滤波方法 2)包络检波-滤波法

在数字微波中继通信系统中,经常采用从中频PSK 信号中直接提取位同步

信息的方法。需要从数字基带信号解调的载波恢复位同步信息的提取,并提取位

同步信息可同时进行从中频PSK 信号。其原理框图如图2.2所示。

全波整流调谐放大移相整形

图2.2 包络检波法原理框图

② 锁相法

所谓数字锁相法是指采用锁相环来提取未能同步信号的方法。数字锁相环提

取位同步电路的原理框图如图2.3框图所示,它是由信号钟、分频器、相位比较

器和控制器等组成。高稳定度的晶体振荡器和脉冲整形电路是信号的主要组成部

分。要想晶体振荡器频率为nf ,则接受码元的速率刚好是T f /1=,在经过整形

电路之后,输出周期性脉冲序列,其周期为n T nf T //10==。

控制器由扣除门(常开)、附加门(常闭)和或门等组成,作用是对信号钟

输出的脉冲序列实行扣除(或者添加)脉冲,它是根据相位比较器输出的控制 相位比较器N 次分频器

附加门

扣除门

或门

整形晶振位同步脉冲

接受码元滞后脉冲超前脉冲

图2.3 数字锁相环的原理框图

脉冲(包括超前脉冲或者是滞后脉冲)来对信号钟输出的脉冲序列实施扣除或者

添加脉冲。

分频器是一个计数器,当控制器在每个输出的N 个脉冲,它会输出一个脉

冲。控制器和分频器连接在一起的相位同步信号调整的结果应用于相位检测器。

周期T 调整之前和之后的相移取决于时钟信号,每个时间步是,相应的最小相位

调整vt π2=?

相位比较器是将接收脉冲序列和位同步信号进行相位比较,这个过程是用于

判别位同步信号到底是超前还是滞后,如果是超前就输出超前脉冲,如果是滞后

就输出滞后脉冲。

(2)插入导频法

一般地,把位定时导频信号插入到数字基带信号功率谱的零点,这种方法叫

做位同步插入导频法,它包含包络调制法还有时域插入位同步法,因为功耗高,

成本高和效率底等特点,故插入导频法一般不采用,本文章主要是利用用数字锁

相位同步法,所以在这里不做多余介绍。

2.3.2 位同步系统性能指标

位判别同步系统的性能指标有很多,一般常见的有,相位误差、同步建立

时间、同步保持时间和同步带宽等。结合数字锁相原理,为了讨论相位的误差

对误码率的影响,下面我们来分析这些主要的性能指标。

(1)相位误差 e θ

所谓的静态相位误差,是指也位同步信号的平均相位和最佳相位之间的相

位差。对于数字锁相法,来提取位同步信号的,位同步脉冲的相位在跳变时调

是引起相位的误差的主要原因。每调节一步,相位就会转变n /2π,n 为分频器

分频的次数,因此最大的相位误差为:

n e /360?=θ (2.1)

显然,n 越大,最大相位误差就越小。

(2)同步建立时间ts

同步建立时间就是指开机或者失去同步后再次重新建立同步所需要的最长

时间,同步建立时间越短越好。当一个同步脉冲的相位和相位差的PI (参考对

的时间是T/2),调整时间会最长。这时需要的最大调整次数为

2/n N = (2.2) 由于接收符号是随机的,为二进制码,每两个相邻的符号(01,10,11,

00),带或不带零的情况在每个半。在数据的两种数字锁相法提取零比脉冲参考

相应的,平均每周期的脉冲,2秒内都有可能进行调整,所以同步建立时间:

nT N T t s =?=2 (2.3)

(3)同步保持时间

当建立同步,如果输入信号中断,甚至“0”和“1”码,锁相环失的调节

作用。脉冲重复频率发送和接收双速范围,以其固有的差频,相位同步信号和

传输,如果时间较长,相位漂移,漂移的要求,直到达到一个最大值。从同步

到失同步所用的时间,叫做同步保持时间:

FK c ?=/1t (2.4)

(4)同步带宽fs ?

同步带宽是指的最大频率,振荡器调整到同步状态允许差。由于数字锁相

环,几乎每2周(2T )调整的时间,所以每次可以调整时间N T /,所以在一个

符号周期平均可以调整时间T / 2N 。对于数字锁相法,同步带宽为: n F f s 2/0=? (2.5)

第3章基于FPGA设计流程的介绍

3.1 FPGA器件概述

现场可编程门阵(FPGA)是PAL、GAL、EPLD等可编程器件的进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,不仅克服了原本可编程器件门电路门数量有限等缺点,还解决了定制电路的不足。在第二十世纪中叶80年代,FPGA是一种高密度可编程逻辑器件,数组类型,它和我们以前所介绍的可编程逻辑器件是有所不同的。FPGA由逻辑功能块排成阵列组成,还有可编程的互连资源连接等这些逻辑功能块以及还有相应的输入\输出单元来共同实现不同的设计。这其中,FPGA的功能是由逻辑结构的配置数据而决定。同时,存储在片上SRAM或熔断器的配置数据。基于SRAM的FPGA器件,同时,存储在片上SRAM或熔断器的配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场可编程。

EDA技术是依赖的FPGA设计的发展,有许多EDA软件支持XilinxFPGA 的开发设计,最广泛的是ISE,以下是ise8。Xilinx FPGA的设计的一般过程如图3-1框图所示。XilinxFPGA的开发设计过程包括:程序设计输入,功能仿真,逻辑综合,时序仿真和设计和配置设备。

3.2 FPGA设计操作流程

(1)功能定义/器件选型

在FPGA设计项目开始之前,必须有系统功能的定义和模块的划分,另外就是要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA 元件库为止。

(2)设计输入

设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并

同步传输与异步传输的区别

同步传输与异步传输的区别 数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时 列,标记一个数据块的开始和结束,一般还要附加一个校验序列,以 同步传输的特点:同步传输的比特分组要大得多。它不是独立地 异步传输是数据传输的一种方式。由于数据一般是一位接一位串行传输的,例如在传送一串字符信息时,每个字符代码由7位二进制位组成。但在一串二进制位中,每个7位又从哪一个二进制位开始算起呢?异步传输时,在传送每个数据字符之前,先发送一个叫做开始位的二进制位。当接收端收到这一信号时,就知道相继送来7位二进制位是一个字符数据。在这以后,接着再给出1位或2位二进制位,称做结束位。接收端收到结束位后,表示一个数据字符传送结束。这样,在异步传输时,每个字符是分别同步的,即字符中的每个二进制位是同步的,但字符与字符之间的间隙长度是不固定的。 异步传输的特点:将比特分成小组进行传送,小组可以是8位的 从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主

异步传输,英文名AsynchronousTransfer Mode,ATM,是实现B-ISDN的一项技术基础,是建立在电路交换和分组交换的基础上的快速分组交换技术。ATM的主要特点是面向连接;采用小的、固定长度的单元(53字节);取消链路的差错控制和流量控制等,这些措施提高了传输效率。。ATM 的突出优点是可以为每个虚连接提供相应的服务质量(QOS),可以有效地支持视、音频多媒体传输,包括语音、视频和数据等;另外,ATM可以实现局域网和广域网的平滑无缝连接。 [2] 异步传输一般以字符为单位,不论所采用的字符代码长度为多少位,在发送每一 异步传输 字符代码时,前面均加上一个“起”信号,其长度规定为1个码元,极性为“0”,即空号的极性;字符代码后面均加上一个“止”信号,其长度为1或者2个码元,极性皆为“1”,即与信号极性相同,加上起、止信号的作用就是为了能区分串行传输的“字符”,也就是实现了串行传输收、发双方码组或字符的同步。 综上所述,同步传输与异步传输的简单区别:1、异步传输是面向字符的传输,而同步传输是面向比特的传输。 2,异步传输的单位是字符,而同步传输的单位是帧。

AJAX案例

div 部分用于显示来自服务器的信息。当按钮被点击时,它负责调用名为loadXMLDoc() 的函数:

Let AJAX change this text

接下来,在页面的 head 部分添加一个 AJAX - 创建 XMLHttpRequest 对象?Previous Page ?Next Page XMLHttpRequest 是 AJAX 的基础。 XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用ActiveXObject)。 XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 创建 XMLHttpRequest 对象

所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建XMLHttpRequest 对象。 创建 XMLHttpRequest 对象的语法: variable=new XMLHttpRequest(); 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象: variable=new ActiveXObject("Microsoft.XMLHTTP"); 为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject : var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } 在下一章中,您将学习发送服务器请求的知识。 AJAX - 向服务器发送请求 ?Previous Page ?Next Page XMLHttpRequest 对象用于和服务器交换数据。 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法: xmlhttp.open("GET","test1.txt",true); xmlhttp.send();

基于FPGA的通用异步收发器设计(串口通信)

FPGA串行通用异步收发器设计 实验目的:1、掌握QuartusII6.0等EDA工具软件的基本使用; 2、熟悉VHDL硬件描述语言编程及其调试方法; 3、学习用FPGA实现接口电路设计。 实验内容: 本实验目标是利用FPGA逻辑资源,编程设计实现一个串行通用异步收发器。实验环境为EDA实验箱。电路设计采用VHDL硬件描述语言编程实现,开发软件为QuartusII6.0。 1、UART简介 UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。 基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。 UART的基本特点是: (1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 (2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。 (3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。 (4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。 (5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。 (6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。 (7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。 (8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。 FPGA UART系统组成:如下图所示,FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块; 2、模块设计:

同步复位和异步复位的区别

针对数字系统的设计,我们经常会遇到复位电路的设计,对初学者来说不知道同步复位与异步复位的区别与联系,今天我对这个问题简要的阐述下,希望对初学者有一定的参考意义,若有不正确的地方愿大家明示。 同步复位原理:同步复位只有在时钟沿到来时复位信号才起作用,则复位信号持续的时间应该超过一个时钟周期才能保证系统复位。 异步复位原理:异步复位只要有复位信号系统马上复位,因此异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用异步复位同步释放。 同步复位与异步复位的优劣:异步复位消耗的PFGA逻辑资源相对来说要少些,因此触发器自身带有清零端口不需要额外的门电路,这是其自身的优势,通常在要求不高的情况下直接使用异步复位就OK。 下面我用verilog来演示下同步复位与异步复位。 同步复位的verilog程序如下: module D_FF (

//Input ports SYSCLK, RST_B, A, //Output ports B ); //========================================= //Input and output declaration //========================================= input SYSCLK; input RST_B; input A; output B; //========================================= //Wire and reg declaration //=========================================

Javascript基础

表JS基本类型有什么?引用类型有什么? 基本类型:number,string,boolean,undefined,null 引用类型:基本类型以外的都是引用类型,如object/array/function/date等等 关于基本类型与引用类型的区别可以详细看看@Naraku_的这篇文章: [ JS 进阶] 基本类型引用类型简单赋值对象引用 概况起来有这么几个要点: 1.我们无法给基本类型的对象添加属性和方法; var m1 = 123; https://www.doczj.com/doc/3c14437919.html, = 'abc'; console.log(https://www.doczj.com/doc/3c14437919.html,); //输出:undefined 2.基本类型对象的比较是值比较,而引用类型对象的比较是引用比较; var m1 = 123, m2 = 123; console.log(m1 === m2); //输出:true var o1 = {}, o2 = {}; console.log(o1 === o2); //输出:false 3.基本类型对象是存储在栈内存中的,而引用类型对象其实是一个存储在栈内存中的一个堆内存地址。 4.基本类型对象赋值时(执行=号操作),是在栈内存中创建一个新的空间,然后将值复制一份到新的空间里。 5.引用类型对象赋值时(执行=号操作),也是在栈内存中复制一份一样的值,但这个值是一个堆内存地址,所以被赋值的那个对象跟前者其实是一个对象。 var o1 = {}; var o2 = o1; https://www.doczj.com/doc/3c14437919.html, = 'abc';console.log(https://www.doczj.com/doc/3c14437919.html,); // --> abc console.log(https://www.doczj.com/doc/3c14437919.html,); // --> abc o2.age = '123';console.log(o1.age); // --> 123console.log(o2.age); // --> 123 JS中的常见对置对象类

基于fpga的串口通信

基于FPGA的串口通信设计 学号: 姓名: 班级: 指导教师: 电子与控制工程学院

一、串行通信系统 1.1概述 在计算机系统和微机网络的快速发展领域里串行通信在数据通信及控制系统中得到广泛的应用。UART Universal AsynchronousReceiver Transmitter 控制系统中广泛使用的一种全双工串行数 UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART 利用Verilog-HDL语言对这三个功能模块进行描述并加以整合UART是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C UART实现。如8250、8251、NS16450等芯片都是常见的UART 如FIFO有时我们不需要使用完整UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成从而使整个设计更加紧凑、稳定且可靠。本文应用EDA FPGA/CPLD器件设计与实现UART。 通信指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方 不同的环境下有不同的解释在出现电波传递通信后通信(Communication)被单一解释为信息的传递是指由一地向另一地进行信息的传输与交换其目的是传输消息。然而通信是在人类实践过程中随着社会生产力的发展对传递消息的要求不断提升使得人类文明不断进步。在各种各样的通信方式中利用“电”来传递消息的通信方法称为电信(Telecommunication) 1.2串行通信简介 计算机与计算机,计算机与外部设备进行数据交换也称为通信,一般有两种方式并行通信和串行通信。信息的各位数据被同时传送的通信方法是并行通信并行通信依靠I/O接口来实现。并行通信中数据有多少位就需要多少条信号传输线。这种通信方式快,但由于传输线较多,所以成本较高,仅适合近距离通信通常传送距离小于30米。当距离大于30米时则多采用串行通信方式串行通信是指

同步传输与异步传输的区别

在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。 1. 异步传输(Asynchronous Transmission):异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。 异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。 异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。 2. 同步传输(Synchronous Transmission):同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。 数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。 帧的最后一部分是一个帧结束标记。与同步字符一样,它也是一个独特的比特串,类似于前面提到的停止位,用于表示在下一帧开始之前没有别的即将到达的数据了。

Ajax的实现步骤

AJAX基本实现步骤 AJAX是异步通信的一种技术,主要实现技术是javascript+xml+html+css+服务端。在这里主要讨论客户端的操作。以下是客户端的实现步骤: 1、创建XMLHttpRequest对象(需要考虑各浏览器兼容的问题) 2、使用XMLHttpRequest对象打开一个连接(指定连接方式和连接地址以及是否同步) 3、设置请求的头部(请求的类型和请求的编码格式) 4、设置回调函数 5、发送请求 6、更新页面显示 实现详解: (1)、创建XMLHttpRequest对象(需要考虑各浏览器兼容的问题)。 具体实现: var xmlHttp; function createXMLHttpRequest() { //建立XMLHttpRequest try { xmlHttp= new XMLHttpRequest(); } catch (e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (ee) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err) { xmlHttp = false; } } } if(!xmlHttp) alert("不能创建XMLHttpRequest对象"); } createXMLHttpRequest(); 基本上,上面的码就能够实现在大部分浏览器中创建XMLHttpRequest对象。这一步的作用就是为了创建XMLHttpRequest对象,所以基本上不需要进行更改。 (2)、使用XMLHttpRequest对象打开一个连接(指定连接方式和连接地址以及是否同步) 具体实现: xmlHttp.open("POST","URL ",true); 调用XMLHttpRequest对象的open方法。第一个参数是提交数据的方式,取值为post/get;第二个参数是提交的目标页面(也就是用于处理提交数据的页面);第三个参数指定是否请求是异步的-缺省值为true,为了发送一个同步请求,需要把这个参数设置为false。 (3)、设置请求的头部(请求的类型和请求的编码格式)

串口通信FPGA实现

FPGA设计与应用 串口通信实验报告 班级:1105103 姓名:苏林效 学号:1110510321 日期:2014年10月29日

实验性质:验证性实验类型:必做 开课单位:电信院学时:2学时 一、实验目的 1、了解串口通信的基本原理; 2、掌握锁相环的基本原理和使用方法; 3、掌握起始位和停止位的含义及实现方法; 4、掌握VHDL状态机的基本使用方法; 5、掌握基本的接口设计和调试技巧; 二、实验准备 2.1 串口通信原理(1分) 串口通信是以字节为单位,按位传输数据和接收数据的。 先看一下发送数据:串行线缆的两端事先约定好串行传输的参数(传输速度、传输格式等),之后进行传输,①当没有数据传输的时候,发送端向数据线上发送“1”;②当要传输数据时,发送端先发送一个“0”来表示要传输数据了,这样当接收端检测到“0”便可以知道有数据到来了;③开始传输后,数据以约定的速度和格式传输;④每次传输完成一个字节之后,都在其后发送一个停止位“1”。这样,发送数据就结束了。 再来看接收数据,初始状态是等待状态,接收的一直是“1”,当检测到0时进入检验状态,在检验状态下如果再检测到0(一般采用过采样)则进入接收数据状态,当接收完8位比特数后判断是否有停止位,如果有则此字节接收结束,重新进入等待状态准备接受下一字节。 2.2 锁相环的基本原理(1分) 锁相环是以锁定输入载波信号的相位为目标的一种载波环实现形式。它由三部分组成:鉴相器(PD)、环路滤波器(LPF)和压控振荡器(VCO)。如上图。 锁相环的工作原理:压控振荡器的输出经过采集并分频,后与基准信号同时

输入鉴相器。鉴相器通过比较上述两个信号的相位差,输出结果通过环路滤波器,滤除噪声和高频分量,然后输出一个直流脉冲电压,用它来控制VCO ,使它的频率改变,使()lim 0c p t θ=。经过较短时间后,VCO 的输出稳定于某一值。环路一旦进入锁定状态后,压控振荡器的输出信号与环路的输入信号(参考信号)相位时刻保持一致。 三、代码及测试 3.1程序及分析(2分) 顶层原理图如上所示,主要包括三个模块,锁相环(输出57.69MHz )、分频(输出接受时的10倍采样速率和数码管显示速率)、接受(按57.6kbps 接受从串口发来的数据)。 分频模块代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIV IS PORT(CLK : IN STD_LOGIC; --锁相环输出时钟57.69M COUT1 : OUT STD_LOGIC; --分频器输出采样时钟576k COUT2 : OUT STD_LOGIC);

同步通信与异步通信区别

同步通信与异步通信区别 1.异步通信方式的特点:异步通信是按字符传输的。每传输一个字符就用起始位来进来收、发双方的同步。不会因收发双方的时钟频率的小的偏差导致错误。这种传输方式利用每一帧的起、止信号来建立发送与接收之间的同步。特点是:每帧内部各位均采用固定的时间间隔,而帧与帧之间的间隔时随即的。接收机完全靠每一帧的起始位和停止位来识别字符时正在进行传输还是传输结束。 2.同步通信方式的特点:进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。优点是可以实现高速度、大容量的数据传送;缺点是要求发生时钟和接收时钟保持严格同步,同时硬件复杂。可以这样说,不管是异步通信还是同步通信都需要进行同步,只是异步通信通过传送字符内的起始位来进行同步,而同步通信采用共用外部时钟来进行同步。所以,可以说前者是自同步,后者是外同步。---------------------------- 同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不

同,通常含有若干个数据字符。 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所 有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。 同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。 异步通信原理 异步通信是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,

jQuery调用AJAX异步操作超清晰教程

JQUERY AJAX异步操作详细说明 AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和XML)。它并非一种新的技术,而是以下几种原有技术的结合体。 1)使用CSS和XHTML来表示。 2)使用DOM模型来交互和动态显示。 3)使用XMLHttpRequest来和服务器进行异步通信。 4)使用javascript来绑定和调用。 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Request)/应答(Response)模型: 1)不需要用户等待服务端响应。在异步派发XMLHttpRequest请求后控制 权马上就被返回到浏览器。界面不会出现白板,在得到服务器响应之前 还可以友好的给出一个加载提示。 2)不需要重新加载整个页面。为XMLHttpRequest注册一个回调函数,待 服务器响应到达时,触发回调函数,并且传递所需的少量数据。“按需 取数据”也降低了服务器的压力。 3)不需要使用隐藏或内嵌的框架。在XHR对象之前,模拟Ajax通信通常 使用hack手段,如使用隐藏的或内嵌的框架(