2

关于投票
ATM技术及应用
ATM 技术及应用


一、ATM的产生


  自Alexander Graham Bell于1870年发明电话后,为有效地连接日益增多的电话用户,电话交换网应运而生。它经历了人工交换,机电式自动交换系统以及数字程控系统发展过程,但电路交换的原理一直未变。随着计算机的普及,电话网通过使用Modem来进行计算机数据传输及数据信息交换,随之产生了公用数据网,其典型的代表是X.25分组交换网,它是基干包交换的一种技术,具有信输可靠性高的优点,但由于Modem速率及交换技术本身限制, X.25只能处理中低速数据流。虽然LAN(局域网)技术的发展突飞猛进, 如Ethernet 、Token ring、Token bus等,传输速率已可达千兆,但它局域网的性质本身就大大限制了LAN的大规模的覆盖及应用,目前的LAN一般用于企业内部的数据传送,无法形成广域网的规模。
  由此我们不难看出,传统网络普遍存在以下缺陷:第一,业务的依赖性,一般性网络只能用于专一服务,公用电话网不能用来传送TV信号,X.25不能用来传送高带宽的图像和对实时性要求较高的语言信号;第二,无灵活性,即业务拓展的可能性不大,原有网络的服务质量,很难适应今后出现的新业务;第三,效率低,一个网络的资源很难被其它网络共享。
  随着社会不断发展,网络服务不断多样化,人们可以利用网络干很多事情,如收发信件、家庭办公、Video on demand、网络电话,这对网络的要求越来越高,有人还不禁提出这样一个想法:能否把这些对带宽、实时性、传输质量要求各不相同的网络服务由一个统一的多媒体网络来实现,做到真正的一线通?回答是肯定的,这就是ATM网。幸运的是,现在的半导体和光纤技术为ATM的快速交换和传输提供坚实的保障。目前的CMOS处理能力已达二三百兆,ECL可达5到10G。SDH和SONET技术提供了大容量的可靠传输,目前的STM-I标准为155.52M。


二、ATM技术


  ATM(Asynchronous Transfer Mode)顾名思义就是异步传输模式,就是国际电信联盟ITU-T制定的标准,实际上在80年代中期,人们就已经开始进行快速分组交换的实验,建立了多种命名不相同的模型,欧洲重在图象通信把相应的技术称为异步时分复用(ATD)美国重在高速数据通信把相应的技术称为快速分组交换(FPS),国际电联经过协调研究,于1988年正式命名为Asynchronous Transfer Mode(ATM) 技术,推荐其为宽带综合业务数据网B-ISDN的信息传输模式。
  ATM是一种传输模式,在这一模式中,信息被组织成信元,因包含来自某用户信息的各个信元不需要周期性出现,这种传输模式是异步的。
  ATM信元是固定长度的分组,共有53个字节,分为2个部分。前面5个字节为信头,主要完成寻址的功能;后面的48个字节为信息段,用来装载来自不同用户,不同业务的信息。话音,数据,图象等所有的数字信息都要经过切割,封装成统一格式的信元在网中传递,并在接收端恢复成所需格式。由于ATM技术简化了交换过程,去除了不必要的数据校验,采用易于处理的固定信元格式,所以ATM交换速率大大高于传统的数据网,如x.25,DDN,帧中继等。另外,对于如此高速的数据网,ATM网络采用了一些有效的业务流量监控机制,对网上用户数据进行实时监控,把网络拥塞发生的可能性降到最小。对不同业务赋予不同的"特权",如语音的实时性特权最高,一般数据文件传输的正确性特权最高,网络对不同业务分配不同的网络资源,这样不同的业务在网络中才能做到"和平共处"。

  上图就是ATM的一般入网方式,与网络直接相连的可以是支持ATM协议的路由器或装有ATM卡的主机,也可以是ATM子网。在一条物理链路上,可同时建立多条承载不同业务的虚电路,如语音,图象,文件传输等。


三、ATM业务介绍


  我们先来看一下ATM简化的协议分层示意图
 
  ATM采用了AAL1、AAL2、AAL3/4、AAL5、多种适配层,以适应A级、B级、C级、D级四种不同的用户业务,业务描述如下:
   A 级 - 固定比特率(CBR)业务:ATM适配层1(AAL1),支持面向连接的
      业务,其比特率固定,常见业务为64Kbit/s话音业务,固定码率
       非压缩的视频通信及专用数据网的租用电路。
   B 级 - 可变比特率(VBR)业务:ATM适配层2(AAL2)。支持面向连接的
      业务,其 比特率是可变的。常见业务为压缩的分组语音通信
      和压缩的视频传输。该业务具有传递介面延迟物性,其原因是
      接收器需要重新组装原来的非压缩语音和视频信息。
   C 级 - 面向连接的数据服务:AAL3/4。该业务为面向连接的业务,适
      用于文件传递和数据网业务,其连接是在数据被传送以前建立
      的。它是可变比特率的,但是没是介面传递延迟。
   D 级 - 无连接数据业务:常见业务为数据报业务和数据网业务。在
      传递数据前, 其连接不会建立。AAL3/4或AAL5均支持此业务。
