CN110764733B - 一种基于fpga的多种分布随机数生成装置 - Google Patents
一种基于fpga的多种分布随机数生成装置 Download PDFInfo
- Publication number
- CN110764733B CN110764733B CN201910976635.8A CN201910976635A CN110764733B CN 110764733 B CN110764733 B CN 110764733B CN 201910976635 A CN201910976635 A CN 201910976635A CN 110764733 B CN110764733 B CN 110764733B
- Authority
- CN
- China
- Prior art keywords
- module
- memory
- partition
- random number
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7803—System on board, i.e. computer system on one or more PCB, e.g. motherboards, daughterboards or blades
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于FPGA的多种分布随机数生成装置,该装置由振荡环阵列、组合逻辑、移位寄存、地址分配、存储器接口、存储器、随机数缓存和更新管理共8个模块构成。本发明支持多种分布随机数的实时生成和分布特性在线更新,且无需舍去无效随机数,具有随机数生成效率高、分布特性更改灵活性强等优点。
Description
技术领域
本发明属于数字电路设计技术领域,涉及一种基于FPGA的多种分布随机数生成装置。
背景技术
FPGA具有处理速度快、并行性强等诸多优点,是通信和信号处理算法实现的优选平台。通信和信号处理算法往往需要多种分布特性的随机数,而现有的FPGA随机数生成方法大多用于生成均匀分布的随机数,虽然已有研究人员采用取舍法或其改进方法实现了任意分布随机数的生成,但存在随机数生成效率低、分布特性更改灵活性差等问题,且对多种分布特性随机数同时生成的支持性较差。
发明内容
(一)发明目的
本发明的目的是:针对现有FPGA随机数生成实现方式存在的诸多问题,提供一种基于FPGA的多种分布随机数生成装置。
(二)技术方案
为了解决上述技术问题,本发明提供一种基于FPGA的多种分布随机数生成装置,包括:振荡环阵列、组合逻辑模块、移位寄存模块、地址分配模块、存储器接口、存储器、随机数缓存模块,振荡环阵列输出多个震荡信号,组合逻辑模块对震荡信号使用组合逻辑进行运算,并形成1路振荡信号输出给移位寄存模块;移位寄存模块采集振荡信号并移位寄存,生成随机01序列供地址分配模块使用;所述地址分配模块依据随机数缓存模块提供的FIFO新随机数需求选择相应的存储器分区,并根据该分区所使用的地址位数从移位寄存模块中获取等长度的随机01序列,将该序列作为存储器相应分区的地址和分区编号一起输出给存储器接口模块;所述存储器接口模块根据地址分配模块输出的分区编号和分区地址从存储器模块的指定区域读取随机数,存入随机数缓存模块与该分区编号对应的FIFO中。
所述振荡环阵列模块包括并列的m个不同的振荡环,每个振荡环是使用奇数个非门和延时电路组成的环形结构,并从环形的某一点抽头引出振荡信号送入后端组合逻辑模块。
所述组合逻辑模块对振荡环阵列模块输出的m个振荡信号使用组合逻辑进行运算,并形成1路振荡信号输出给移位寄存模块;组合逻辑模块可使用简单的纯异或逻辑或复杂的逻辑组合,其用于避免由于单个振荡环不起振、周期振荡等引入的随机性差问题,增强振荡信号的随机性。
所述移位寄存模块对组合逻辑模块输出的振荡信号进行采集,并移位寄存,从而生成随机01序列供地址分配模块使用;移位寄存的位数大于等于地址分配模块所需的最大地址位数。
为保证从存储器中获取随机数的随机性,地址分配模块每次获取的随机01序列不应存在重合部分。
所述存储器接口模块从存储器模块的指定区域读取随机数,并存入随机数缓存模块与该分区编号对应的FIFO中的同时可根据更新管理模块的指令对存储器模块的指定分区数据进行更新。
存储器模块包含n个分区,每个分区存储了指定概率分布的随机数,实现由地址到随机数的一一映射;存储器模块中的n个分区与随机数缓存模块中的n个FIFO同样存在一一对应关系。
随机数缓存模块由n个FIFO构成,每个FIFO用于缓存存储器模块对应分区的随机数;当某个FIFO需要数据填充时,随机数缓存模块会通知地址分配模块对应该FIFO获取新的地址,并通过随机数接口模块从存储器模块中读取相应随机数进行填充。
所述生成装置还包括更新管理模块,可根据外部数据源发送的更新数据,通过存储器接口模块更新存储器模块指定分区的数据,从而实现对相应分区随机数分布特性的更新或调整。
(三)有益效果
上述技术方案所提供的基于FPGA的多种分布随机数生成装置,支持多种分布随机数的实时生成和分布特性在线更新,且无需舍去无效随机数,具有随机数生成效率高、分布特性更改灵活性强等优点。
附图说明
图1是本发明一种基于FPGA的多种分布随机数生成装置的组成框图。
图2是本发明一种基于FPGA的多种分布随机数生成装置的振荡环示例。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
参照图1,本发明一种基于FPGA的多种分布随机数生成装置的具体实施例如下:
一种基于FPGA的多种分布随机数生成装置,由振荡环阵列、组合逻辑、移位寄存、地址分配、存储器接口、存储器、随机数缓存和更新管理共8个模块构成,其中:
所述振荡环阵列模块由8个不同的振荡环组成,每个振荡环是使用奇数个非门和延时电路组成的环形结构,并从环形的某一点抽头引出振荡信号送入后端组合逻辑模块,其中延时电路可利用FPGA内部自身的走线延时,也可利用lcell等缓冲结构,图2是一个3非门振荡环示例,其在FPGA内部实现时任意两个非门间存在走线延时。
所述组合逻辑模块对振荡环阵列模块输出的8个振荡信号使用组合逻辑进行运算,并形成1路振荡信号输出给移位寄存模块;组合逻辑模块可使用简单的纯异或逻辑或复杂的逻辑组合。对于纯异或逻辑,即令组合逻辑模块的输出等于8个输入振荡信号异或结果。对于复杂的逻辑组合,设计人员可根据需要使用选择器、异或或其他逻辑进行组合运算。
所述移位寄存模块对组合逻辑模块输出的振荡信号进行采集,并移位寄存,从而生成随机01序列供地址分配模块使用;本实施例的最大地址位数为16,因此移位寄存的位数应大于等于16,即移位寄存模块可并行输出一个大于等于16位的随机01序列。
所述地址分配模块依据随机数缓存模块提供的FIFO新随机数需求选择相应的存储器分区,并根据该分区所使用的地址位数从移位寄存模块中获取等长度的随机01序列,将该序列作为存储器相应分区的地址和分区编号一起输出给存储器接口模块。例如,当FIFO1非满且剩余随机数数量少于其他FIFO时,地址分配模块会收到FIFO1的新随机数需求,从而选择分区1,之后根据分区1所使用的地址位数从移位寄存模块中获取等长度的随机01序列,并将该序列作为存储器分区1的地址和分区编号1一起输出给存储器接口模块。
所述存储器接口模块根据地址分配模块输出的分区编号和分区地址从存储器模块的指定区域读取随机数,存入随机数缓存模块与该分区编号对应的FIFO中;同时可根据更新管理模块的指令对存储器模块的指定分区数据进行更新。
存储器模块包含4个分区,每个分区存储了指定概率分布的随机数,实现由地址到随机数的一一映射,本实施例每个分区对应分布分别为均匀分布、正态分布、梯形分布和反正弦分布,存储器模块的初始分布数据预先由烧写器写入或在FPGA第一次工作时通过更新管理模块写入;存储器模块中的4个分区与随机数缓存模块中的4个FIFO同样存在一一对应关系,即分区1对应FIFO1、分区2对应FIFO2,以此类推。
随机数缓存模块由4个FIFO构成,每个FIFO用于缓存存储器模块对应分区的随机数;当某个FIFO需要数据填充时,随机数缓存模块会通知地址分配模块对应该FIFO获取新的地址,并通过随机数接口模块从存储器模块中读取相应随机数进行填充。
更新管理模块可根据外部数据源发送的更新数据,通过存储器接口模块更新存储器模块指定分区的数据,从而实现对相应分区随机数分布特性的更新或调整,例如改变分区1中均匀分布的上下边界等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (1)
1.一种基于FPGA的多种分布随机数生成装置,其特征在于,包括:振荡环阵列模块、组合逻辑模块、移位寄存模块、地址分配模块、存储器接口、存储器、随机数缓存模块,振荡环阵列模块输出多个震荡信号,组合逻辑模块对震荡信号使用组合逻辑进行运算,并形成1路振荡信号输出给移位寄存模块;移位寄存模块采集振荡信号并移位寄存,生成随机01序列供地址分配模块使用;所述地址分配模块依据随机数缓存模块提供的FIFO新随机数需求选择相应的存储器分区,并根据该分区所使用的地址位数从移位寄存模块中获取等长度的随机01序列,将该序列作为存储器相应分区的地址和分区编号一起输出给存储器接口模块;所述存储器接口模块根据地址分配模块输出的分区编号和分区地址从存储器模块的指定区域读取随机数,存入随机数缓存模块与该分区编号对应的FIFO中;
所述振荡环阵列模块包括并列的m个不同的振荡环,每个振荡环是使用奇数个非门和延时电路组成的环形结构,并从环形的某一点抽头引出振荡信号送入后端组合逻辑模块;
所述组合逻辑模块对振荡环阵列模块输出的m个振荡信号使用组合逻辑进行运算,并形成1路振荡信号输出给移位寄存模块;
所述移位寄存模块中,移位寄存的位数大于等于地址分配模块所需的最大地址位数;
所述地址分配模块每次获取的随机01序列不存在重合部分;
所述存储器模块包含n个分区,每个分区存储了指定概率分布的随机数,实现由地址到随机数的一一映射;存储器模块中的n个分区与随机数缓存模块中的n个FIFO同样存在一一对应关系;
所述随机数缓存模块包括n个FIFO,每个FIFO用于缓存存储器模块对应分区的随机数;当某个FIFO需要数据填充时,随机数缓存模块会通知地址分配模块对应该FIFO获取新的地址,并通过随机数接口模块从存储器模块中读取相应随机数进行填充;
生成装置还包括:更新管理模块,根据外部数据源发送的更新数据,通过存储器接口模块更新存储器模块指定分区的数据,实现对相应分区随机数分布特性的更新或调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910976635.8A CN110764733B (zh) | 2019-10-15 | 2019-10-15 | 一种基于fpga的多种分布随机数生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910976635.8A CN110764733B (zh) | 2019-10-15 | 2019-10-15 | 一种基于fpga的多种分布随机数生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110764733A CN110764733A (zh) | 2020-02-07 |
CN110764733B true CN110764733B (zh) | 2023-06-30 |
Family
ID=69332306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910976635.8A Active CN110764733B (zh) | 2019-10-15 | 2019-10-15 | 一种基于fpga的多种分布随机数生成装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110764733B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949242B (zh) * | 2020-08-20 | 2023-10-17 | 桂林电子科技大学 | 基于fpga的亚稳态真随机数发生器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1060541A (zh) * | 1991-11-16 | 1992-04-22 | 电子科技大学 | 一种数字式任意概率分布的随机信号发生器 |
CN102736890A (zh) * | 2011-04-15 | 2012-10-17 | 深圳市证通电子股份有限公司 | 基于开环结构的高速随机数发生器 |
CN104980185A (zh) * | 2015-06-24 | 2015-10-14 | 电子科技大学 | 非均匀任意概率分布跳频序列产生方法 |
CN107315565A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
EP3396524A1 (en) * | 2017-04-28 | 2018-10-31 | INTEL Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
-
2019
- 2019-10-15 CN CN201910976635.8A patent/CN110764733B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1060541A (zh) * | 1991-11-16 | 1992-04-22 | 电子科技大学 | 一种数字式任意概率分布的随机信号发生器 |
CN102736890A (zh) * | 2011-04-15 | 2012-10-17 | 深圳市证通电子股份有限公司 | 基于开环结构的高速随机数发生器 |
CN104980185A (zh) * | 2015-06-24 | 2015-10-14 | 电子科技大学 | 非均匀任意概率分布跳频序列产生方法 |
CN107315565A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
EP3396524A1 (en) * | 2017-04-28 | 2018-10-31 | INTEL Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
Non-Patent Citations (1)
Title |
---|
一种基于FPGA的真随机数生成器的设计;霍文捷 等;《华中科技大学学报(自然科学版)》;20090131;正文第73-75页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110764733A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11677662B2 (en) | FPGA-efficient directional two-dimensional router | |
TWI719788B (zh) | 可重組態資料處理器的虛擬化 | |
US10027433B2 (en) | Multiple clock domains in NoC | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
CA3044672C (en) | Distributed control synchronized ring network architecture | |
CN112189324B (zh) | 带宽匹配的调度器 | |
CN110764733B (zh) | 一种基于fpga的多种分布随机数生成装置 | |
US8106683B2 (en) | One phase logic | |
WO2022262341A1 (zh) | 一种数据调度系统、可重构处理器及数据调度方法 | |
KR102403476B1 (ko) | 딥러닝 분산 학습 시스템 및 동작 방법 | |
JP2013008270A (ja) | 並列演算装置及びマイクロコンピュータ | |
US8812783B2 (en) | Operation apparatus, cache apparatus, and control method thereof | |
KR20060110362A (ko) | 프로그래머블 논리 회로 | |
JP6094321B2 (ja) | バッファ回路及び半導体集積回路 | |
RU139326U1 (ru) | Вычислительный модуль | |
KR100617386B1 (ko) | 네트웍 온 칩 어플리케이션을 위한 버터플라이 팻-트리를사용한 비동기 스위치 회로 | |
Jara-Berrocal et al. | SCORES: A scalable and parametric streams-based communication architecture for modular reconfigurable systems | |
CN113795831B (zh) | 一种多功能的数据重组网络 | |
CN113852574B (zh) | 一种片上网络路由器 | |
CN114095289B (zh) | 数据多播电路、方法、电子设备及计算机可读存储介质 | |
CN109445748B (zh) | 一种快速求取中值方法及系统 | |
CN117795913A (zh) | 使用多重变换的数据总线反转 | |
CN116360998A (zh) | 片上网络的处理方法、装置及片上网络 | |
Oveis-Gharan et al. | Packet-based Adaptive Virtual Channel Configuration for NoC Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |