求verilogHDL语言大神,解释一下程序意思,最好能每行注释一下,感激不尽。

求verilogHDL语言大神,解释一下程序意思,最好能每行注释一下,感激不尽。,第1张

module HDLC(RXD,RXCLK,RXSET,TXCLK,TXD,TXDS) //module 头,verilog 95风格

input RXD//输入信号

input RXCLK//输入时钟

input RXSET//输入的复位信号

output[7:0]TXD//输出的数据,8bit

reg [7:0]TXD//输出寄存器

output[2:0]TXDS//输出信号

reg [2:0]TXDS//输出寄存

output TXCLK//输出的时钟

regTXCLK //输出时钟寄存

reg RXD_D1//输入的数据寄存器。单比特

reg RXD_D2

reg RXD_D3

reg RXD_D4

reg RXD_D5

reg RXD_D6

reg RXD_D7

reg RXD_D8//输入的数据寄存器。单比特

//在接收rxclk下,每个时候域接收rxd数据,寄存一级

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D1<=1'b0

else RXD_D1<=RXD

//在接收rxclk下,每个时候域接收rxd数据,寄存二级,即打两拍

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D2<=1'b0

else RXD_D2<=RXD_D1

//寄存三级,即打三拍

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D3<=1'b0

else RXD_D3<=RXD_D2

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D4<=1'b0

else RXD_D4<=RXD_D3

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D5<=1'b0

else RXD_D5<=RXD_D4

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D6<=1'b0

else RXD_D6<=RXD_D5

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D7<=1'b0

else RXD_D7<=RXD_D6

//寄存8级,即打8拍,

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

RXD_D8<=1'b0

else RXD_D8<=RXD_D7

///////////////////////////////////////////////////////////////////

////////////////////search for 01111110 indacation/////////////////

///////////////////////////////////////////////////////////////////

reg [2:0]l_cs,l_ns//定义2个3bit的状态信号,当前态l_cs,下一个状态l_ns

//3bit的原因在于需要选择的数据为0~7,只需3bit

parameter s_hunt=3'd0,s0=3'd1,s1=3'd2,s2=3'd3,s3=3'd4,s4=3'd5,s5=3'd6,s6=3'd7

//定义初始态s_hunt=0’

//否则选择将下一个状态l_ns赋给当前态l_cs

always @(posedge RXCLK or negedge RXSET)

if(!RXSET)

l_cs<=s_hunt

else l_cs<=l_ns

//下面的状态机用于寻找序列"0111111"

//如果找到当前的要寻找的输入数,则跳入到下一个状态,否则跳到s0态,开始新一轮的寻找,

//通过这种方法寻找到所需要的序列“01111110”

always @(l_cs or RXD)

case(l_cs)

s_hunt:begin