注: ⑴. 由于AAL3/4协议技术复杂,于是提出AAL5用来支持C级业务。
  ⑵. 对于每级的业务,我们还可细分, 这里不一一赘述。


四、ATM应用举例-LANE


  LANE指的是LAN Emulation Over ATM, 即在ATM网上进行LAN局域网的模拟。
  大多数数据目前都是LAN上传送,例如Ethernet网等。在ATM网上应用LANE技术, 我们就可以把分布在不同区域网互联起来,在广域网上实现局域网的功能,对于用户来讲, 他们所接触到仍然是传统的局域网的范畴, 根本感觉不到LANE的存在。
  LANE技术主要用到了LANE Server, 它可以存在于一个或多个交换机内, 也可以放在一台单独的工作站中, LANE Server可简写为LES, 主要功能就是进行MAC-to-ATM的地址转换,因为Ethernet用的是MAC地址,ATM用的自己的地址方案,通过LES地址转换可以把分布在ATM边缘的LANE Client之间连接起来。
下图就是LANE的工作方式

  1、LAN Switch从Ethernet终端接收到一个帧, 这个帧的目的地址是ATM网络另一端的一台Ethernet终端。LEC即LANEClient(它驻留在LAN Switch中)于是就发送一个MAC-to- ATM地址转换请求到LES(LES驻留在ATM Switch中)。
  2、LES发送多点组播至网络上的其它LEC。 LANE的工作方式
  3、在地址表中含有被叫MAC地址的LEC向LEC作出响应。
  4、LEC接着便向其它LEC广播这个响应。
  5、发送地址转换请求的LEC认知这个响应, 并得到目的地的ATM 地址, 接着便通过ATM网建立一条SVC至目的LEC, 用ATM信 元传送数据。


五、上海ATM骨干网节点介绍


  全国ATM骨干网上海节点建于1997年4月, 开通后网络运行稳定。目前已与北京、南京、广州、杭州、西安、沈阳、武汉各大局之间直接开通了155M电路,另外还有若干大容量电路开至其它省会城市,全网业已全部联通,规模覆盖全国,具有带宽高、延迟小、无瓶颈等特点,是网络多媒体应用的最佳选择。
  目前网络提供交换型虚电路(SVC)和永久型虚电路业务,接口类型支持BNC电口和单、多模光纤, 物理接入速率有2M、34M、155M, 能满足任何业务的需求。

系统分类: 自由话题
用户分类: 学习
标签: 无标签
来源: 转贴
发表评论 阅读全文(128) | 回复(0)

2

关于投票
搭建Fedora 7的VCS设计平台

点击下载

开始搭建Fedora 7的VCS设计平台。。。。。。。。。。。

同时欢迎踩我的小站:

http://www.eetop.cn/bbs/?fromuid=169192

http://www.edacn.net/bbs/?fromuid=164965 

 

系统分类: CPLD/FPGA
用户分类: 学习
标签: 无标签
来源: 原创
发表评论 阅读全文(165) | 回复(3)

1

关于投票
[VHDL+Verilog]良好的代码编写风格(二十五条)(转贴自ACTEL论坛)

