网志

乐橙云app的工作原理以及为什么要购买一个

尤西·克雷宁(Yossi Kreinin)2013年6月20日14条评论

今天,几乎每个人都有一个CPU,DSP和GPU,它们埋在PC,电话,汽车等中的某个位置。大多数人不知道或不在乎自己购买了其中的任何一个,但是他们确实做到了。

每个人将来都会购买乐橙云app吗?如今,乐橙云app的市场规模约为全球年度半导体销售量的1%(~$3B~$300B)。 乐橙云app最终会成为必不可少的,还是它的数量会保持相对较低?

我们将在下面尝试回答这个问题。为了了解乐橙云app会变得多么流行,我们需要讨论乐橙云app是什么。 乐橙云app是一种可编程平台,但是EE是为EE而不是为程序员设计的。因此,对于许多程序员而言,乐橙云app令人兴奋却神秘。我希望我们的讨论将帮助他们揭开神秘面纱。

本文以PDF格式提供,便于打印

我们将从对乐橙云app相对较低普及度的常见解释开始。我们将看到为什么这种解释是错误的-以及为什么,如果我们仔细观察一下,我们实际上期望乐橙云app能够将竞争引爆!

这将结束今天的文章“为什么要购买乐橙云app”。续集正在制作中,标题为“为什么你 惯于 购买乐橙云app”。在那里,我们将看到乐橙云app与世界统治之间的一些主要障碍。

经常重复的错误答案

…问“为什么乐橙云app不流行?”的意思是,“ 乐橙云app是制造芯片的穷人的替代选择。您可以在乐橙云app中实施任何电路设计,但效率却低于ASIC或定制设计。因此,它对于原型设计和小批量产品非常有用。您买不起自己的芯片。但是,对于大批量的设备来说,这是没有意义的-恰好占总销售额的99%,而乐橙云app却只占1%。”

这是错误的,因为可编程性是一种功能,而不仅仅是效率上的负担。

当然,如果您制作仅运行该程序的芯片,那么在乐橙云app上进行卷积的Verilog程序将运行得更快。但是,您通常不希望这样做,即使对于数量最多的产品,也不想将CPU上运行的C程序转换为专用硬件!因为您想更改代码,运行其他程序等,所以等等。

当需要可编程性时(这是非常常见的),那么将乐橙云app与之进行比较的正确选择是另一个可编程平台:DSP,GPU等。而且,就像乐橙云app一样,所有这些必然会带来一些可编程性开销。因此,我们不能再先验地假设任何一个选项都比另一个选项更有效-正如我们在比较乐橙云app和单用途ASIC时所做的那样。

我们需要基准测试-乐橙云app的性能在某些基准测试中似乎很有竞争力。这是什么 BDTI的报告 从2007年开始说:

…我们估计实现要求苛刻的DSP应用的高端乐橙云app…消耗大约10瓦,而高端DSP大约消耗2-3瓦。我们的基准测试结果表明,高端乐橙云app可以大致支持 10到100次 与高端DSP相比,此基准上的通道更多…

因此,对于该基准测试,乐橙云app的运行时间性能提高了10倍至100倍,而DSP的能效提高了2倍至30倍-令人印象深刻!

但是,等等-它们的效率如何?

乐橙云app不再是乐橙云app

乐橙云app不是现场可编程门阵列吗?

可编程门阵列不能像专用乘法器那样高效地进行乘法运算吗?专用的乘法器是一堆用电线连接的门- 具体 乘法所需的门,已连接 特别 乘法所需的其他门。

可编程门阵列就是您的门 通用的。他们用他们的输入索引到真值表(称为查找表或LUT)中,并获取答案。使用2输入LUT时,您将获得“或”门或“与”门或其他任何东西,具体取决于您编程的真值表。使用三输入LUT,您可以进行单门运算,例如(a&b)| c,但是原理是相同的:

这绝对必须比“或”门或“与”门更大,更慢!

