剖析FPGA怎么实现“超前进位加法器”(一)
从芯片设计/实现工程师的角度看FPGA是如何将“超前进位加法器”的RTL代码进行逻辑综合、布局布线实现。FPGA 主要有六部分组成:可编程输入输出单元(IO)、可编程逻辑单元(CLB)、完整的时钟管理、嵌入块状RAM、布线资源、内嵌的底层功能单元和内嵌专用硬件模块。其中最为主要的是可编程输出输出单元、可编程逻辑单元和布线资源。如下图,最左边橘色方块是PS7,即ARM-Cortex A9双核处理器,其右边橘色两列是IO,其余绝大部分是CLB(Configurable Logic Block)、以及BRAM、DSP等等资源。
首先我们来看Xilinx ZYNQ-7000的底层结构,可配置逻辑单元CLB (Configurable Logic Block)是FPGA 中最为丰富的资源,我们重点看看可配置逻辑单元CLB。
布局用到的LUT、Flip-Flop呈现高亮颜色,下图可以看见,设计绝大部分用的都是LUT和Flip-Flop。
CLB由两个SLICE组成,每个SLICE包含LUT查找表、Flip-Flop、进位链、MUX。如下图SLICE结构,布局用到的3个LUT、2个Flip-Flop呈现高亮颜色。
简而言之,可配置逻辑单元CLB包含如下:- 6 输入查找表(LUT6)
- 选择器(MUX)
- 进位链(Carry Chain)
- 触发器(Flip-Flop)
LUT6的结构如下:
一方面,LUT6可作为64x1的ROM使用;一方面,LUT6可作为分布式RAM使用,写同步,而读操作是直接译码输出,为了到底同步效果,可以利用SLICE的Flip-Flop打一拍输出,完成时序收敛。我们再看看Routing Resources:
局部放大看看:
仔细看下图SLICE的器件、绕线的利用情况,可以发现:
- LUT6作为组合逻辑使用;
- Flip-Flop作为时序逻辑使用;
- 使用了的绕线资源显示为绿色,未使用的绕线显示为灰色。
下文我们将重点介绍Xilinx FPGA中的进位链,根据进位链来实现加法、减法运算,其内部含4个MUX、4个2输入异或门(XOR),异或运算是加法运算中必不可少的。
先思考下,如果自己的大脑是EDA工具,如何利用上图进位链的单元实现超前进位加法呢?
时间原因,根据进位链来实现“超前进位加法器”的具体剖析见下文。
感谢阅读文章,如果文章有用,麻烦点个“在看”或转发分享。
转载:全栈芯片工程师
- 分享
- 举报
-
浏览量:6381次2021-12-24 09:00:21
-
浏览量:4502次2022-08-17 09:01:18
-
浏览量:6772次2022-04-01 09:00:15
-
浏览量:2904次2020-10-21 10:11:20
-
浏览量:3166次2020-08-22 16:09:02
-
浏览量:1252次2023-04-11 15:24:20
-
浏览量:5039次2021-04-11 01:10:40
-
浏览量:8184次2020-12-04 21:24:42
-
浏览量:7672次2021-02-07 00:59:28
-
浏览量:1644次2022-01-31 09:00:12
-
浏览量:48903次2019-07-26 15:43:22
-
浏览量:4578次2021-05-17 23:44:33
-
浏览量:3174次2020-11-20 10:19:03
-
浏览量:5683次2021-12-25 09:00:15
-
浏览量:6341次2021-03-22 00:49:53
-
浏览量:5788次2021-02-14 01:58:16
-
浏览量:942次2022-09-03 09:00:51
-
浏览量:812次2023-08-18 14:08:55
-
浏览量:1184次2023-08-18 10:36:32
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
david
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明