良好代码编写风格可以满足信、达、雅的要求。在满足功能和性能目标的前提下,增强代码的可读性、可移植性,首要的工作是在项目开发之前为整个设计团队建立一个命名约定和缩略语清单,以文档的形式记录下来,并要求每位设计人员在代码编写过程中都要严格遵守。良好代码编写风格的通则概括如下:
(1) 对所有的信号名、变量名和端口名都用小写,这样做是为了和业界的习惯保持一致;对常量名和用户定义的类型用大写;
(2) 使用有意义的信号名、端口名、函数名和参数名;
(3) 信号名长度不要太长;
(4) 对于时钟信号使用clk 作为信号名,如果设计中存在多个时钟,使用clk 作为时钟信号的前缀;
(5) 对来自同一驱动源的信号在不同的子模块中采用相同的名字,这要求在芯片总体设计时就定义好顶层子模块间连线的名字,端口和连接端口的信号尽可能采用相同的名字;
(6) 对于低电平有效的信号,应该以一个下划线跟一个小写字母b 或n 表示。注意在同一个设计中要使用同一个小写字母表示低电平有效;
(7) 对于复位信号使用rst 作为信号名,如果复位信号是低电平有效,建议使用rst_n;
(8) 当描述多比特总线时,使用一致的定义顺序,对于verilog 建议采用bus_signal[x:0]的表示;
(9) 尽量遵循业界已经习惯的一些约定。如*_r 表示寄存器输出,*_a 表示异步信号,*_pn 表示多周期路径第n 个周期使用的信号,*_nxt 表示锁存前的信号,*_z 表示三态信号等;
(10)在源文件、批处理文件的开始应该包含一个文件头、文件头一般包含的内容如下例所示:文件名,作者,模块的实现功能概述和关键特性描述,文件创建和修改的记录,包括修改时间,修改的内容等;
(11)使用适当的注释来解释所有的always 进程、函数、端口定义、信号含义、变量含义或信号组、变量组的意义等。注释应该放在它所注释的代码附近,要求简明扼要,只要足够说明设计意图即可,避免过于复杂;
(12)每一行语句独立成行。尽管VHDL 和Verilog 都允许一行可以写多个语句,当时每个语句独立成行可以增加可读性和可维护性。同时保持每行小于或等于72 个字符,这样做都是为了提高代码得可读性;
(13)建议采用缩进提高续行和嵌套语句得可读性。缩进一般采用两个空格,如西安交通大学SOC 设计中心2 如果空格太多则在深层嵌套时限制行长。同时缩进避免使用TAB 键,这样可以避免不同机器TAB 键得设置不同限制代码得可移植能力;
(14)在RTL 源码的设计中任何元素包括端口、信号、变量、函数、任务、模块等的命名都不能取Verilog 和VHDL 语言的关键字;
(15)在进行模块的端口申明时,每行只申明一个端口,并建议采用以下顺序:
输入信号的clk、rst、enables other control signals、data and address signals。然后再申明输出信号的clk、rst、enalbes other control signals、data signals;

(16)在例化模块时,使用名字相关的显式映射而不要采用位置相关的映射,这样可以提高代码的可读性和方便debug 连线错误;
(17)如果同一段代码需要重复多次,尽可能使用函数,如果有可能,可以将函数通用化,以使得它可以复用。注意,内部函数的定义一般要添加注释,这样可以提高代码的可读性;
(18)尽可能使用循环语句和寄存器组来提高源代码的可读性,这样可以有效地减少代码行数;
(19)对一些重要的always 语句块定义一个有意义的标号,这样有助于调试。注意标号名不要与信号名、变量名重复;
(20)代码编写时的数据类型只使用IEEE 定义的标准类型,在VHDL 语言中,设计者可以定义新的类型和子类型,但是所有这些都必须基于IEEE 的标准;
(21)在设计中不要直接使用数字,作为例外,可以使用0 和1。建议采用参数定义代替直接的数字。同时,在定义常量时,如果一个常量依赖于另一个常量,建议在定义该常量时用表达式表示出这种关系;
(22)不要在源代码中使用嵌入式的dc_shell 综合命令。这是因为其他的综合工具并不认得这些隐含命令,从而导致错误的或较差的综合结果。即使使用Design Compiler,当综合策略改变时,嵌入式的综合命令也不如放到批处理综合文件中易于维护。这个规则有一个例外的综合命令,即编译开关的打开和关闭可以嵌入到代码中;
(23)在设计中避免实例化具体的门级电路。门级电路可读性差,且难于理解和维护,如果使用特定工艺的门电路,设计将变得不可移植。如果必须实例化门电路,我们建议采用独立于工艺库的门电路,如SYNOPSYS 公司提供的GTECH 库包含了高质量的常用的门级电路;
(24)避免冗长的逻辑和子表达式;
(25)避免采用内部三态电路,建议用多路选择电路代替内部三态电路。


欢迎访问我的小空间:http://www.edacn.net/bbs/?fromuid=164965

系统分类: 自由话题
用户分类: 学习
标签: 无标签
来源: 转贴
发表评论 阅读全文(255) | 回复(0)

4

关于投票
基于FPGA的并行CRC的研究

  相信在的系统中CRC校验已经是个司空见惯的设计。

本文总结了CRC的常规设计思路,并提供给各位同僚一个绝佳的并行CRC在线生成的工具。方便生成任意的CRC校验的Verilog 和VHDL源代码。http://www.easics.com/webtools/crctool

