rapidio测试(rapidio总线)

      最后更新:2024-03-14 15:21:45 手机定位技术交流文章

      rapidio 数据流写怎么提升了传输效率

      传统总线多采用并线总线的工作方式,这类总线一般分为三组:数据线,地址线和控制线。实现此类总线互连的器件所需引脚数较多,例如对于64位数据宽的总线,一般由64根数据线,32-40根地址线以及30根左右的控制线,另外由于半导体制造工艺的限制还要加上一定数量的电源引线和地线,总共会有约200根左右的引线,这给器件封装、测试、焊接都带来了一些问题,如果要将这种总线用于系统之间的通过背板的互连,由此带来的困难就可想而知。
      rapidio 数据流写怎么提升了传输效率

      uvm为了什么原因才引入factory机制

      如果你的cpu env将会作为另一个更大level的一个agent组件,情况就变得有点糟糕了; 如果你的cpu env将会例化很多个,用在一个更大level的环境里,情况就变得更糟糕了;如果你的pcie driver被作为一个component单独用在一个大环境的很多地方,且分布于树形结构的不同深度的话,简直是噩梦!再假如,目前我有一个环境,有10个pcie driver,其中5个作为sub component用在5个cpu agent里面,另外5个pcie driver单独作为sub component用在top env(前面的5个cpu agent包含于top env中)里面。我现在想吧cpu agent里面的3个pcie driver换成rapidio driver,剩下的2个保持pcie driver不变;top level里面的5个pcie driver也有相似的需求,如果是用方法(1)改代码,那你的测试平台将会很糟糕,不具有任何可扩展性,容易出错等等....... 不同的需求回很多,因为需求永远是在变化的,我们需要一种方法来很好的适应这种变化,factory机制就可以做到。
      1.factory的需求来源 我们的测试平台一般都是通过component来组织成一个层次化的树形结构的,测试平台做什么事情取决于各个包含在其中的函数或者任务。总有一些时候,我们希望改变现有的处理机制或者流程。举例来说,我有一个通用的CPU总线的测试平台,在上层看来(软件同事们),这个东西对他们开放的接口就是两个:read(address,length),write(address,data),他们不管下面是PCIe还是RapidIO。假设目前的底层接口形式是PCIe总线,也就是说这个CPU agent中的的driver是一个PCIe的driver;有一天CPU换了,底层接口形式也跟着换成了RapidIO总线,那之前的CPU总线的测试平台能不能除了换个RapidIO的driver,其它不变?如果测试平台做的够好,应该是这个结果。但是怎么个换法?(1)把cpu agent.sv找到,改代码,至少有一个地方需要如下改改pcie_driver drv; ---》 rapidio_driver drv;(2)其他更好的方法?测试平台不用动,只需要在testcase中说明我现在希望用RapidIO driver来替换PCIe的driver。我们当然喜欢第二种。当然如果你的cpu env是一次性的,第一种方法也不错,如果是那样的话就与UVM思想相违背了,也会挨你继任同事的骂。如果你的cpu env将会作为另一个更大level的一个agent组件,情况就变得有点糟糕了;如果你的cpu env将会例化很多个,用在一个更大level的环境里,情况就变得更糟糕了;如果你的pcie driver被作为一个component单独用在一个大环境的很多地方,且分布于树形结构的不同深度的话,那方法(1)简直是噩梦!再假如,目前我有一个环境,有10个pcie driver,其中5个作为sub component用在5个cpu agent里面,另外5个pcie driver单独作为sub component用在top env(前面的5个cpu agent包含于top env中)里面。我现在想吧cpu agent里面的3个pcie driver换成rapidio driver,剩下的2个保持pcie driver不变;top level里面的5个pcie driver也有相似的需求,如果是用方法(1)改代码,那你的测试平台将会很糟糕,不具有任何可扩展性,容易出错等等.......不同的需求回很多,因为需求永远是在变化的,我们需要一种方法来很好的适应这种变化,factory机制就可以做到。2.我心目中的UVM factory的演进2.1 使用继承来解决2.1.1 前提:(1)有一个基类叫做cpu_bus_driver,所以的cpu总线的driver都从这个base class继承(2)cpu_bus_driver中定义一系列的总线操作,而且这写总线操作对它的任何继承者来说都是充分的:get_transfer():得到此次cpu操作类型(read or write),地址,长度,写数据drive_bus():把读写操作转化成最后的signal level的信号get_response():返回读数据或者写是否成功的响应(如果需要的话)当然这些函数都是virtual的。(3)cpu_bus_agent中这样实例化了driverclass cpu_bus_agent ;.......cpu_bus_driver driver ;function build();. .......driver = new("driver");. ........endfunction(4)测试平台的层次结构是:cpu_env.cpu_agent.cpu_drivercpu_env在cpu_base_test中实例化。2.1.2 方法step1:定义新类:new_cpu_bus_driverclass new_cpu_bus_driver extends cpu_bus_driver ;........定义自己的get_tranfer, drive_bus, get_response函数endclassstep2:替换原有的类。因为不能修改cpu_env及其一下各层次的代码,所以只能在testcase中进行替换:class cpu_test1 extends cpu_base_test ;new_cpu_bus_driver new_driver ;......new_driver = new("new_driver");cpu_env.cpu_agent.cpu_driver = new_driver ;.......endclass2.1.3效果没有修改任何cpu env及其一下层次的代码。2.1.4问题(1)上面标示的蓝色粗体为关键代码,但是这个语句的执行时间点需要精确把控。如果太早,则在运行cpu_agent.build()之后cpu_agent中的driver又会被重置为cpu_bus_driver而不是new_cpu_bus_driver;如果太晚,则可能cpu agent可能已经用cpu_bus_driver运行了一段时间了,然后才会切换成new_cpu_bus_driver,这样回导致前面的错误操作。最佳时间点显然是在所有的build phase之后,任何connection phase之前。(2)开发testcase的人需要准确的知道cpu env的层次结构,也就是说需要知道xxx.xxx.xxx.xxx形式,很显然这是个缺点;(3)如果有100个cpu driver需要替换,那么就需要100次cpu_env0.xxx.xxx.old_driver = new_driver ;....cpu_env99.xxx.xxx.old_driver = new_driver ;如果你觉得这个也不是问题,因为层次结构很规整嘛;那还有更麻烦的:old_driver被单独用到了一些地方而不是只用在了cpu agent里面,比如A_env.xxx.xxx.old_driver,B_env.xxx.old_driver,C_env.xxx.xxx.xxx.xxx.xxx.xxx.xxx.xxx.xxx.xxx.old_driver......那你准备怎么办?而且这种情况下缺点(2)的影响会更恶劣!2.2 第一次改进使用查找表来记录每个对象是否需要被替换。2.2.1 缺点的本质:(1)需要准确的时间点的本质原因是testcase不知道driver时候被创建的确切时间!所以需要找个最保险的时间点,那就是在所有的组件都创建之后,但是又不能早于connection phase,幸好uvm提供了各个phase的管理,否则这个问题解决起来就特别棘手!我们选择的时间点过于保守了,最合适的时间点就是在需要被创建的时候就做替换!也就是说每个对象的new函数调用处就是最佳的替换时间点。(2)需要知道层次结构的本质是在testcase层次以下没有任何东西来记录每个对象的路径!如果有这么一个地方,它记录了所有存在于环境中的对象的路劲,那么我只需要对它说,把你的记录里面每个driver对象都换成new driver。我只想对这个记录中心提供如下信息:1)我需要替换所有的driver,无论它分布于何处,它的层次路劲如何2)把driver替换成new driver.其余的交给记录中心来完成,我不想知道怎么做。2.2.2 缺点的改进(1)怎么样才能在每个对象new的时候就能够做替换呢?首先,我们需要知道的一条重要的限制就是new函数返回的对象永远都是它声明的类类型的对象!也就是说 :A a_obj ;=》任何时候我们调用a_obj = new;返回的对象永远是A类类型的,不可能是其他类,连A的继承类也不可能!就是注意点彻底的告诉我们,需要一种方法(假设叫create方法)来代替new函数,当我调用它的时候,它不是100%返回A类型,而是视情况而定,什么情况?那就是:当我不像替换A的时候它返回A类类型的对象;当我想用A的派生类A1替换A的时候它能返回A1类类型的对象;当我想用A的派生类A2替换A的时候它能返回A2类类型的对象..........我们不应该在这里用new,而是用create!(2)很明显,我们需要数据库来记录每个对象的基本信息第一个数据库的每个条目可能如下:层次路径 对象类型“a.b.c.obj1” A“a.b.obj2”B“a.b.obj3”A第二个数据库的每个条目可能如下:原对象的类型 希望被替换成的类型AA1BB2CC(也就是不替换)这种数据结构用关联数据再合适不过!2.2.3 实现对于缺点1的改进,按照我们的分析,应该做如下改变:a) 在cpu agent中创建driver的时候不用new函数,用另外一个叫做create的函数,用这个函数取代new函数。问题来了,这个create函数应该放在哪里?具有神马性质?首先,这个create函数可以放在cpu driver类及其子类中;或者外面。我们假设放在cpu driver类及其子类中。其次,既然能够取代new函数,那么必须不能针对于某一个具体对象,不然不能够调用;所以create应该是静态的。再则,我们的主要目的是需要这个函数视是否需要被替换的情况而来产生出对应的对象。达到这个目的可有很多种方法,最直观的一种是:在create之前我去中心数据库查一下先,如上述的第二个数据库,如果目前查到这样一条条目:/“原对象类型 cpu_bus_driver”,"需要替换",“替换成的对象类型 new_cpu_driver”/,那么我就可以知道虽然实在调用cpu_bus_driver的create函数,但是实际上是想让我生成cpu_bus_driver的继承类new_cpu_bus_driver!对应缺点2的改进需求,我们可以建立一个数据库中心,取名叫做factory,它的核心内容就是若干个map,每个map中的条目都是为create函数来服务的。好了,基于上述的分析,我们写出如下的伪代码:class cpu_bus_driver ;.......virtual function cpu_bus_driver create_object();cpu_bus_driver me ;me = new ;return me ;endfunctionstatic virtual function cpu_bus_driver create();cpu_bus_driverkey;key = new ;new_driver = factory.create_object(factory.lookup(key));return new_driver ;endfunctionendclassclass new_cpu_bus_driver extends cpu_bus_driver;.......virtual function cpu_bus_driver create_object();new_cpu_bus_driver me ;me = new ;return me ;endfunctionstatic virtual function cpu_bus_driver create();new_cpu_bus_driverkey;key = new ;用key作为键字去factory的数据库中查出替换条目,得知想不需要替换factory利用查得的结果,生成一个new_cpu_driver对象给我,叫做 new_driverreturn new_driver ;endfunctionendclassclass factory ;cpu_bus_driver override_map [cpu_bus_driver] ;function cpu_bus_driver lookup(cpu_bus_driver key);return overrride_map[key];endfunctionfunction cpu_bus_driver create_object(cpu_bus_driver override_obj);return override_obj.create_object();endfunctionendclass好了,举例来说明一下具体的工作过程:a)声明一个 cpu_bus_driverdriver;b)调用 driver = cpu_bus_driver::create();b1)key = new ;////key是cpu_bus_driver类的b2)factory.lookup(key);////返回一个new_cpu_bus_driver信息b3)factory.create_oject(new_cpu_bus_driver);b4)调用new_cpu_bus_driver::create();b5)new_cpu_bus_driver::create()调用new_cpu_bus_driver的new函数生成一个new_cpu_bus_drive类型的对象赋给driver经过上诉调用后driver就不是它声明是的cpu_bus_driver类型的一个对象了,而是一个地地道道的new_cpu_bus_drive类型的对象了,唯一一点的遗憾就是这个对象是用父类的句柄hold住的。2.3 第二次改进细心的朋友可能已经注意到上述实现的一个问题就是,factory的override map的键字是一个cpu_bus_driver的对象,而我的cpu_bus_driver类型的对象可能很多,举例来说如果override map中的cpu_bus_driver键字是一个叫做 “张三”的,很明显,如果我随意创建一个新的cpu_bus_driver类型的对象“李四”,虽然他们都是cpu_bus_driver类型的,但是用“李四”去查factory的override map时,就会查不到任何条目!这个就是2.2的实现中的一个问题!如何改进?很自然我们想到一种解决方案:用一个全局的众所周知的cpu_bus_driver对象去做键字。这个对象是给factory的override map专用的,不做他用,假设“张三”就是这样一个对象。这样一来问题就解决了,任何时候只要是想查询cpu_bus_driver类型的override条目,我只需要用 factory.override_map[“张三”]来查询即可!这个解决方案看起来好多了,也解决问题了,但是记得有一个前提就是:记得在进行任何查找override map[“张三”]之前,确保这个条目已经存在!看到这里,大家可能已经马上就想到了UVM中的factory register,没错!就是要向factory中注册!注册越早越好!2.4 第三次改进在第二次改进中,我们提议用一个众所周知的全局对象来向factory注册,然后用这个注册的全局对象来作为override map的查询的key来得出是否需要替换成别的子类的结论。这没有任何问题,但是不优美!原因有如下几点:(1)比如我有一个类叫做tcp_pkt,我希望我可以创建一个叫任何名字的tcp_pkt的对象,而不是叫“张三”的名字我不能取,因为这个“张三”被factory专用!在一个大型的环境中,会有很多个用户定义的类类型,比如除了tcp_pkt,还有ip_pkt,udp_pkt,还有其它方面的如ethernet_driver,ethernet_monitor.........假设设计中有100个类类型,那我岂不是要记着100个“张三”,“王三”,“李三”.......这些factory专用对象!(2)性能和效率太差!为什么这么说呢?如果我定义的类很复杂,那么这对象势必需要专用很大的内存,而每个类都需要一个factory专用对象,这些对象一直存在着[因为在override map随时都有可能需要lookup],所以内存不释放!既然问题分析了,那就要找出对策了!问题在哪里?想一个问题:factory的override map里需要的最根本的信息是什么?没错,那就是类型而非一个具体对象!factory只想知道也只需要知道在我的override map里面有一个条目的含义是类型A需要不需要替换成A的子类,如果有,是A1还是A2还是其它.....我不像知道A里面是什么,有什么,做什么!很显然,我们想factory的override map里面注册的东西过于饱含信息量了!叫好比说,我在你家看到你的电视机我很喜欢,我也想去买一个,我其实只想让你告诉[注册]我电视机的型号[类型],但是你却给我这个电视机[对象]让我抱着它去商场里比对这个实物电视去买!不错,我这样是能买到这个牌子的电视机,但是这样做是不是最好的办法呢,显然不是的。但是systemverilog有一个关键字叫做type,如果我声明以下一条语句:type a_type;那么我希望能够这样来操作这个a_type变量:if(a_type == int)......if(a_type == uvm_component).....a_type = uvm_object; .......它就是type operator,也就是type操作符!我么可以使用诸如 var type(uvm_component)my_component这样的声明语句,也可以使用如下负责的判断语句:bit [12:0] A_bus, B_bus;parameter type bus_t = type(A_bus);case (type(bus_t))type(bit[12:0]): addfixed_int #(bus_t) (A_bus,B_bus);type(real): add_float #(type(A_bus)) (A_bus,B_bus);endcase那就是我们的facotyr中的lookup函数必然会有这样的结构所表达的含义:case(type(lookup key))type(cpu_bus_driver): .......type(tcp_pkt):.......type(A):...............endcase注意,我指的是用这case语句结构表达的含义的本质,而不是说用case语句来表达!所以回到那两点问题上来,这两个问题的本质就是:(1)注册对象的全局性,换句话说有唯一性的需求;(2)信息的必要性,换句话说不要信息过量;所以,有一个最普通不过的方法来做就行了,怎么做呢?(1)tcp_pkt的“张三”对象你不希望我留着专用,那好,我给tcp_pkt变身一下,再定义一个新的类型叫做tcp_pkt_wrapper,而这个tcp_pkt_wrapper类型不会被任何的用户代码所用到,那么只要我生成一个tcp_pkt_wrapper的singleton不就行了,那么即不会影响用户使用tcp_pkt[你现在可以创建一个对象叫做“张三”等其它任何名字了],也满足唯一性的要求了!(2)那么透过tcp_pkt_wrapper能不能也把信息不要过量也一并满足了呢?这个wrapper再合适不过了,为什么?因为sv可以定义参数化的类类型,我把这些tcp_pkt,cpu_bus_driver,A等等作为模版参数传给tcp_pkt_wrapper,cpu_bus_driver_wrapper,A_wrapper.....岂不是很好!所以通过sv的type操作符,我们达到了不要信息过量的目的。整合上述两点,以tcp_pkt来说,我们只需要定义这样一个wrapper就达到目的了:class tcp_pkt_wrapper(type T=tcp_pkt);.......实现singleton.............enclass3UVM/OVM中的factory机制上诉的描述已经基本上把一些本质的东西都提及了,太过细节的东西没有必要在分析下去了;那我们就结合UVM中的factory来看看UVM的factory是如何实现的。(1)任何user defined 的class都是从uvm_object来(2)定义公共的wrapper类,uvm_obect_wrapper,此类的存在是为了提供一个基类,以便作为factoryoverride map的lookup key和 lookup value;根本原因是因为每个参数化类都是一个不同的类型,如果没有一个公共基类,则无法用一个统一类型的句柄来作为override map的lookup key。(3)在(2)的基础上定了模版类 uvm_component_registry和uvm_object_registry,模版参数就是user defined的类。(4)每一个uvm_component_registry#(T)或uvm_object_registry#(T)都会有一个singleton用来作为user definded类型T的轻量级代理和factory的注册。(5)factory有多种override map,用来进行不同override方式的支持,如override by name、override by type、override inst、override type等。(6)当我们使用uvm_object_utils/uvm_component_utils的时候,这些宏的重要作用之一就是利用上述机制像uvm_factory中注册,定义变量type_id,定义函数get_type()等。看到这里,我最想说的是上述这些就是我对uvm class reference文档里下面这段话的理解,原文是:”the uvm_object_wrapper provides an abstract interface for creating object and component proxies. Instances of these lightweight proxies, representing every uvm_object-based and uvm_component-based object available in the test environment, are requested with the uvm_factory. When the factory is called upon to create and object or component, it finds and delegates the request to the appropriate proxy.“ 引自:asic_wangUVM/OVM中的factory---------个人总结
      uvm为了什么原因才引入factory机制

      抖动测量的几种方法

      抖动是应该呈现的数字信号沿与实际存在沿之间的差。时钟抖动可导致电和光数据流中的偏差位,引起误码。测量时钟抖动和数据信号就可揭示误码源。 测量和分析抖动可借助三种仪器:误码率(BER)测试仪,抖动分析仪和示波器(数字示波器和取样示波器)。选用哪种仪器取决于应用,即电或光、数据通信以及位率。因为抖动是误码的主要原因,所以,首先需要测量的是BER。若网络、网络元件、子系统或IC的BER超过可接受的限制,则必须找到误差源。大多数工程技术人员希望用仪器组合来跟踪抖动问题,先用BER测试仪、然后用抖动分析仪或示波器来隔离误差源。BER测试仪制造商需要测量其产品的BER,以保证产品符合电信标准。当需要表征数据通信元件和系统时,BER测试对于测试高速串行数据通信设备也是主要的。BER测试仪发送一个称之为伪随机位序列(PRBS)的预定义数据流到被测系统或器件。然后,取样接收数据流中的每一位,并对照所希望的PRBS图形检查输入位。因此,BER测试仪可以进行严格的BER测量,有些是抖动分析仪或示波器不可能做到的。尽管BER测试仪可进行精确的BER测量,但是,对于10-12BER(每1012位为1位误差)精度的网络或器件测试需数小时。为了把测试时间从数小时缩短为几分钟,BER测试仪采用“BERT sCAN”技术,此技术用统计技术来预测BER。可以编程BER测试仪在位时间(称之为“单位间隔”或“UI”)的任何点取样输入位。“澡盆”曲线表示BER是取样位置的函数。若BER测试仪检测位周期(0.5UI)中心的位,则抖动引起位误差的概率是小的。若BER测试仪检测位于靠近眼相交点上的位,则将增大获得抖动引起位误差的似然性。抖动分析仪BER测试仪不能提供有关抖动持性或抖动源的足够信息。抖动分析仪(往往称之为定时时间分析仪或信号完整性分析仪)可以测量任何时钟信号的抖动,并提供故障诊断抖动的信息。抖动分析仪也用抖动特性来预测BER,其所用时间比BER测试仪小很多。抖动测试仪对于测试高速数据通信总线(如光纤通信,SerialATA, Infiniband, Rapidio,每个通道的数据率高达3.125Gbits/s)用的器件是有用的。因为抖动分析仪在几秒内可预测BER,所以,对于生产线测试是有用的,很多ATE制造商根据用户要求,把抖动测试仪安置在测试系统中。抖动分析仪检测信号沿并测量沿之间的时间。在采集定时数据之后,抖动分析仪执行算法,产生直方图、频率曲线、数据的其他直观图像。这些图像展示干扰信号的线索。靠执行直方图和频率曲线的计算,抖动分析仪把整个抖动分离为随机抖动和确定性抖动。比如一种确定性抖动,它具有一个特殊源。一个干扰信号相位调制基准信号来产生测量信号中的抖动。抖动分析仪可以计算呈现在抖动中的频率(相位1-4)。一旦知道抖动频率,就可隔离抖动源并减轻抖动影响。若干扰信号的频率对应于其他时钟频率,则用增加EMI屏蔽或其他方法把源隔离就可解决问题。混合仪器最近,某些测试设备制造商已开发出混合仪器。传统的BER测试仪只给出位误差,现在BER测试仪执行某些抖动分析,甚至有的还包含取样示波器。现在抖动分析仪也包含取样示波器,如Warecrest SIA-3000。这些取样示波器可观察眼图,但它们没有专用取样示波器那样的带宽。现在混合仪器的示波器带宽最高为6GHz。实时和等效时间取样示波器现在提供测量抖动和计算BER的软件。示波器两类示波器证明对于抖动测试和分析是有用的。为了测试通信速度达3.125Gbits/s(在铜线上传输数据,这可能是最高速度)的器件、缆线、子系统或系统,可以用实时取样示波器。它们类似于抖动分析仪,可以测量任何时钟信号的抖动。为了测量光信号,如OC-192和10Gigabit Ethernet(9.952Gbits/s)或OC-768(39.808Gbits/s),就需要50GHz~75GHz带宽的取样示皮器(如Agilent数字通信分析仪或Tek通信信号分析仪)。也可在电数据信号中用这些示波器。宽带示波器对于测试当今所用的最高位率的抖动是有用的。因为它们的低取样率(150ksamples/s或更低),所以,它们需要重复信号(如PRBS)来建立眼图,它们从眼图可建立抖动直方图。示波器制造商在其示波器上提供抖动分析软件。定时误差图是数据流的有效瞬时相位图。它示出抖动包含周期成分。定时误差图的快速傅里叶变换(第3个图线)定标为1MHz/div,显示抖动的频率。此频率可对应于开关电源的时钟频率或来自系统数据缆线中的交扰。 眼图交叉点的直方图显示分布有2个峰。双峰表明确定性抖动,它来自外部干扰(如开关电源)。另一处抖动——随机抖动遵从高斯分析,不能确定它们的源。
      抖动测量的几种方法

      vivado中SRIO IP核的使用

      vivado中SRIO IP核的使用 姓名:孙健强学号:19021210841【嵌牛导读】通常在信号处理板卡上,会用到FPGA和DSP的组合,这就涉及到了FPGA和DSP之间的通信问题。它们之间的通信协议是RapidIO协议,而在FPGA中则需要添加SRIO的IP核来实现与DSP的通信。【嵌牛鼻子】XILINX FPGA、VIVADO、DSP、 RapidIO协议、SRIO【嵌牛提问】如何使用vivado中自带的SRIO的IP核?【嵌牛正文】:一、srio基础知识【高速接口-RapidIO】4、Xilinx RapidIO核详解https://www.cnblogs.com/liujinggang/p/10072115.html二、srio官方例程(vivado环境)【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析https://www.cnblogs.com/liujinggang/p/10091216.html【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析https://www.cnblogs.com/liujinggang/p/10123498.html三、回环测试【硬核】FPGA进阶之路( 二) 如何将Xilinx SRIO控制器自环http://blog.chinaaet.com/fyyysun/p/5100063900
      vivado中SRIO IP核的使用

      安捷伦科技有限公司的历史年表

      1934年刚从斯坦福大学电子工程专业毕业的戴维·帕卡德 (Dave Packard) 和比尔·休利特 (Bill Hewlett) 去科罗拉多山脉进行了一次为期两周的垂钓野营旅行。两人发现彼此对许多事情的看法非常一致,因而结为挚友。此后,比尔到斯坦福大学和麻省理工学院继续深造,戴维则在通用电气公司找到一份工作。在斯坦福大学教授及导师 Fred Terman 的鼓励下,二人决定成立一家公司并自己经营。1938年帕卡德夫妇迁入加州 Palo Alto 市爱迪生大街367号。比尔就在这栋房子后面租下一间小屋。比尔和戴维以538美元作为初期资本,并利用业余时间在车库里开始了创业历程。比尔·休利特利用其负反馈研究课题研制成功惠普的首项产品,阻容声频振荡器(型号为 HP 200A),这是一种用于测试音响设备的电子仪器。该振荡器把一个白炽灯泡置入电路中,以提供可变电阻,这是振荡器设计上的一项突破。利用反馈原理,惠普又相继推出另外几项早期产品,如谐波波形分析仪及多种失真分析仪。华特迪斯尼公司订购8台振荡器(HP 200B),用于制作经典电影《幻想曲》(Fantasia)。1939年两人于1939年元旦成立合伙公司,并以投硬币来决定公司名称,取名惠普。华特迪斯尼公司利用 HP 200B 型声频振荡器测试制作电影《幻想曲》所使用的音响设备。 公司的测试与测量产品在工程界和科学界大受欢迎。第二次世界大战的爆发,使美国政府的电子仪器订单象雪片一样飞来。惠普公司推出了许多新产品,并建造了首座公司大楼。1940年公司的生产车间从车库迁到PaloAlto市PageMill路和ElCamino区的一座租赁来的大楼。公司向员工发放第一笔奖金,5美元的圣诞奖金。后来节日奖金变为生产奖金,再后来演变为全公司范围的利润分红计划。净营业收入:34,000美元;员工人数:3人;产品种类:8种。1942年建造了首座自己的大楼(红木大厦),位于加州PaloAlto市PageMill路395号,它集办公室、实验室及工厂于一体,面积10,000平方英尺。比尔和戴维把大楼设计成不设隔墙的格局,以便空间更具灵活性。戴维设计了一个电压计,该产品提供了前所未有的可靠性,但价格却极低廉。1943年惠普为海军研究实验室开发了信号发生器及雷达干扰设备,从而进入微波科技领域。在第二次世界大战期间开发的成套系列微波测试产品,使惠普成为信号发生器领域公认的佼佼者。 惠普制定了公司目标,这一目标后来成为其独特管理哲学的基础,惠普也着手朝全球化方向发展。高速频率计数器(HP524A)的推出,大大缩短了测量高频所需的时间(从原来的10分钟左右降至1~2秒)。在技术应用方面,广播电台使用HP524A可精确设定发射频率(例如调频104.7兆赫),从而符合当局(FCC)关于电波频率稳定性的规定要求。明确制定公司发展目标,这一目标成为公司后来的管理模式,即广为人知的惠普之道(HPWay)奠定了基础。1950年微波测量仪器领域的几项重大技术进步使测量结果更加全面,并显著提高了测量精确性。净营业收入:550万美元;员工人数:215人。1957年1957年11月6日,公司股票首次上市。1958年净营业收入:3,000万美元;员工人数:1,778人;产品种类:373种。1959年走出加州,在瑞士日内瓦设立了欧洲市场营销机构,并在西德的Boeblingen建立了第一家海外制造厂。 惠普在测试与测量市场领域保持稳健增长,并开始涉足其他相关领域,如电子医疗仪器和分析仪器等。惠普公司开始被视为一家积极进取、管理有方的公司和理想的工作地点。1960年新示波器的设计首次使用新采样技术,以观测广泛用于电脑科技的快速数字化波形。在科罗拉多州的Loveland开设美国国内的第二间制造厂。1961年通过收购马萨诸塞州Waltham市的Sanborn公司,进入医学领域。在纽约股市和太平洋股票交易所上市,股票交易代号为HWP。1962年惠普首次进入财富(Fortune) 杂志评选的美国企业500强,列第460位。1963年与日本横河(Yokogawa)电气公司在东京组建首家合资公司:横河惠普公司。生产首个能按预设精确频率产生电信号的合成信号发生器,是对测量自动化的一大贡献。1964年惠普欢庆成立25周年。戴维·帕卡德获选董事会主席,比尔·休利特当选总裁。推出高精确度的HP5060A铯射束时间标准仪。推出微波频谱分析仪是首个能对一组频带的个别信号进行直接读数和校准分析的测量仪器。1965年惠普收购跻身于分析仪器领域。净营业收入:1亿6,500万美元;员工人数:9,000人。1966年公司的中心研究机构惠普实验室成立,它是世界领先的电子研究中心。公司推出第一台电脑产品(HP2116A),它用作测试与测量仪器的控制器。首个全固态部件振荡器问世,体积小,重量轻,并带有大显示屏,便于实验室和生产领域使用。1967年Boeblingen,惠普设在德国的分公司推出非接触式胎心监测仪,用于测定胎儿在分娩时的状况。Boeblingen分厂还首先推出弹性工作制的概念,这一作法已在世界各地的惠普分厂广泛采用。惠普的工程师带着开发的原子钟飞赴全球18个国家,为当地校准国际标准时间。铯射束时间标准最终成为校对国际时间的标准。1969年戴维·帕卡德出任美国国防部副部长(任期从1961年到1971年)。首台用于色谱分离法的自动样本注入器能让分析样本时,整个系统不受影响。 惠普继续发扬其锐意创新的传统。到70年代末,公司的盈利与员工人数均取得大幅增长,比尔和戴维将公司的日常经营管理交给约翰·杨(John Young)。1970年推出全自动微波网络分析仪,它是设计和制造微波系统不可或缺的工具。净营业收入:3亿6,500万美元;员工人数:16,000人。1971年利用激光技术生产出可测量百万分之一英寸长度的激光干扰仪。惠普激光干扰仪仍是制造微处理器芯片时首选仪器。惠普也利用类似的科技开发出一种激光仪器----第一个电子勘测工具。1973年推出首个由微处理器控制的化学分析系统,操作简单,分析结果也显著改善。逻辑分析仪成为快速成长的数字电子领域工程师的首选工具。1975年惠普开发的标准接口简化了仪器系统。电子行业采用惠普的接口总线HP-IB作为国际接口标准,从而使多台仪器能方便地与电脑连接。HP-IB接口总线和惠普编程语言使现成的仪器构成测试系统成为可能。1977年约翰·杨出任惠普公司总裁(1978年出任首席执行官)。1978年工程师开发出一种新计算机语言,称作ECG标准语言(ECL)。作为最早的人工智能系统之一,它使惠普计算机系统能够象医生那样分析心电图。1979年推出第一个集成微处理器开发系统,集软件与硬件工程师所需的所有工具于一体。惠普开发的石英毛细柱简化了化学分析过程,使之可以分析更多种化合物。新推出的用于化学分析的二极管阵列检测器能迅速地同时测量多波长光线。 在这个日益全球化和经济飞速变化的年代,电脑科技对所有产品领域的巨大影响不仅提高了产品性能,降低了生产成本,也彻底改变了整个生产流程与组织结构。1980年推出64波道心电超声波监测仪,运作快速可以显出实时的心搏图像。净营业收入:30亿美元;员工人数:57,000人。1982年信号数据网络是首个能快速传递数据、使一个终端可以同时监测24个医院病床的网络。1985年世界首台以微处理器为基础的网络分析仪让使用者能以接近实时的速度和经过前所未闻的频率范围进行快速方便的幅度和相位测量。净营业收入:65亿美元;员工人数:85,000人。1987年比尔·休利特退休并辞去董事会副主席职务。Walter Hewlett(比尔之子)和David Woodley Packard(戴维之子)当选为公司董事。1988年数字式万用表集高频、高精确度、和高分辨率电压测量仪一体。开发出能测量太赫兹的传输频带宽度的分析仪,用于光电通讯领域。1989年惠普欢庆成立50周年。惠普推出的新型原子辐射检测仪是首台能以气相色谱法检测除了氦以外的所有元素的检测仪。推出测试与测量系统语言(TMSL)解决了必须通过写软件的方式在测试系统中的不同仪器间传递信息的难题。TMSL开辟了一个新的工业信息传送标准。 随着以网络为基础的信息与应用逐渐普及,变化的速度显著加快,竞争更趋激烈,产品从实验室到投放市场的周期大大缩短了。1990年惠普公司以其新研制的超临界液体提取器进入试样准备领域。净营业收入:132亿美元;员工人数:9万1,500人。1991年收购Advantek公司拓宽了公司在全球通讯市场的元器件供给。HP SONOS 1500 型回波心力记录仪允许医生通过超声波处理方法对患者进行即时的非接触式的心电图定量分析。1992年推出新的原子钟,是世界上最精确的商业用计时装置。公司的测试装置可产生和检测每秒25亿数据比特的数据流,让电信制造商能检验信息传送设备的性能。公司推出首个蛋白质排序系统,该设备可以完全自动地分析蛋白质和缩氨酸。光谱分析仪被证明是迅速成长的光通讯领域的一项重要产品。推出新型组件式示波器,用于高速数字电子产品的设计领域。HP SONOS 1500增强型心脏多孔成像系统是首个可自动测量心脏的喷射判断(评估心脏是否健康的一项重要指标)的产品。推出黄色和桔红色LED发光二极管,并将LED发光二极管的应用扩大到汽车、交通控制信号和移动信息仪表板。刘易斯.普莱特当选惠普公司总裁及首席执行官。1993年AcceSS7网络监测系统允许电信客户从一个中央地点监测SS7网络的所有元素,这大大提高了通讯网络的效率。HP 3D 表面张力电泳分析系统为生物科学家提供了领先的分离能力。推出 HP 83000 系统,惠普凭此打入数字式集成电路产品测试市场。1994年营业收入达到250亿美元。推出世界最亮的LED灯(发光二极管)。集高亮度、可靠性和低耗电等优点于一身,它在许多应用领域替代了白炽灯。在中国与上海分析仪器厂建立合资公司。公司进入DNA分析领域,以发展可用于药物研究和卫生保健业的系统与产品。公司以首台可装设在半敞开环境下的感应式耦合等离子质谱测量仪(ICP-MS)进入无机产品市场领域。此前,化学家必须依赖通常装置在特殊实验室并由专人操作的大型系统。新系统将感应式耦合等离子质谱测量仪带入了日常实验环境中。宽带系列测试系统崛起成为行业标准。它是首台测试自动柜员机和ISDN网络的系统,它首次将复杂的ISDN网络各个层面的测试结果集中在一起,帮助业者证明了这些新科技可以构成能传送声音、数据、图像和视像的信息高速公路的基础。首次将脉冲式测氧化仪器置入纤维分离机中,SpO2提供了持续的非接触式评估患者血液中的氧气水平,从而改善了治疗师在测量心跳时决定是否进一步作心脏控制治疗措施的能力。1995年利用数十年的石英技术和铯时间标准的经验,开发出同步时钟系统,使网络在提供声音、数据、和视像通讯的新数字式服务时能提供更高水平的精确度和可靠性。推出业界的首台低成本、高速度的小型红外线收发机,使在广泛范围的便携式计算应用设施,如电话、电脑、打印机、现款记录机、自动柜员机数字式相机之间,进行无线式点与射数据交换成为可能。HP 6890型系列气体色谱测定系统提供了高水平的性能和简单的按键式控制,放宽了管理上的要求,并为下一代高性能气体色谱测定法的出现提供了机会。第二代原子辐射检测仪可以在一万亿分之一的水平上测量大多数元素,也是以气体色谱法进行测量的唯一商业化原子辐射检测系统。宽带服务分析仪是一种设置宽带网络的新便携式工具。它代表了在便于使用方面的突破,分析仪可以只需按键就能对网络质量进行各种复杂的测试,也方便了复杂的自动柜员机科技的使用。为了开发“开放式医疗保健设施多方共同使用”的概念,惠普组织了Andover工作小组,专门定义、发展和执行标准的解决方案,并与医疗保健企业分享所得的信息。1996年惠普公司的联合创建人戴维·帕卡德于3月26日逝世。推出1100系列的液相色谱大规模选择检测仪,HP 1100检测仪是设计用于帮助化学家加快产品发展周期(如新药的推出)和改善分析结果的质量。惠普开发的用于有线和无线的高速数字式网络的网络时间同步设备解决了许多通过电话线传递数据和图像时面对的问题,如传真机线路掉线和调制解调器断线等。1997年收购了Heartstream,Inc 和 Heartstream Forerunner,书本大小的全自动外接式纤维分离机使经过培训的用户,如机舱人员、警察和医疗抢救小组能对突发性心脏病人作出迅速有效的反应。第一代“单芯片实验室”(lab-on-a-chip)科技集合了大量的化学操作在一个芯片上,加快了化学分析的速度,也大幅降低了成本,并使大家可以分享有关数字化信息。基因序列扫描仪:可辨别微芯片表面上的上千种脱氧核糖核酸变异,并大大缩短了分析时间。LumiLeds Lighting,与菲利普公司结成的合资公司,开发了一组用于交通灯业的革新信号元器件。净营业收入:429亿美元;员工人数:121,900人。1998年革新的 HP 3070 系列电路板测试系统让制造商能更快更有效地测试印刷电路板。The HP 95000 HSM 型高速存储测试系统可用于对随机存取动态存储芯片的大量生产性测试。这些系统芯片在 800MHz 状态下操作,并为存储芯片制造商提供了最小的占用空间、最低测试成本和最低风险的测试方案。数据业务测试仪(ServiceAdvisor),一个向服务装置商提供的低成本、易于使用的“笔记本(tablet)”式测试平台,它接受各种可用于自动柜员机信息传送等电信测试服务的可互换标准件。HP E6432A,一种新型VⅪ微波合成器,可用于各种自动测试,包括现场测试、航空电子设备、通讯系统和其他制造业测试。The TestBook Wireless是一种综合的错误探测解决方案,它方便了在现场或控制室的技师集中统一检测错误方式和客户服务信息,进而增加技师的生产力并减少客户的修理成本。“单芯片实验室”(lab-on-a-chip)科技系统研究取得进展,新系统可以在一片芯片上进行量的化学操作,加快了化学分析速度并显著降低了成本。1999年惠普宣布战略性重组计划,建立一家独立的测量公司和一家计算与图像公司,前者由元器件、测试与测量、化学分析和医疗仪器业务部门组成,后者包括惠普所有的计算、打印和图像业务。在加州 San Jose 举行的具历史性的品牌形象发布会上,惠普宣布以安捷伦科技有限公司作为新测量公司的名称。首次股票上市交易:1999年11月18日,安捷伦在纽约股票交易所挂牌上市,交易代码为“A”。 2000年2000年6月2日,惠普把其拥有的安捷伦股份分配给惠普股东,安捷伦科技完全独立。安捷伦光子交换平台问世,加速了全光学网络的发展。净营业收入:108亿美元;员工人数:47,000。2001年惠普创始人William R. Hewlett于1月12日与世长辞。通过收购Objective系统集成公司(OSI),安捷伦能够为提供3G无线通信、光通信、宽带IP和分组语音网络和服务的服务供应商提供完整的解决方案。飞利浦收购安捷伦科技医疗产品事业部。2002年安捷伦首次入选《财富》杂志美国500强公司,排名第212位。总裁兼首席执行官Ned Barnholt出任董事长。安捷伦收购RedSwitch,在安捷伦产品系列中增加了InfiniBand和RapidIO安捷伦在世界各地发售的光学鼠标传感器已经超过1亿个。净收入:60亿美元;员工人数:36,000人。2003年公司首次将3万多个人类基因点在一张芯片上,这些产品已经在很多基因客户中得到正面的验证安捷伦为具有拍照功能的移动电话推出微型像机模块。安捷伦销售的光学鼠标传感器数量突破2亿只,销售的FBAR双工器数量突破2000万部。净收入:61亿美元;员工:29,000人2004年安捷伦的 Visual Engineering Environment (VEE) Pro 系统开发软件为”火星探测漫游者”号车内的通信设备提供了测试界面。通过与可转译基因组研究协会协作,安捷伦开发出了“比较基因组杂交”,这一突破性的应用,有助于识别和查找致癌的基因变异。安捷伦收购了 Silicon Genetics,这是一家一流的生命科学探索软件解决方案提供商。Silicon Genetics 基因组数据分析和管理工具的加入使安捷伦成为生命科学信息学市场中的领袖。净收入:72 亿美元;雇员人数:28,000。2005年安捷伦主席、总裁兼 CEO Ned Barnholt 退休,William P. (Bill) Sullivan 继任总裁兼CEO。安捷伦与成都前锋电子电器集团股份有限公司合资,为中国市场开发和生产测试设备。安捷伦成立安捷伦科技(中国)投资有限公司,总部设在上海,以整合其在中国的实体。2006年质谱技术测试仪的主要优势不仅促进了应用层面的增加,而且还提升了性能优势。横河分析系统(Yokogawa Analytical Systems)现为安捷伦科技的一家全资子公司。安捷伦引进 E4898A 比特误码率测试仪(BERT),这是业界第一个运行速度达到 100 Gb/秒 的设备。安捷伦引进了MXA信号分析平台,这是业界速度最快的信号分析仪之一,也是准确度最高的中档分析仪之一。2007年安捷伦收购了全球上市公司 Stratagene 后,进一步巩固了其在生命科学研究和诊断领域的地位。此外,安捷伦还于 2007 收购了生命科学实验室自动控制和机器人技术公司 Velocity11、主营光学测试的 Adaptif、提供电子实验室笔记本电脑的信息企业 Kalabie,以及主要为航天/国防提供信号智能和通信系统的 NetworkFab。安捷伦推出了 7890A 气相色谱仪平台。该产品采用独特设计,可以巧妙处理气相色谱仪炉箱内的微板流,从而为新的应用提供支持,并大幅提高企业生产率。安捷伦 E6651A 一经推出,便成为全球知名的集成移动 WiMAX 测试装置,让移动 WiMAX 用户产品的设计人员和生产商,可以从产品开发快速实现大批量生产 — 在提高 WiMAX 设备完整性和质量的同时,降低企业成本。2008年安捷伦和太阳能公司SunPower在安捷伦美国加州圣罗莎园区正研制一套功率可达一兆瓦的太阳能追踪系统。索诺玛县一旦有了这台最大的太阳能发电机,在未来三十年内,可减少超过九千万磅的二氧化碳排放量,这相当于约7500辆汽车的排放物。安捷伦推出6230精确质量飞行时间液相色谱/质谱(LC/MS)系统。该设备能检测并鉴定低至2 ppt的化合物,从而成为食品安全、毒理学及其他痕量化合物测定应用的有力工具。安捷伦推出了用于多组学数据分析的单一软件平台GeneSpring,以及业内首款50 GHz的频谱分析仪。安捷伦推出了PNA-X系列的测量接收机。该产品是当前天线测试应用领域中速度最快的接收机。同时,它以比其他同类产品数据采集速度快30%(即五个接收机频道每秒可同时采集四十万个数据点)的优势为该行业建立起了一个新的标准。安捷伦引入了一款PXB MIMO接收机测试仪,该设备可在设计初期进行更快更精确的多入多出测试。它能够提供真实环境下的最佳仿真,从而大大减少了研发周期。2009年生命科学和化学分析业务集团被拆分成了化学分析业务集团和生命科学业务集团。安捷伦自此由三个业务集团组成:生命科学、化学分析和电子测量。安捷伦推出了首款在业内率先突破1瓦输出功率大关的模拟信号发生器-PSG E8257D。这款高输出功率的设备使用户再无需外置放大器、耦合器器和检波器等补充硬件。安捷伦推出的N4391A,是第一款工业光信号调制分析仪,它的发布弥补了40/100G波长的光信号相位和频率测试测量领域的空白。安捷伦推出了一款PCI Express(干扰发射机)用于串行总线协议测试。这一具有突破性的Express(r)(PCIe)总线模拟测试理念,是该行业中唯一一款可让开发者缩短测试周期并加快项目投向市场的时间的工具。安捷伦推出的1290 Infinity液相色谱仪,拥有业界目前最强的分离能力,能够实现更快的分离性能,是业内最强大、最灵敏、最灵活的液相色谱系统。安捷伦直驱机器臂赢得了实验室自动化联盟最佳产品的称号。此款机器臂的独立自动化功能和软件有力地推进了药物发现研究和基因应用的发展。 2010年安捷伦收购了瓦里安公司,这是公司历史上最大的一次收购。瓦里安大部分产品线都并入化学分析业务集团,同时生命科学业务集团也增加了包括核磁共振在内的重要业务。安捷伦与美国国家食品安全和技术中心(NCFST)展开合作,开发新的食品检测科学方法以分析食源性疾病和食品质量。作为合作的一部分,安捷伦为NCFST提供功能强大的化学分析和生命科学仪器,以及培训和应用支持。2011年安捷伦与加州大学伯克利分校新成立的合成生物学研究所建立合作关系,成为该所的首个行业合作伙伴。2012年安捷伦与中国科学技术大学先进技术研究院联合成立中国科大—安捷伦实验中心。
      安捷伦科技有限公司的历史年表

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/301844.html

          热门文章

          文章分类