Verilog并行加法树实现
在项目过程中需要用FPGA在尽量少的时钟周期内实现多个数据相加。如果直接用组合的形式实现延迟太高,占用资源也太多,因此考虑基于流水线的并行加法树来实现多个数据相加,主要参考文章https://blog.csdn.net/MmikerR/article/details/106469344,使用Verilog对加法树进行了实现,通过模块的递归调用,实现了任意个数、任意位宽数据的并行加法计算。
整个结构类似于二叉树,每一级将待加数据分成2组,通过递归最后分解为单个数,结合DELAY_STAGES参数的传递实现单枝上数据的延迟,每个节点插入寄存器。每个节点都对其两个子节点的输出进行求和。每一层中间插入寄存器,实现流水作业,同时,根据实际需求也可以通过DELAY_STAGES参数的设置实现不插入寄存器的纯组合形式。对L=7个数进行求和计算过程如下图所示,每个节点的输出表示对L个数求和的结果。
System Verilog的程序参考博客中已经给出了,在转写Verilog的过程中有几点需要注意:
1)generate if的用法
2)二维数组打平
3)参数控制树的深度和求和个数
4)移位寄存器的改写
5)位宽匹配
仿真测试了对256个1bit数相加的结果,计算共用了8个时钟周期。
Verilog并行加法树实现相关推荐
- FPGA并行加法树设计
之前在设计中遇到过1个问题,如何在verilog中并行实现大量数据(几十.几百个甚至更多)的加法操作. 最直接想到的方法一般会类似: reg [7:0] data [N - 1 : 0];wire[M ...
- 数字电路基础知识——组合逻辑电路之乘法器的设计(一)—— 并行、移位相加、加法树、查找表乘法器
数字电路基础知识--乘法器的设计(一)-- 并行.移位相加.加法树.查找表 乘法器的设计主要应用在数字信号处理和数字通信,本节主要介绍乘法器的四种实现方法.使用并行乘法器.移位相加乘法器.查找表乘法器 ...
- 网站性能分析(下)-让网站并行加载但顺序执行JS
如果网站不支持JavaScript,复杂的功能将无法正常工作.在开发当中通常有几个脚本会写在HTML文件的头部.你嵌入的越多,网站的速度潜在的变得越慢.因此提高并行加载速度变得非常有必要,在前面的文章 ...
- 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载
伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...
- ajax加载对应的json,jQuery:多个AJAX/JSON请求对应单个回调并行加载
因为我们使用jQuery,这意味着需要调用 jQuery.getScript 和 jQuery.getJSON 函数. 我知道这些函数都是异步执行(asyncronously)并且会延迟一段时间返回, ...
- mysql并行加载机制_Mysql表引擎优化
http://blog.csdn.net/naughty610/article/details/7464794 MyISAM: 第一,优化参数 这个表引擎只存储索引的缓存,而不存储数据的缓存.可以通过 ...
- 【Azure Data Platform】ETL工具(13)——ADF并行加载多个文件
本文属于[Azure Data Platform]系列. 接上文:[Azure Data Platform]ETL工具(12)--ADF 参数 本文介绍ADF 的并行导入多个文件 前言 在一个数据类的 ...
- 【Verilog基础】Verilog实现加扰器(Scrambler )与解扰器(Descrambler)
文章目录 一.加扰器和解扰器简介 二.加扰器和解扰器原理框图 三.加扰器和解扰器Verilog实现 3.1.加扰器实现 3.2.解扰器实现 3.3.TestBench 参考 一.加扰器和解扰器简介 一 ...
- html并行加载,html – 浏览器中的最大并行HTTP连接数?
我创建一些挂起的连接到http服务器(彗星,反向ajax等).它工作确定,但我看到浏览器只允许同时给定域的两个挂起的连接.因此,如果用户在他们的浏览器的Tab1中查看我的网络应用程序,也尝试在Tab2 ...
- verilog自加为什么会出现高阻态
之前在写自加逻辑时,仿真结果经常会出现高阻态,常常百思不得其解,这次简单分析一下. always@(negedge clk_ad or negedge rst_n)begin if(!rst_n)be ...
最新文章
- 月薪5万程序员眼中的单例模式
- create-react-app支持antd按需导入
- python3 ssl.CertificateError: hostname manifest.googlevideo.com doesn t match either
- flask_requirements
- mac改变文件权限git识别为修改的问题
- numpy(1)-numpy.ndarray
- union all怎么用在循环里_ai软件怎么使用?ai里基本功能怎么用?
- 定时修改列表 服务器版,Unity定时回调(服务端不依赖Update)
- java listener详解_Java监听器Listener使用详解
- Converter Tutorial
- 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT
- linux里的网卡自动连接,【Raspberry Pi】USB无线网卡自动连接
- java读取clob字段的几种方法(转)
- Ansible Inventory
- 解决只可以上QQ却不可以上网问题
- python 无头浏览器_python3使用无头浏览器
- 传说中的世界500强面试题-数学能力(2)
- 10g gtx 光纤通信测试_光纤通信系统仿真实验
- 清华现超级“学霸” 15门课程100分4门99分(图)
- 站内信 java_站内信的实现思路表的设计
热门文章
- python实战演练二:抓取我自己csdm博客信息的标题和文章链接,并存入文件夹《列表存入数据到txt》
- 用python批量下载网易云音乐_python实现网易云音乐批量下载
- 数理统计中的卡方分布,t分布和F分布
- python常用代码大全,常用库大全
- 物联网(IOT)介绍与发展背景
- ildasm.exe查看dll库支持的Net版本
- android真机调试工具,ADB 安卓真机调试工具
- linux 交叉编译yuv,libyuv交叉编译
- python压缩视频文件_python压缩图片和视频
- 第十届泰迪杯数据挖掘B题电力系统负荷预测分析