在这里CRC的原理就不再赘述了。不同于软件上的CRC校验,软件上一般采用查表的方法来进行CRC的校验。硬件上当然可以采用查表的方法来实现CRC的校验,缺点有两个:1占用大量的逻辑资源,2速度没有办法保障。

基于硬件的串行CRC,占用较少的资源即可实现最基本的CRC校验,基本的表达式为  移位和反馈:CRC[N-2:0] <= CRC[N-1:1];  CRC[N] <= f(x)*CRC;其中f(x)为本原多项式。跟M序列的发生逻辑很类似,是一个线形的系统。数据由高位向地位 逐级进入该线形系统,CRC为最低位数据进入系统后的CRC表达式的输出值。由此可以知道,生成一个CRC32_D32的数据需要32个时钟周期。在应用层面上来讲是不能忍受的。

于是下面我们引出并行的CRC校验的逻辑。根据串行的基本表达式 我们联立求解,我们知道他是一个的N*N的一个线形方程,很容易求解得到CRC当前值与上次迭代值的表达式:(表达式不好编辑--见源代码)。由表达式可以很容易实现但周期并行的CRC校验。前面提到了一个在线的并行CRC校验的小工具。目前的工程上应用,很大一部分代来自这个在线的小工具。只要设定一定的参数,就可以生成想要的代码。--未完待续//08-02-25

系统分类: CPLD/FPGA
用户分类: 学习
标签: 并行CRC FPGA Verilog VHDL 源代码
来源: 原创
发表评论 阅读全文(1645) | 回复(4)

4

关于投票
写给想做IC设计的本科生

写给想做IC设计的本科生

我4年前本科毕业, 第一家公司是做车载系统的, 用fujitsu的单片机, 那时嵌入式系统还没有铺天盖地.
2年后, 我比较幸运的进入一家做IC的公司, ... 现在在公司SoC部门做系统设计
我的经验是, 要想在IC行业有好的发展, 自己的知识结构要有足够的广度和深度, 而这些东西只靠在
学校读书是无法获全的.
本科生的基础,只要你是电子专业的,并且大学期间没有专注于泡妞, 做IC设计应该没有任何问题.
IC领域的发展速度是所有行业里最快的, 这依赖于工艺和材料技术的发展, 新的材料和工艺, 可能随时
刷新这个领域的理论和方法论... 比如深亚微米工艺引出的功耗设计理论; 比如超大规模SoC导致新的
验证学方法.....等这些东西变成大学教材的时候, 相信我们又正在面临工艺带来的新问题.
所以, 作为一个IC工程师, 更重要应该是超强的学习能力,理解能力,应用能力,对新技术的敏感和耐心.

如果你要领导IC领域的发展, 那本科那点东西是绝对不够的;
如果你要做IC理论的应用工程师, 那本科应该是够的;

说IC行业太泛泛了, 谁也不能一个人贯穿整个行业.
IC行业就目前而言, 公司的结构是这样的:
1. 验证部门, 以前只是做模拟(NPW),和数字部分的FPGA验证, 现在又多了一个专注于功能验证的新分类
           这个新分类使用新的验证理论和验证工具(vera, systemverilog, systemc, e...)
2. 数字前端, 专注于功能模块,算法设计以及功能级别的仿真
3. 数字后端, 专注于数字部分RTL综合,静态时序分析,形式验证以及数字部分版图
4. 数字系统, 专注于数字系统的设计,构架, 功耗分析,以及全芯片的版图的布局设计和全芯片仿真;
                      这个部门就是做系统设计的, 负责协调其他所有部门的工作, 项目所有的spec从这里产生.
5. 模拟前端, 专注模拟电路设计,仿真
6. 模拟后端, 这个就是传说中的版图, 负责模拟电路的版图设计,全手工布线. 和画PCB板相似,比较挑战的
           还是高频/射频.
7. 软件部-底层驱动, 有些也叫firmware部门, 与验证部门协作. 负责底层驱动. 如果芯片里含有ROM,
                     编码和调试工作也是这个部门完成
8. 软件部-系统软件, 与应用有关, 负责操作系统设计/移植,系统软件的编写以及调试
9. 技术支持部门, --- 你可以不擅长设计, 但你一定要懂设计
10. 市场部门, --- 你可以不懂设计, 但你一定要会吹产品