同样,电线穿过可编程开关盒,该开关盒按照可编程位的指示连接电线:

有几种开关盒拓扑结构确定可以将哪些电线连接到哪个。但是,无论采用哪种拓扑结构,它都必须比直接通向正确栅极的导线更大,更慢。

所有这一切的确是事实,并且仅带有可编程门和路由器的“裸” 乐橙云app不能与DSP竞争。但是,当今的乐橙云app随附 DSP切片 -在门和路由器之间放置专门的硬件块,这些硬件块在“硬”专用门中进行乘积运算。

所以 那是 乐橙云app如何与DSP竞争-它们具有DSP硬件! 作弊 是不是

好吧,是的,不是。

从某种意义上说,这是“作弊”,因为乐橙云app不再是乐橙云app了,而是可编程门阵列 加上所有其他东西。 “真正的乐橙云app”将如下所示:

相反,高端的现代乐橙云app如下所示:

为了在DSP应用中具有竞争力,乐橙云app需要DSP切片-ALU进行乘法累加之类的工作。

为了在需要CPU的应用程序(大多数就是CPU)中具有竞争力,当今的乐橙云app不仅具有专用的ALU。它们具有使用“硬”,非可编程门实现的功能完善的ARM内核!

因此,如果您认为乐橙云app是适用于任何设计的“干净的板岩”,那么您就会被“欺骗”。实际上,乐橙云app具有专用硬件以使其在特定领域具有竞争力。

您有时可以通过观察他们缺乏哪些专业知识来猜测他们的竞争力在哪里。例如,没有“ GPU切片”,而且实际上我不认为乐橙云app在与DSP竞争的同时可以与GPU在自己的领域竞争。 (为什么不简单地添加GPU切片呢?在这里图变厚了,正如我们将在后续文章中看到的那样。)

但是,当然,拥有DSP Slice不仅仅是“欺骗”-因为看看乐橙云app有多少DSP Slice。最便宜的乐橙云app可以做到 几百 的同时累积! (我的上图绘制的比例错误-想象在几个大得多的CPU附近有数百个小型DSP切片。)

数百个MAC是个大问题,因为尽管任何人都可以将一个乘法器的负载塞入一个芯片中,但最困难的部分是将所有这些乘法器连接在一起,从而使一个有意义的程序真正 采用 这些乘数并行。

例如,TI的C64 DSP每个周期可以执行8个MAC,但前提是仅是点积。 TI的C66 DSP每周期可以执行32个MAC,但前提是要乘以复数。对于非常特定的数据流,您只能获得最高的吞吐量。

在一定程度上,乐橙云app架构允许您一次实际使用一个数量级的资源,并在更多实际示例中做到这一点,这是相当独特的成就。这就是他们实际上的方式 击败 专用DSP及其DSP Slice不仅达到相同的性能。

乐橙云app作为可编程加速器架构

那么,什么使乐橙云app成为如此高效的架构呢?没有简单的答案,但乐橙云app可以利用以下优势:

  • 无需成熟的ALU即可进行简单操作:2位加法器不需要映射到大型的“硬” DSP片-它可以舒适地适应一小段“软”逻辑。对于大多数处理器,您将“刻录”成熟的ALU以执行最简单的操作。
  • 不需要完整 周期 简单操作:在乐橙云app上,您不必为了完成简单的操作而牺牲一个完整的周期,例如OR,其延迟比完整的周期短得多。取而代之的是,您可以将OR的输出立即馈送到下一个操作(例如AND),而无需通过寄存器。您可以将其中许多链接起来,只要它们的延迟总计少于一个周期即可。对于大多数处理器,您最终将在所有这些操作上“消耗”整个周期。
  • 分布式操作数路由:大多数处理器的ALU通过寄存器文件进行通信。在将所有ALU连接到所有寄存器的情况下,存在一个瓶颈-这种互连随着ALU和寄存器数量的乘积而增长,因此,两者中不能有太多。 乐橙云app在整个芯片上分布了ALU和寄存器,您可以通过不产生瓶颈的方式将它们连接起来-例如,长链,树状或其他多种方式。当然,您也可以通过瓶颈路由所有内容,然后您的设计将以较低的频率运行-但您不必这样做。对于CPU或DSP,它们以较高的频率运行-因为限制了ALU和寄存器的数量以使该频率成为可能。但是在乐橙云app中,您可以获得 高频和大量并行使用的资源。
  • 分布式命令调度:2个问题或6个问题的处理器很常见,但实际上没有听说过100个问题的处理器。部分原因是由于上述操作数路由,部分原因是由于命令调度-您必须从内存中提取所有这些命令,这是另一个瓶颈。在乐橙云app中,您可以在ALU附近的简单状态机中实现命令生成逻辑-在最简单的情况下,命令是ALU附近的寄存器中保存的常量。这使您轻松发出100条并行指令。