if(RXD==1'b0)

l_ns=s0

else l_ns=s_idle

end

s0:begin

if(RXD==1'b1)

l_ns=s1

else l_ns=s0

end

s1:begin

if(RXD==1'b1)

l_ns=s2

else l_ns=s0

end

s2:begin

if(RXD==1'b1)

l_ns=s3

else l_ns=s0

end

s3:begin

if(RXD==1'b1)

l_ns=s4

else l_ns=s0

end

s4:begin

if(RXD==1'b1)

l_ns=s5

else l_ns=s0

end

s5:begin

if(RXD==1'b1)

l_ns=s6

else l_ns=s0

end

s6:l_ns=s_idle

endcase

//定义了寄存器SE_ind,

//该部分逻辑为组合逻辑,当找到所需要找的序列“01111110”时,输出SE_ind为1,否则为0;

//该信号相当于一个指示信号。是否找到所需的序列

reg SE_ind

always @(l_cs or RXD)

if(l_cs==s6 &&RXD==1'b0)

SE_ind=1'b1

else SE_ind=1'b0

一、数据封装的过程大致如下:

1、用户信息转换为数据,以便在网络上传输。

2、数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接。

3、数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输。

4、数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。

5、帧转换为比特流,并采用数字编码和时钟方案。

二、数据解封装的过程

仍然以OSI模型为例来说明数据解封装的过程。数据的接收端从物理层开始,进行与发送端相反的 *** 作,称为“解封装”,如下图所示,最终使应用层程序获取数据信息,使得两点之间的一次单向通信完成。

需要说明的是,应用最为广泛的TCP/IP协议可以看作是OSI协议层的简化,它分为四层:数据链路层、网络层、传输层、应用层,其各层对应的数据封装与OSI大同小异。

扩展资料:

一、原理

数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在 OSI7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。

每层可以添加协议头和尾到其对应的 PDU 中。协议头包括层到层之间的通信相关信息。协议头、协议尾和数据是三个相对的概念,这主要取决于进行信息单元分析的各个层。例如,传输头(TH)包含只有传输层可以看到的信息,而位于传输层以下的其它所有层将传输头作为各层的数据部分进行传送。

在网络层,一个信息单元由层3协议头(NH)和数据构成;而数据链路层中,由网络层(层3协议头和数据)传送下去的所有信息均被视为数据。换句话说,特定 OSI 层中信息单元的数据部分可能包含由上层传送下来的协议头、协议尾和数据。

二、数据封装协议

SDH网络中封装协议有多种,最常用的有PPP/HDLC、LAPS、GFP。某一些设备厂商的专有封装协议。

1、PPP/HDLC协议

为点到点协议,它要利用HDLC(高速数据链路控制)协议来封装帧,用字节同步的方式把HDLC帧映射入SDH的VC中,成为VC的净荷。

在POS系统中,可用来承载IP数据;在SDH系统中,用来承载以太帧。

2、LAPS协议

为链路接入协议,这种方式特别用于SDH链路承载以太帧,它与HDLC十分相似。

G3、FP协议

为通用帧协议,是一种链路层标准。这种封装协议可以承载所有的数据业务,是一种可以透明地将各种数据信号封装进现有网络的技术,可以替代众多不同的封装方法,有利于各厂商设备之间的互联互通。

GFP采用不同的业务数据封装方法对不同的业务数据进行封装。包括帧映射(GFP-F)和透明传输(GFP-T)两种模式。

参考资料来源:百度百科-数据封装

如下具体介绍:

ARP(Address Resolution Protocol)地址解析协议

它是用于映射计算机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。

SNMP(Simple Network Management P)网络管理协议

它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。

BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4

它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。

DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

它是在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互 *** 作。DHCP协议在安装TCP/IP协议和使用TCP/IP协议进行通迅时,必须配置IP地址、子网掩码、缺省网关三个参数,这三个参数可以手动配置,也可以使用DHCP自动配置。

FTP(File Transfer Protocol)文件传输协议

它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。象传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。现在有许多服务器支持匿名登录,允许用户使用FTP和ANONYMOUS作为用户名进行登录,通常可使用任何口令或只按回车键。

HDLC(High-Level Data Link Control)高层数据链路协议

它是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。HDLC协议也管理数据流和数据发送的间隔时间。HDLC是在数据链路层中最广泛最使用的协议之一。现在作为ISO的标准,HDLC是基于IBM的SDLC协议的,SDLC被广泛用于IBM的大型机环境之中。在HDLC中,属于SDLC的被称为通响应模式(NRM)。在通常响应模式中,基站(通常是大型机)发送数据给本地或远程的二级站。不同类型的HDLC被用于使用X.25协议的网络和帧中继网络,这种协议可以在局域网或广域网中使用,无论此网是公共的还是私人的。

HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本传输协议-版本1.1

它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的 *** 作后回送所要求的文件。

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压 *** 作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

ICMP(Internet Control Message Protocol)Internet控制信息协议

它是一个在主机和网关之间消息控制和差错报告协议。ICMP使用IP数据报,但消息由TCP/IP软件处理,对于应用程序使用者是不可见的。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,赡养或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。

IPv6(Internet Protocol Version 6)Internet协议-版本6

它是Internet协议的最新版本,已作为IP的一部分并被许多主要的 *** 作系统所支持。IPv6也被称为“Ipng”(下一代IP),它对现行的IP(版本4)进行重大的改进。使用IPv4和IPv6的网络主机和中间结点可以处理IP协议中任何一层的包。用户和服务商可以直接安装IPv6而不用对系统进行什么重大的修改。相对于版本4新版本的最大改进在于将IP地址从32位改为128位,这一改进是为了适应网络快速的发展对IP地址的需求,也从根本上改变了IP地址短缺的问题。简化IPv4首部字段被删除或者成为可选字段,减少了一般情况下包的处理开销以及IPv6首部占用的带宽。改进IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传输流的包能够贴上标签,比如非缺省质量的服务或者实时服务。为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。

OSPF(Open Shortest Path First)开放最短路优先

OSPF是用于大型自主网络中替代路由信息协议的协议标准。象RIP一样,OSPF也是由IETF设计用作内部网关协议族中的一个标准。在使用OSPF时网络拓朴结构的变化可以立即在路由器上反映出来。不象RIP,OSPF不是全部当前结点保存的路由表,而是通过最短路优先算法计算得到最短路,这样可以降低网络通信量。如果您熟悉最短路优先算法就会知道,它是一种只关心网络拓朴结构的算法,而不关心其它情况,如优先权的问题,对于这一点,OSPF改变了算法使它根据不同的情况给某些通路以优先权。

POP3(Post Office Protocol Version 3)邮局协议-版本3

它是一个关于接收电子邮件的客户/服务器协议。电子邮件由服务器接收并保存,在一定时间之后,由客户电子邮件接收程序检查邮箱并下载邮件。POP3它内置于IE和Netscape浏览器中。另一个替代协议是交互邮件访问协议(IMAP)。使用IMAP您可以将服务器上的邮件视为本地客户机上的邮件。在本地机上删除的邮件还可以从服务器上找到。E-mail 可以被保存在服务器上,并且可以从服务器上找回。

PPP(Point to Point Protocol)点对点协议

它是用于串行接口的两台计算机的通信协议,是为通过电话线连接计算机和服务器而彼此通信而制定的协议。网络服务提供商可以提供您点对点连接,这样提供商的服务器就可以响应您的请求,将您的请求接收并发送到网络上,然后将网络上的响应送回。PPP是使用IP协议,有时它被认为是TCP/IP协议族的一员。PPP协议可用于不同介质上包括双绞线,光纤和卫星传输的全双工协议,它使用HDLC进行包的装入。PPP协议既可以处理同步通信也可以处理异步通信,可以允许多个用户共享一个线路,又可发进行SLIP协议所没有的差错控制。

RIP(Routing Infomation Protocol)路由信息协议

RIP是最早的路由协议之一,而且现在仍然在广泛使用。它从类别上应该属于内部网关协议(IGP)类,它是距离向量路由式协议,这种协议在计算两个地方的距离时只计算经过的路由器的数目,如果到相同目标有两个不等速或带宽不同的路由器,但是经过的路由器的个数一样,RIP认为两者距离一样,而实际传送数据时,很明显一个快一个慢,这就是RIP协议的不足之处,而OSPF在它的基础上克服了RIP的缺点。

SMTP(Simple Mail Transfer Protocol)简单邮件传送协议

它是用来发送电子邮件的TCP/IP协议。它的内容由IETF的RFC 821定义。另外一个和SMTP相同功能的协议是X.400。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。

TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/Internet协议

TCP/IP协议起源于美国国防高级研究计划局。提供可靠数据传输的协议称为传输控制协议TCP,好比货物装箱单,保证数据在传输过程中不会丢失提供无连接数据报服务的协议称为网络协议IP,好比收发货人的地址和姓名,保证数据到达指定的地点。TCP/IP协议是互联网上广泛使用的一种协议,使用TCP/IP协议的因特网等网络提供的主要服务有:电子邮件、文件传送、远程登录、网络文件系统、电视会议系统和万维网。它是Interent的基础,它提供了在广域网内的路由功能,而且使Internet上的不同主机可以互联。从概念上,它可以映射到四层:网络接口层,这一层负责在线路上传输帧并从线路上接收帧Internet层,这一层中包括了IP协议,IP协议生成Internet数据报,进行必要的路由算法,IP协议实际上可以分为四部分:ARP,ICMP,IGMP和IP再上向就是传输层,这一层负责管理计算机间的会话,这一层包括两个协议TCP和UDP,由应用程序的要求不同可以使用不同的协议进行通信最后一层是应用层,就是我们熟悉的FTP,DNS,TELNET等。熟悉TCP/IP是熟悉Internet的必由之路。

TELNET Protocol虚拟终端协议

TELNET协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,它主要的目标是允许接口终端设备的标准方法和面向终端的相互作用。是让用户在远程计算机登录,并使用远程计算机上对外开放的所有资源。

Time Protocol时间协议

该协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的是以秒数,是从1900年1月1日午夜到现在的秒数。设计这个协议的一个重要目的在于,网络上的许多主机并没有时间的观念,在分布式的系统上,我们可以想一想,北京的时间和东京的时间如何分呢?主机的时间往往可以人为改变,而且因为机器时钟内的误差而变得不一致,因此需要使用时间服务器通过选举方式得到网络时间,让服务器有一个准确的时间观念。不要小看时间,这对于一些以时间为标准的分布运行的程序简单是太重要了。这个协议可以工作在TCP和UDP协议下。时间是由32位表示的,是自1900年1月1日0时到当前的秒数,我们可以计算一下,这个协议只能表示到2036年就不能用了,但是我们也知道计算机发展速度这么快,到时候可能就会有更好的协议代替这个协议。

TFTP(Trivial File Transfer Protocol)小文件传输协议

它是一个网络应用程序,它比FTP简单也比FTP功能少。它在不需要用户权限或目录可见的情况下使用,它使用UDP协议而不是TCP协议。

UDP(User Datagram Protocol)用户数据报协议

它是定义用来在互连网络环境中提供包交换的计算机通信的协议,此协议默认认为网路协议(IP)是其下层协议。UDP是TCP的另外一种方法,象TCP一样,UDP使用IP协议来获得数据单元(叫做数据报),不象TCP的是,它不提供包(数据报)的分组和组装服务。而且,它还不提供对包的排序,这意味着,程序程序必须自己确定信息是否完全地正确地到达目的地。如果网络程序要加快处理速度,那使用UPD就比TCP要好。UDP提供两种不由IP层提供的服务,它提供端口号来区别不同用户的请求,而且可以提供奇偶校验。在OSI模式中,UDP和TCP一样处于第四层,传输层。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11083611.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存