连接硬件和软件

第2部分:不同的团队有完全不同的观点关于接口、重用和谁负责做出改变。

受欢迎程度

方法论和重用是两个相当标准的概念在半导体设计,但是他们认为完全不同的硬件和软件团队。

一个给定的硬件和软件有不同的目标和意见如何做设计。虽然都同意一个方法可以在未来的芯片,支付股息争论关于谁该形状的方法

“硬件IP工程师希望软件易于使用,意义,大量的重用相同的代码库,以便有最小的变化,“说Navraj Nandra,高级营销主任DesignWare模拟和混合信号IP解决方案小组Synopsys对此。“软件工程师,当他们看硬件,硬件不改变。他们希望大量的重用。但是很容易对他们写的代码。”

硬件工程师认为更容易适应软件比硬件,因为代码可以改变很快。软件工程师,相比之下,相信这是硬件工程师的责任来更新硬件或固件。

Nandra说他经常温和派之间的分歧的团队。一个团队想要扔到其他问题或挑战,因为他们认为这是对方更容易适应变化。“如果你调查它在软件方面,例如,这个想法是为了重用块做一个特定的函数,或制定特定的块的算法函数,尽可能多的,因为它不仅是你谈论的代码库。但你得到了所有的验证代码库——“testbenches也必须改变,如果你不使用100%的代码。”

问题源于这样一个事实,当一个变化是,外面很多东西影响的软件或硬件重用。“Testbenches现在如此复杂——你谈论数百万行代码非常,非常复杂的硬件也许20或30不同的cpu上。”

因此,重用的概念是非常重要的,Nandra压力。“每个人都知道为什么它是重要的,但实现是你必须相信两队能够做的方式可以使工作更容易重用。”

这是说起来容易做起来难。在硬件方面,接受,把系统放在一起可以改善如果集成块,所以硬件工程师开始定义接口。

“然后,一小部分行业的发展,这是与验证的IP,不仅会得到一块,但你会得到测试的方法,”Simon Davidmann说的首席执行官治之。“在软件世界中,没有以同样的方式的标准接口。有公共标准接口。但当人们构建他们自己的系统,他们不倾向于建筑师与这些可重用性的接口和api质量。面临的挑战是,如果你为自己设计一个接口,它是相对容易的,不需要结构化和记录,因为它将所有的工作。但是如果你正在构建一个接口,它已经持续五年,用于10或20个不同的地方,然后你必须花很多在设计界面,所以它可以以不同的方式使用。硬件的人更重视测试的模块和IP比软件人”。

在软件世界中,重用和验证的概念不太正式的和结构化,他说。”的一部分,这是在装船后的软件可以改变的事实,在硬件很少。所以没有严格和形式主义的设计方法在软件硬件的世界。在硬件,你不能改变它一旦发货,但是在软件世界中,每周你看看特斯拉的车,你可以上传软件,因为他们已经设计好了。软件可以更新和改变,所以人们认为它会变化和更严格的第一个版本。”

Davidmann确实看到工程团队前缘开始使用更现代的技术。但在世界传统的嵌入式软件的开发仍然是一个原始比硬件的发展从一个系统的观点。虽然方法正在发生变化,这是一个缓慢的过程。

重用定义不同
甚至重用硬件和软件之间的不同的观点。

”在谈到软件知识产权,软件的家伙一直在使用他们称之为库无数年来在这一水平,他们已经完全致力于这种IP重用对许多人来说,许多,许多年,”德鲁Wingard说,首席技术官超音速。“回到原来的C编程语言,如果你不使用任何标准的库,随同C,所以标准化的ANSI C标准中所描述的,你有一个非常无力的语言。但你甚至不能打印的东西在屏幕上不使用图书馆。”

在软件世界中,这样的代码重用是一个非常常见,他们建造的自动化技术,简单的和可重复的和安全的令人印象深刻,他说。“这些天,当你访问许多开源或商业库,你可以指定一个版本号,如果版本号不是在磁盘上,用户会得到一个错误,说这不是兼容的。我们今天大多数硬件集成方案甚至没有最基本的检查。在写作的地方,这不是一般的一部分自动交付与硬件有关。有非常有趣的技术叫做动态绑定。他们不要那样做检查的原因,直到运行时因为依赖的代码库不包含这个库。只是假定库是旋转的磁盘上的某个地方,他们将发现它当程序加载。改变各种东西如何分配的东西,而我们分发的时候芯片IP最好已经存在。”

Wingard认为,软件方面有一个开明的观点,用一个有趣的历史,他预计将开始出现在芯片设计方面在一些库是开源的,有些不是。“我们不运行这些天有很多开源硬件。有一些开源technology-Verilog断言起源于开放验证库,也有SystemVerilog版本的。你可以考虑验证IP分布式开放源码。有价值的和实用的东西,但如果你比较普通的Java程序员所希望获得他们写代码时,它是零相比,Java的家伙。它使环境更丰富和更容易让他完成他的工作。尝试开源硬件没有走很远,很大程度上是因为任何开源技术,最终在芯片上被认为是一种责任。这是担心。”

不过,费利克斯鲍姆,产品经理为嵌入式虚拟化导师图形坚持认为,在大多数情况下,有很多的重用在硬件方面。“如果一个硬件工程师设计一个全新的SoC,他们并不是从零开始。他们会抓住一个IP块串口。这些天没有人发明自己的以太网从头开始。没有人从头开始设计自己的串行端口,和其他的IP块硅放在SoC。”

这是证明了这一点手臂显示一个新的参与11月在TechCon突出显示有多少块的新部分重用以前的硬件,希望这将意味着开发人员没有从头开始编写软件启用新设备。

硬件方面,他断言,其实很好解决。“在软件方面,我们有很多的重用,但不是正式的。我可以去存储库,说我想要一个特定的UART或代码,使某些特性,和假设在硬件世界,去工作。我必须验证它,港口,我必须修改的东西——内存或调整寄存器之前它会工作,但事情越来越重用时,一旦你开始将正式的方法应用于它。”

坚持这个计划
总的来说,每个工程团队或公司都有自己的内部IP重用的方法。重要的是纪律和确保这些都是紧随其后,Nandra说。

在软件方面,产品毛羽工具可以帮助,连同那些检查质量和效率的算法,包括代码验证工具像Synopsys对此Coverity技术等等。

这一切使其回到软件重用。工程团队,如果没有一份好工作在低层次的算法,将翻译很好当看平台设计,并可以重用的代码块和一些已经写的,他说。

“它基本上可以归结为远见和计划在项目的开始,训练自己说,“我们将结构的硬件和软件的方式我们可以尽可能地重用,我们构建的硬件和软件平台。但有时与上市时间的压力人们开始采取捷径,这就是你看到它变得更加难以重用的硬件和软件,”Nandra说。



1评论

凯文 说:

有一个人造的硬件设计和软件开发之间的鸿沟。编写软件硬件设计是一种特殊语言在一个特定的风格。你可以抛弃的特殊语言和使用c++(如所做的一切。http://parallel.cc),但是RTL风格(同步FSM)不太吸引软件工程师,所以硬件需要切换到异步FSM方法的共同点。软件的人同样需要转向一个a-FSM方法编程的fpga, GP-GPUs,异构系统不支持SMP的编程模型。

http://www.ee.washington.edu/faculty/hauck/publications/AsynchArt.pdf

留下一个回复


(注意:这个名字会显示公开)

Baidu