通过查看示例,可以更轻松地理解这种“分布式”业务。这是乐橙云app上一维卷积的示意性实现-您将长向量v与N系数滤波器f卷积,在每个i处计算f0 * v [i] + f1 * v [i-1] + f2 * v [i-2] +…+ fN-1 * v [iN-1]:

在此图中,N = 8,但它易于缩放为任意N,从而以稍大的延迟产生结果-总和树的深度为log(N)。

橙色框是寄存器。像+和*这样的命令以及输入和输出都存储在寄存器中。 (我将*的输出直接馈送给+,而无需通过寄存器来节省屏幕空间。)每个时钟周期,输入都馈送到ALU,并且输出变为新的寄存器值。

在绿色框(ALU)中分布的橙色框(寄存器)说明“分布式操作数和命令路由”。如果您想知道代码中的外观如何,与该图形相对应的Verilog源代码将出现在文章结尾处。

这是一个没有求和树的线性管道:

至少对我来说这有点棘手(我在第一张图纸中有一个错误,希望它已修复)。想法是,每对ALU都计算fk与v [i-k]的乘积,将其乘积到到目前为止累积的部分和中,然后将更新后的部分和发送到下一对ALU。

诀窍是这样的。 v的元素和和也向下游移动。但是在v [i]乘以f0之后, 想要在下一个周期中将其乘以f1。相反,您想乘 v[i-1] 由f1乘以-这就是我们在索引i处进行卷积所需的乘积。然后你 想要将v [i]乘以f1 一次循环后 -对于索引i + 1处的卷积。我希望对中间寄存器的v [i]采样能够解决问题,从而延迟其下游运动。

因此,这两个示例说明了乐橙云app编程与编程大多数处理器的不同之处,以及如何提高效率。效率更高,因为您可以同时使用大量ALU,而在分配命令以及在ALU之间移动输入和输出的开销却很少。可以这样说:

  • 乐橙云app比SIMD / SIMT更灵活。您可以为不同的ALU提供不同的指令,并且可以从不同的地方路由操作数。将此与SIMD指令(如add_16_bytes)进行对比,字节i始终来自宽寄存器内部的偏移量i。
  • 乐橙云app的伸缩性优于VLIW /超标量。 由于寄存器文件附近没有路由瓶颈,也没有指令内存带宽瓶颈,因此可以同时发出更多指令。
  • 乐橙云app比多核更有效。多核非常灵活,可以很好地扩展。但是您为每个ALU支付的开销要大得多。每个内核都将具有自己的寄存器文件和内存,然后会有通信开销。

这使我们对LUT和开关盒有了新的认识。是的,对于专用门和电线而言,它们可能是一种效率低下,制造成本低廉的替代产品。但它们也是一种机制 用于利用“硬”组件 在它们之间传播-有时比任何其他机制都要好。