当然, 一个公司不可能有那么多部门, 其中很多通常是合并在一起.
我想, 除了系统设计这个部门, 本科生应该有信心进入其他任何一个部门吧?
其中,我们会感觉数字后端和模拟是本科生的一个门槛, 其实并不是, 如果说有
门槛的话, 我相信这个门槛对硕士生也是一样的高度. 因为这两个部门往往都是要求
丰富的设计经验, 没有经过流片的考验, 理论再扎实也是虚的.
一个公司要吸收应届生到这两个部门的话, 本科生和硕士生都是可以考虑的.
虽然微电子的理论在很多大学是研究生的课程,但就本科的理论基础, 也很容易看懂.
只要你有钻研的耐心和学习的能力,并且又不急着结婚生子, 其他的都不会是障碍.

说了那么多, 这些都不可能直接帮助你进入一个IC公司.
毕竟, 现在本科生的整体素质在下降, 所以也不要怪企业在意识形态抬高人才流入的门槛.
但是, 我们也应该看到, ...研究生的整体素质也在急速下降.....

我不建议本科毕业后就接着读研究生, 这个道理大家都应该清楚吧?
摸黑读了十几年书, 都不知道以后要用它干什么!! 即使给自己描绘了一个美好的蓝图, 也不知
自己能不能胜任....现在好不容易告一段落, 你是想立刻实践一下, 还是继续摸黑前行呢?

....结论:
如果你想以后从事IC行业的话, 即使毕业后不能立刻进入IC设计公司, 也没什么.
你只要在心里牢记这个目标, 并计划好这两年应该获得哪些积累就足够了.
等到你某天幸运的进入一家IC设计公司, 知识结构的广度和深度一定能帮助你走的更顺利!
系统分类: 自由话题
用户分类: 学习
标签: 写给想做IC设计的本科生
来源: 转贴
发表评论 阅读全文(844) | 回复(2)

2

关于投票
Quartus 7.2 sp2 CRACK 需要的拿走!

rarQuartus 7.2 sp2 CRACK

http://www.edacn.net/bbs/?fromuid=164965    Dsp-Builder 7.2 SP2的破解  大家自己下载吧

系统分类: 生活点滴
用户分类: 学习
标签: 无标签
来源: 整理
发表评论 阅读全文(977) | 回复(0)

2

关于投票
视频解码之RGB转YUV模块(verilog)

rar仿真正确。不足请提出

http://www.edacn.net/bbs/?fromuid=164965    摘自--详细请看链接

 

系统分类: CPLD/FPGA
用户分类: 学习
标签: 无标签
来源: 转贴
发表评论 阅读全文(221) | 回复(0)

2

关于投票
概念:毛刺、竞争、冒险
概念:毛刺、竞争、冒险
     当一个门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为竞争(Race)。竞争的结果若导致冒险或险象(Hazard)发生(例如毛刺),并造成错误的后果,那么就称这种竞争为临界竞争。若竞争的结果没有导致冒险发生,或虽有冒险发生,但不影响系统的工作,那么就称这种竞争为非临界竞争。
  组合逻辑电路的险象仅在信号状态改变的时刻出现毛刺,这种冒险是过渡性的,它不会使稳态值偏离正常值,但在时序电路中,冒险是本质的,可导致电路的输出值永远偏离正常值或者发生振荡。
  组合逻辑电路的冒险是过渡性冒险,从冒险的波形上,可分为静态冒险和动态冒险。
  输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。若输出的稳态值为0,出现了正的尖脉冲毛刺,称为静态0险象。若输出稳态值为1,出现了负的尖脉冲毛刺,则称为静态1冒险。
  输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象(冒险)。
  从引起冒险的具体原因上,冒险可以分为函数冒险和逻辑冒险。函数冒险是逻辑函数本身固有的,当多个输入变量发生变化时,常常会发生逻辑冒险。避免函数冒险的最简单的方法是同一时刻只允许单个输入变量发生变化,或者采用取样的办法。
  单个输入变量改变时,不会发生函数冒险,但电路设计不合适时,仍会出现逻辑冒险。通过精心设计,修改电路的结构,可以消除逻辑冒险。
系统分类: CPLD/FPGA
用户分类: 学习
标签: 概念:毛刺、竞争、冒险
来源: 转贴
发表评论 阅读全文(685) | 回复(0)

2

关于投票
精确到微秒的万年历 FPGA verilog代码

rarcode   testbench

代码仅仅实现了计时,定时还有起闹,自己设计吧。

代一个朋友写的,与大家分享。。呵呵。。

系统分类: CPLD/FPGA
用户分类: 学习
标签: 生当作人杰
来源: 原创
发表评论 阅读全文(869) | 回复(5)

1

关于投票
不错的FPGA设计论坛
http://www.edacn.net/bbs/?fromuid=164965不错的FPGA设计论坛 含金量很高
系统分类: CPLD/FPGA
用户分类: 学习
标签: 无标签
来源: 转贴