笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器

摘要:
对于那些大于18×18的乘法运算,QuartusII软件会将多个嵌入式乘法器模块级联在一起。除了CycloneIV器件中的嵌入式乘法器,通过将M9K存储器模块用作查找表可以实现软乘法器。CycloneIV器件的嵌入式乘法器,可以实现乘法加法器和乘法累加器功能,这一功能的乘法器部分由嵌入式乘法器来实现,而加法器或者累加器功能则在逻辑单元中实现。用于驱动同一嵌入式乘法器的所有DataA输入数据必须要有相同的符号表示。

嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器。对于那些大于18 × 18 的乘法运算 ,QuartusII 软件会将多个嵌入式乘法器模块级联在一起。虽然没有乘法器数据位宽的限制,但数据位宽越大,乘法运算就会越慢。

除了 Cyclone IV 器件中的嵌入式乘法器,通过将 M9K 存储器模块用作查找表 (LUT) 可以实现软乘法器。

根据乘法器的操作模式,您可以将每个乘法器输入信号连接到输入寄存器,您可以单独地设置乘法器的每个输入是否使用输入寄存器。

根据乘法器的数据宽度或者操作模式,单一嵌入式乘法器能够同时执行一个或者两个乘法运算

signa与signb信号控制乘法器的输入,并决定值是有符号的还是无符号的。如果signa信号为高电平,则 Data A操作数是一个有符号数值。反之,Data A操作数便是一个无符号数值。如果任何一个操作数为有符号数,则乘积的结果为有符号数。

如果嵌入式乘法器有两个 9 × 9 乘法器,那么这两个乘法器的 Data A输入与Data B输入将分别共享同一个signa信号和同一个signb信号。您可以在运行时动态改变signa和signb信号,以修改输入操作数的符号表示。您可以通过专用的输入寄存器发送signa以及signb。不管符号表示如何,乘法器都会支持全精度。

当signa与signb信号未使用时,Quartus II 软件会将乘法器默认设置成执行无符号乘法运算。

Cyclone IV 器件的嵌入式乘法器,可以实现乘法加法器和乘法累加器功能,这一功能的乘法器部分由嵌入式乘法器来实现,而加法器或者累加器功能则在逻辑单元 (LE) 中实现。

另外,您也可以动态修改signa与signb信号,并且通过专用的输入寄存器发送这些信号。

用于驱动同一嵌入式乘法器的所有Data A输入数据必须要有相同的符号表示。同样,用于驱动同一嵌入式乘法器的所有Data B输入数据也必须要有相同的符号表示。

免责声明:文章转载自《笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Recurrent Neural Network系列2--利用Python,Theano实现RNN广播、应用Android BroadcastReceiver(一)by小雨下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ASM

在学习汇编之前,我们要介绍一下常用的函数调用约定,以便我们对于一些指令的理解。 函数调用约定 常见的函数调用约定:stdcall , cdecl, fastcall, thiscall, naked call 1, __cdecl(C调用约定.)C/C++ 缺省调用方式 1)压栈顺序: 函数参数从右到左 2)参数栈维护: 由调用函数把参数弹出栈,传送参数的...

C# 数据类型

C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用.值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数组类型.值类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量把它们的引用存储在对象中.对于引用类型的变量,完全有可能让两个不同的变量引用同一...

汇编效率优化:指令处理机制

大多数情况下,编写程序都不会使用汇编语言而是使用高级语言,原因大致有以下几点: 花费更多时间。高级语言的一行相当于汇编语言的几行、几十行甚至更多。 不够安全。比如说在进行函数调用时PUSH与POP必须成对出现,高级语言中的函数调用会自动为你执行PUSH与POP的操作,但是汇编语言中就必须由程序员自己保证PUSH与POP一致,否则会导致栈错乱,使得程序出现...

字节码指令简介(转)

字节码指令简介(转) 原文阅读 操作码:一个字节长度、代表某种特定操作含义的数字。 操作数:跟在操作码后面0个或多个代表此操作所需的参数。 Java虚拟机的指令 = 操作码 + 操作数。由于Java虚拟机采用面向操作数栈,所以大多指令都不包含操作数,只有一个操作码。 Java虚拟机的解释器(不考虑异常): do { 自动计算PC寄存器...

Java运行时栈帧结构

Java运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元,“栈帧”则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址和一些额外的附加信息。在编译Java程序源码的时候,栈帧中需要多大的局部变量表,需要多深的操作数栈就已经被分析计算出来了,...

ARM Linux BenchMark【转】

转自:https://blog.csdn.net/sy373466062/article/details/49070025 背景说明 许多公司有很多不同的ARM SoC的研发产品,ARM核心可能有Cortex-A8/A9/A15,核心数可能有单核双核和四核.现在,几乎每出一款手机,网络上马上就有人对其评测.对比和评测不同ARM SoC 芯片以及嵌入式系统是...