这就是乐橙云app在DSP slice的帮助下击败DSP的方式不是“欺骗”的方式。 (实际上,成熟的DSP通过使用丑陋的专用指令“欺骗”更多。比乐橙云app的乘法累加,点积指令更丑陋得多),它们之所以需要它们,是因为它们没有乐橙云app的灵活性,因此乐橙云app在软件中有效执行的工作必须在硬件中完成,以优化非常特定的数据流。)

I / O应用

但是,等等-还有更多!除了作为硬件原型平台和加速器架构之外,乐橙云app还特别适合于软件定义的I / O。

“软件定义的I / O”与“硬件定义的I / O”相反-事物的通用状态,例如,您具有在硬件中实现TCP或UDP共享的以太网控制器。软件定义的I / O是指您拥有一些可编程硬件而不是专用硬件,并且您在软件中实现了协议。

是什么使乐橙云app擅长软件定义的I / O?

  • 时序控制: 与其他任何语言相比,Verilog和其他硬件描述语言为您提供了更精确的时序控制。如果您将其编程为花费4个周期,那么它将花费4个周期-没有高速缓存未命中或中断或任何会意外妨碍您的事情。您可以在这4个周期中完成很多工作-如我们所见,乐橙云app擅长并行发布大量指令。这意味着您不必通过缓冲传入的数据等来考虑运行时的可变性。-您知道每4个周期就会得到一个新的字节/像素/等,而在4个周期中就已经完成了。这在无法接受“深度”缓冲的情况下特别有价值,因为它引入的延迟是无法忍受的,例如在DRAM控制器中。您还可以执行一些操作,例如生成所需频率的时钟信号,或处理与您的频率不同的输入时钟信号。
  • 细粒度的资源分配:您“消耗”了一部分乐橙云app资源来处理某些外围设备-这就是您所花费的。使用其他处理器核心,您将刻录整个核心-“此DSP处理WiFi”-即使该核心大部分时间处于空闲状态。 (乐橙云app资源也以这种方式被消耗-但您所花费的资源通常少于完整处理器内核所需要的资源。)或者,您可以分时使用该DSP内核-但这样做通常很麻烦。许多种类的内核会公开很多资源,这些资源必须以无法忍受的高延迟手动进行上下文切换。核心不对称妨碍了线程迁移。有了两个I / O任务,通常没有人会容忍很长一段时间的挂起,因此您肯定会烧掉两个内核。 (一种解决方案是硬件多线程。)

结果是,除乐橙云app外,很少有处理器适合于软件定义的I / O。大量的多线程 XMOS 据称是一个例外。然后是通信处理器,例如硬件线程 高通Hexagon DSPCEVA-XC DSP。但是这些是相当专业的。您不能使用它们来实现存储器控制器或LVDS至并行视频桥接器,而这两者都可以使用乐橙云app来完成。

当然,乐橙云app的I / O功能可以与计算加速功能相结合-即时获取像素并增强图像颜色,获取具有股票信息的IP数据包并决定即时交易哪些股票。

可编程,高效且通用的乐橙云app听起来像是一个不错的交付平台。

概要

我试图提出几点。有些是众所周知的不言而喻,有些则是我自己看待事物的方式,有些则可能会引起争议或至少是反常的。

  • 虽然乐橙云app很棒 小型电路交付平台,它们也可以是 大规模软件交付 平台。您可以将乐橙云app视为“效率低下的仿真电路”。但是在其他情况下,您也可以将它们视为“高效执行程序”!
  • 乐橙云app使用固定门(通过设置选择的真值表进行配置)和可编程开关盒来代替固定功能门和将特定门相互连接的线,而将输入线根据配置位连接到其他一些线,从而代替可编程开关盒。就其本身而言,与电路的“直接”实施相比,效率非常低下。
  • 那么,乐橙云app如何在自己的游戏中不仅击败CPU,而且击败诸如DSP之类的专用加速器?诀窍是 他们不再是乐橙云app -门阵列。相反,它们也是RAM和DSP Slice的阵列。然后,它们具有成熟的CPU,以太网控制器等,以固定功能的硬件实现,就像其他任何芯片一样。
  • 在这样的现代乐橙云app中,不仅可以使用LUT和开关盒代替固定功能电路,还可以 力乘数 让您充分利用固定功能电路。 LUT和开关盒提供了其他处理器架构所没有的两件事。一,使用能力 少于成熟的ALU 对于简单的事情-和 少于一个完整的时钟周期。第二, 命令和操作数的分布式路由 -可以说比SIMD更灵活,比超标量执行更可扩展,比多个指令流更高效。
  • 乐橙云app是最终的平台 软件定义的I / O 由于它们的定时控制(如果我说4个周期,则需要4个周期)和细粒度的资源分配(每个异步任务要花很多寄存器和ALU,而不是专用于完整内核或必须分时使用)。

拥有所有这些优势,为什么仅占全球半导体销售额的1%?一个合理的答案是,乐橙云app花了很长时间才能发展到目前的状态。 乐橙云app今天所没有的东西包括:

  • 固定功能硬件 性能至关重要-从RAM逐渐发展到DSP片,再到完整的CPU。
  • 快速运行时重新配置,这样您就可以运行卷积,然后将其替换为FFT-如果您认为乐橙云app是模拟一个电路,则您不能也不应这样做。
  • 实用的C-Verilog编译器,让仍然不是电路设计人员的程序员(至少是相当顽固的程序员)足够容易地进行乐橙云app编程。

所有这些事情与程序员所需要的一样多,而不仅仅是电路设计师所需要的。这表明,乐橙云app在传统的小型电路实现领域之外,正在争夺大型软件交付市场的地位。 (乐橙云app供应商的营销材料更直接地证实了他们的意图。)

所以从这个角度来看 乐橙云app从电路实现平台演变为软件交付平台。作为强大的可编程体系结构,人们期望它们大受欢迎,并且像其他可编程体系结构一样,到处都有。

未回答的问题

作为续集的预告片,我将以一些我们的讨论未解决的问题作为结尾。

为什么乐橙云app具有DSP Slice和成熟的“硬” CPU?为什么不采用相反的方式-成熟的DSP内核和某种较小的“ CPU片”? GPU切片在哪里?如果按比例分配各个门,触发器和皮秒而不是完整的ALU,寄存器和时钟周期是如此之大,那么为什么其他所有人都没有这样做呢?为什么它们都将资源分解成更大的块,而仅由软件控制呢?

敬请关注续集-“ 乐橙云app的工作原理,以及为什么您不愿意购买乐橙云app”。

附言可编程-如何?

那么如何编程可编程门阵列呢?谈话很便宜,Microsoft Paint图纸也很便宜。给我看看代码!

本机编程接口是类似于Verilog的硬件描述语言。这是Verilog中树状卷积管道的实现-首先是绘图,然后是代码:

module conv8(clk, in_v, out_conv);
  //inputs & outputs:
  input clk; //clock
  input [7:0] in_v; //1 8-bit vector element
  output reg [18:0] out_conv; //1 19-bit result

  //internal state:
  reg [7:0] f[0:7]; //8 8-bit coefficients
  reg [7:0] v[0:7]; //8 8-bit vector elements
  reg [15:0] prod[0:7]; //8 16-bit products
  reg [16:0] sum0[0:3]; //4 17-bit level 0 sums
  reg [17:0] sum1[0:1]; //2 18-bit level 1 sums

  integer i; //index for loops unrolled at compile time

  always @(posedge clk) begin //when clk goes from 0 to 1
    v[0] <= in_v;
    for(i=1; i<8; i=i+1)
      v[i] <= v[i-1];
    for(i=0; i<8; i=i+1)
      prod[i] <= f[i] * v[i];
    for(i=0; i<4; i=i+1)
      sum0[i] <= prod[i*2] + prod[i*2+1];
    for(i=0; i<2; i=i+1)
      sum1[i] <= sum0[i*2] + sum0[i*2+1];
    out_conv <= sum1[0] + sum1[1];
  end
endmodule

这个例子说明了“分布式路由”实际上是如何在代码中看起来的-以及对资源的细粒度控制,定义了诸如17位寄存器之类的东西。

而且它很可读,不是吗?绝对比用内在函数拼写的SIMD程序更漂亮-并且更易于移植(您可以使用不同的源代码针对不同供应商的乐橙云app以及使用相同源代码的ASIC实现;这并不琐碎,但与SIMD内在函数不同,这并非没有希望,并且可能不会比编写实际可移植的OpenCL内核。)

顺便说一句,Verilog也许是典型的面向对象语言-一切都是对象,就像在物理对象中一样:寄存器,导线,门或简单对象的集合。模块就像类,除了不能动态创建对象(称为实例化)外,所有对象在编译时都是已知的,并且已映射到物理资源。

Verilog坚持 封装 尽可能地严格:根本没有办法设置对象的内部状态。因为如果没有电线插入,您将如何物理地影响该状态?其实那里 一种做到这一点的方法-通常的instance.member语法;硬件黑客称其为“天线”,因为它是与对象内部的“无线”通信。但是它不能合成-也就是说,您可以在仿真中完成,但不能在实际电路中完成。

这意味着我们的示例模块已失效,因为我们无法初始化滤波器系数f。在仿真中,我们可以使用天线。但是在乐橙云app上,我们需要添加一个init_f输入,然后将其设置为1,我们可以从通常用于读取v元素的同一端口读取系数。 (顺便说一句,并不是说它在这里增加了很多效率,但是下面的“ if”测试是一个操作少于一个周期的示例。)

always @(posedge clk) begin
  if(init_f) begin
    f[0] <= in_v;
    for(i=1; i<8; i=i+1)
      f[i] <= f[i-1];
  end
end

封装的胜利,也有点可惜,因为现在在我们的系数寄存器附近有实际的导线和一些控制逻辑,放大了电路,只在初始化时使用。我们习惯于对构造函数进行“燃烧”一些内存类的类。谁在乎-这些位会从指令高速缓存中快速换出,因此您不会浪费资源 您的计算核心。但是,Verilog模块初始化会“烧掉” LUT和电线,并且将它们重用于其他用途并不容易。我们将在后续续集中详细介绍这一点。

Verilog不仅是面向对象的,而且还是事件驱动编程的典型语言:事物要么完全是静态的(这些位进入或门),要么被事件(信号的改变,通常是时钟信号)触发它以某个频率在0和1之间振荡)。 “总是@(event-list)”是您说什么事件应导致语句执行的方式。

最后,Verilog是一种并行语言。 “静态”过程(例如进入“或”门的位)以及“事件驱动过程”(例如时钟从0变为1时执行的语句)都是并行发生的。在语句列表中,“ A<= B; C <= A;“是非阻塞分配。它们并行发生,因此A分配了B的值,C分配了A的(旧)值。

因此,例如prod [i]<= f [i] * v [i]设置prod的新值,并并行地从prod的旧值计算总和,使其成为流水线而不是串行计算。 (或者,我们可以使用屏蔽分配,用“ =”代替“ <=“,以串行方式完成所有操作。但是,这将花费更多时间来执行我们的一系列语句,从而降低了频率,因为在整个串行操作完成之前clk不能再从0切换到1。综合工具会告诉您完成设计后的最大设计频率。)

除了其面向对象,基于事件的并行核心之外,Verilog还提供了许多甜美的语法糖。您可以编写+和*,而不必用“ adder myadd(a,b)”或“ multiplier mymul(a,b)”实例化模块-尽管+和*最终被编译为模块实例(在乐橙云app上,这些是通常是DSP Slice实例)。您可以使用if语句和数组索引运算符来代替实例化多路复用器。您还可以编写要由编译器展开的循环,使用循环语法生成实例化,对设计进行参数化,以便可以由实例化这些常量的人进行配置,等等。

如果所有这些都没有使您兴奋,并且您希望使用C进行编程,那么可以。大量的“高级综合工具”-基本上是C到Verilog编译器-多年来它们的质量不断提高。

您将使用一个奇怪的C语言-没有函数指针或递归,没有扩展来指定整数中的确切位数,等等。您将不得不使用各种#pragmas来指导编译过程。而且您会遇到诸如array [index ++]不能真正与内存阵列一起工作-以及index ++不能真正做任何事情的事情,因为您不是从内存中而是从FIFO或直接从另一个模块的输出中获取值(就像我们的Verilog代码中的in_v不必来自内存,并且out_conv也不必须进入内存。)

但是您可以使用C,或-或Verilog来实现。无论哪种方式,您都可以编写可读性强的乐橙云app程序。


尤西·克雷宁(Yossi Kreinin)的下一篇文章:
   C的一页中的协程

[-]
评论者 霍巴萨2013年7月27日
优秀的文章!
[-]
评论者 理查德·约翰2015年4月17日
需要更多的开源!我认为这是最伤人的地方。 xilinx可能会免费为您提供一些IDE。.但是它是一个巨大的野兽,几乎没人能理解。我认为开放让所有人都赢。每个人都应该有一个fpga!
[-]
评论者 加拉维兹2018年2月17日

对于IDE等供应商的软件设计以及访问IP内核的许可,有时我会感到非常痛苦。那里有一些免费项目,特别是我正在关注一个很好的项目,名为Tinyfpga.com。他们已经推出了低成本的乐橙云app板。

[-]
评论者 雷米吉拉德2014年4月16日
伟大的伟大伟大的文章!
[-]
评论者 pablo522013年9月21日
谢谢,很棒的文章
[-]
评论者 火脚0072014年12月29日
面向初学者的关于乐橙云app的优秀资源
[-]
评论者 ponnagantiraju42015年4月4日
很棒的文章
[-]
评论者 格列高里乌斯2015年4月16日
我希望我买得起乐橙云app
[-]
评论者 马特·法齐奥2016年3月11日
好了,乐橙云app又是什么?
[-]
评论者 石英2016年4月4日
很棒的文章!您是否听说过部分重配置技术?简而言之,使用部分重新配置工作流使乐橙云app可以更改其路由和指令的某些部分,而其余器件仍在运行。尽管与此技术相关的限制,但这可能会使乐橙云app的灵活性提高到11位!

干杯!
[-]
评论者 BuildBrighton-保罗2016年6月3日
感谢您对当前fpga的深入了解。
[-]
评论者 sb412016年8月6日
将USB,DRAM控制器和以太网作为硬块,而不是在LUT(具有SERDES或收发器之类的几个低级I / O原语)上实现,将其优势几乎为零或接近于零。不便之处在于它们的设计不佳/模糊不清或有错误。这样的内核的开源,高质量HDL库会更好。
[-]
评论者 吉姆·富兰克林2017年3月4日

感谢您对乐橙云app的出色撰写。 

我对这些内容的接触有限,发现您的文章非常有用。

谢谢,喝杯啤酒!


[-]
评论者 vpoovathoor十月10,2018

我对乐橙云app的唯一经验是在大学期间,我们使用Quartus在VHDL中编程。本文是对新型乐橙云app布局的激动人心的一番(还不知道它们在技术上被独立的DSP所欺骗!)以及我第一次见到Verilog。期待阅读本系列的其余部分!非常感谢。 

要发布对评论的回复,请单击每个评论所附的“回复”按钮。要发布新评论(而不是回复评论),请查看评论顶部的“写评论”标签。

注册后,您可以参加所有相关网站上的论坛,并获得所有pdf下载的访问权限。

注册

我同意 使用条款隐私政策.

试试我们偶尔但很受欢迎的时事通讯。非常容易退订。
或登录