RU2723271C1 - Method for generation of digital white gaussian noise using the wallace method - Google Patents

Method for generation of digital white gaussian noise using the wallace method Download PDF

Info

Publication number
RU2723271C1
RU2723271C1 RU2019130892A RU2019130892A RU2723271C1 RU 2723271 C1 RU2723271 C1 RU 2723271C1 RU 2019130892 A RU2019130892 A RU 2019130892A RU 2019130892 A RU2019130892 A RU 2019130892A RU 2723271 C1 RU2723271 C1 RU 2723271C1
Authority
RU
Russia
Prior art keywords
addresses
bit
samples
generator
mask
Prior art date
Application number
RU2019130892A
Other languages
Russian (ru)
Inventor
Александр Эдуардович Жданов
Original Assignee
Акционерное общество "Концерн "Созвездие"
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Акционерное общество "Концерн "Созвездие" filed Critical Акционерное общество "Концерн "Созвездие"
Priority to RU2019130892A priority Critical patent/RU2723271C1/en
Application granted granted Critical
Publication of RU2723271C1 publication Critical patent/RU2723271C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/022Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03BGENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
    • H03B29/00Generation of noise currents and voltages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

FIELD: electrical engineering.SUBSTANCE: invention relates to electrical engineering and can be used to simulate a communication channel for checking a noise-immune encoding module. In the method it is proposed to generate pseudo-random addresses as follows: p=(start – stride)⊕mask; q=start⊕mask; s=(start + stride)⊕mask; r=(start + stride<<1)⊕mask. Subtraction operation is equivalent to adding operation when using binary-additional code and collectively also takes one cycle. Thus, all four addresses can be obtained in one cycle and transmitted to a memory unit. These addresses are obtained in exact accordance with the Wallace algorithm. It should be noted that subtraction is performed modulo N=1024, i.e. number -1 is equivalent to number 1023. At the same time correlation of output readings is reduced at use of only one matrix Adue to use of one of remaining bits from 32-digit reference of generator of uniform random numbers for change of sign of readings p', q', r', s'.EFFECT: faster operation of a digital white Gaussian noise generator.1 cl, 2 dwg

Description

Предлагаемый способ относится к области электротехники, в частности к способу моделирования канала связи для проверки модуля помехоустойчивого кодирования.The proposed method relates to the field of electrical engineering, in particular to a method for modeling a communication channel for testing a noise-resistant coding module.

Естественным путем реализации алгоритма помехоустойчивого кодирования является следующая последовательность действий.The natural way to implement the error-correcting coding algorithm is as follows.

1) Моделирование алгоритма на языке высокого уровня (C – C++, Matlab, Octave, SystemC, OpenCL), причем в целых числах.1) Modeling the algorithm in a high-level language (C - C ++, Matlab, Octave, SystemC, OpenCL), and in integers.

2) Реализация алгоритма на ПЛИС (программируемая логическая интегральная схема) [Стешенко В. Б. ПЛИС фирмы Altera: Проектирование устройств обработки сигнала, Москва 2000]. ПЛИС представляет собой набор логических элементов на плате и регистров, состоящих из двоичных чисел заданной разрядности, с возможностью их программно коммутировать. Первое отличие от реализации алгоритма на компьютере состоит в том, что разрядность каждого регистра может быть выбрана произвольно, и она не обусловлена разрядностью центрального процессора, которого нет. Второе отличие состоит в том, что все действия выполняют одновременно и параллельно, но на более низкой тактовой частоте чем в системе центральным процессором. Описание алгоритма в этом случае состоит из статического описания коммутации элементов и динамического описания их взаимодействия (VHDL, Verilog). Здесь уже помимо правильности реализации алгоритма возникают вопросы энергопотребления и физического быстродействия. На каждый структурный блок подается синхроимпульс, обеспечивающий его динамическое взаимодействие с остальными, причем сам элемент имеет емкость и/или индуктивность, коммутирующая линия также имеет активное и реактивное сопротивление, которое растет с размерами схемы, что вынуждает увеличивать напряжение питания с целью предотвратить “размывание” фронтов синхронизирующих импульсов. Все выше изложенные факторы ограничивают тактовую частоту ПЛИС 200 МГц. В настоящее время идут попытки использовать язык высокого уровня для программирования ПЛИС, это осложняется тем фактом, что языки высокого уровня не имеют средств для описания статических связей. Однако, есть библиотечные расширения (SystemC) над языком C/C++, которые позволяют моделировать системное поведение модели посредством описания интерфейсов, очередей, сигналов в статическом и динамическом виде, но подобное моделирование не учитывает реальные физические процессы в микросхеме. 2) Implementation of the algorithm on the FPGA (programmable logic integrated circuit) [Steshenko VB FPGA company Altera: Design of signal processing devices, Moscow 2000]. FPGA is a set of logic elements on the board and registers consisting of binary numbers of a given bit capacity, with the ability to commute them programmatically. The first difference from the implementation of the algorithm on a computer is that the capacity of each register can be arbitrarily selected, and it is not caused by the capacity of the central processor, which is not there. The second difference is that all actions are performed simultaneously and in parallel, but at a lower clock frequency than in the system by the central processor. The description of the algorithm in this case consists of a static description of the switching of elements and a dynamic description of their interaction (VHDL, Verilog). Here, in addition to the correct implementation of the algorithm, questions of energy consumption and physical performance arise. A synchronization pulse is supplied to each structural block, ensuring its dynamic interaction with the others, the element itself having a capacitance and / or inductance, the switching line also has an active and reactive resistance that grows with the dimensions of the circuit, which forces the supply voltage to increase in order to prevent “erosion” fronts of synchronizing pulses. All of the above factors limit the FPGA clock frequency of 200 MHz. Currently, there are attempts to use a high-level language for programming FPGAs, this is complicated by the fact that high-level languages do not have the means to describe static links. However, there are library extensions (SystemC) over the C / C ++ language that allow you to model the system behavior of the model by describing the interfaces, queues, signals in a static and dynamic form, but such a simulation does not take into account the real physical processes in the chip.

Верификация разрабатываемых алгоритмов достигается за счет последовательного применения тестовых векторов, разработанных на предыдущих стадиях. Тестовый вектор может являться оцифрованной смесью сигнала и шума, бинарной конфигурацией ошибок с заданными свойствами, любым набором тестовых значений, который, будучи поданными на вход разрабатываемого устройства или элемента этого устройства, вызовет предсказанную (на предыдущей стадии) реакцию. Хотелось бы отметить, что алгоритмы помехоустойчивого кодирования исправляют все ошибки, в том числе ошибки разработчика и программиста, поэтому часть тестов не связанная с моделированием Монте-Карло в белом гауссовском шуме, может быть пройдена успешно и при наличии ошибок в реализации. Полную верификацию обеспечивают статистически достоверное моделирование на ПЛИС по методу Монте Карло в канале, где аддитивной помехой является белый гауссовский шум (БГШ). Поэтому весьма актуальной является задача разработки компонентов такой модели, в частности генератора белого гауссовского шума в целых числах для реализации его на ПЛИС. Verification of the developed algorithms is achieved through the consistent use of test vectors developed in the previous stages. A test vector can be a digitized mixture of signal and noise, a binary configuration of errors with specified properties, any set of test values that, when applied to the input of a device being developed or an element of this device, will cause a predicted (at the previous stage) reaction. I would like to note that error-correcting coding algorithms correct all errors, including those of the developer and programmer, so some tests that are not related to Monte Carlo simulations in white Gaussian noise can be successfully completed even if there are errors in the implementation. Complete verification is provided by statistically reliable FPGA simulation using the Monte Carlo method in a channel where the additive interference is white Gaussian noise (BSS). Therefore, the urgent task is to develop the components of such a model, in particular, a white Gaussian noise generator in integers for its implementation on the FPGA.

Известные алгоритмы такие Бокса-Мюллера [G. E. P. Box and M. E. Muller, “A note on the generation of randomnormal deviates,” Ann. Math. Stat., vol. 29, pp. 610–61, 1958.] и полярный [Marsaglia, G.; Bray, T. A. (1964). "A Convenient Method for Generating Normal Variables". SIAM Review. 6 (3): 260–264. doi:10.1137/1006063. JSTOR 2027592., D. E. Knuth, The Art of Computer Programming, Volume 2: Seminumerical Algorithms (second edition). Addison-Wesley, Menlo Park, 1981.] требуют вычисления функций log, sin, cos, что является сложной задачей для реализации в целочисленной арифметике. Уоллес предложил свой метод [C. S. Wallace "Fast Pseudorandom Generators for Normal and Exponential Variates", ACM Transactions on Mathematical Software, Vol. 22, No 1, March 1996, Pages 119-127] не требовавший вычислений с плавающей точкой, по крайней мере на каждом такте. Well-known algorithms are Box-Muller [G. E. P. Box and M. E. Muller, “A note on the generation of randomnormal deviates,” Ann. Math. Stat., Vol. 29, pp. 610–61, 1958.] and polar [Marsaglia, G .; Bray, T. A. (1964). "A Convenient Method for Generating Normal Variables." SIAM Review. 6 (3): 260–264. doi: 10.1137 / 1006063. JSTOR 2027592., D. E. Knuth, The Art of Computer Programming, Volume 2: Seminumerical Algorithms (second edition). Addison-Wesley, Menlo Park, 1981.] require the calculation of the functions log, sin, cos, which is a difficult task to implement in integer arithmetic. Wallace proposed his method [C. S. Wallace "Fast Pseudorandom Generators for Normal and Exponential Variates", ACM Transactions on Mathematical Software, Vol. 22, No. 1, March 1996, Pages 119-127] that did not require floating-point calculations, at least at every measure.

Способ Уоллеса состоит в следующем:Wallace's method is as follows:

• заранее заполняют массив из

Figure 00000001
элементов гауссовскими случайными величинами с нулевым матожиданием и единичной дисперсией;• pre-populate an array of
Figure 00000001
elements with Gaussian random variables with zero expectation and unit dispersion;

• формируют

Figure 00000002
адресов для доступа к массиву, первый из которых равномерно распределенное случайное число от
Figure 00000003
до
Figure 00000004
, а остальные
Figure 00000005
;• form
Figure 00000002
addresses to access the array, the first of which is a uniformly distributed random number from
Figure 00000003
before
Figure 00000004
and the rest
Figure 00000005
;

• для

Figure 00000006
случайных величин выполняют ортогональное линейное преобразование путем умножения на ортогональную матрицу, получая
Figure 00000007
новых отсчетов;• for
Figure 00000006
random variables perform an orthogonal linear transformation by multiplying by an orthogonal matrix, obtaining
Figure 00000007
new readings;

Figure 00000008
• раз повторяют шаги 2 и 3, формируют новый массив из
Figure 00000009
, перемежают его, записывая по строкам и читая по столбцам в перемежителе
Figure 00000010
, перемеженным массивом заменяют первоначально инициализированный массив;
Figure 00000008
• once repeat steps 2 and 3, form a new array of
Figure 00000009
, interleave it, writing row by row and reading column by column in the interleaver
Figure 00000010
interleaved array replace the initially initialized array;

• вычисляют корректирующий множитель, используя последний элемент из нового массива, умножают на корректирующий нормирующий множитель на

Figure 00000011
элементов массива, которые являются выходом алгоритма.• calculate the correction factor using the last element from the new array, multiply by the correction normalization factor by
Figure 00000011
array elements that are the output of the algorithm.

В дальнейшем алгоритм для улучшения статистических свойств, в частности снижения корреляции между отсчетами претерпел ряд изменений. In the future, the algorithm for improving statistical properties, in particular, to reduce the correlation between samples, underwent a number of changes.

Аналогом является китайская заявка Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A приоритет 2018/01/16 опубликована 2018/08/10, где приведен генератор белого гауссовского шума, реализованный по алгоритму Уоллеса [C. S. Wallace, Fast Pseudo-Random Generators for Normal and Exponential Variates, ACM Trans. on Mathematical Software 22 (1996), 119–127]. An analogue is the Chinese application Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A priority 2018/01/16 published on 2018/08/10, where a white Gaussian noise generator implemented by the Wallace algorithm is given [C. S. Wallace, Fast Pseudo-Random Generators for Normal and Exponential Variates, ACM Trans. on Mathematical Software 22 (1996), 119–127].

Способ, реализованный в данном устройстве отличается от способа из статьи [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip H. W. Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005] тем, что:The method implemented in this device differs from the method from [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip HW Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION ( VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005] in that:

• взят другой генератор равномерных случайных величин (более простой);• another generator of uniform random variables (simpler) was taken;

• адреса вычисляют по формулам:• addresses are calculated by the formulas:

Figure 00000012
Figure 00000012

Вычисление каждого из адресов займет не больше такта, так как в случае

Figure 00000013
суммирование с единицей есть просто присоединение дополнительного бита. Однако в [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip H. W. Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005] указывается, что изменение алгоритма генерации адресов весьма критично влияет на статистические свойства результирующей последовательности, поэтому точное выполнение алгоритма Уоллеса в плане генерации псевдослучайных адресов имеет важное значение. В заявке CN108390648A добились сбалансированного вычисления адресов, т. е. каждый адрес вычисляют за одинаковое количество тактов, только за счет изменения оригинального алгоритма. Calculation of each of the addresses will take no more than a beat, since in the case of
Figure 00000013
summing with a unit is simply adding an extra bit. However, in [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip HW Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005], it is pointed out that changing the address generation algorithm has a very critical effect on the statistical properties of the resulting sequence; therefore, the exact execution of the Wallace algorithm in terms of pseudo-random address generation is important. In the application CN108390648A, a balanced calculation of addresses was achieved, that is, each address is calculated for the same number of clock cycles, only by changing the original algorithm.

Наиболее близким к заявляемому является способ, описанный в [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip H. W. Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005], принятый за прототип.Closest to the claimed is the method described in [Dong-U Lee, Wayne Luk, John D. Villasenor, Guanglie Zhang, Philip HW Leong "A Hardware Gaussian Noise Generator Using the Wallace Method" IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 13, NO. 8, AUGUST 2005] adopted as a prototype.

Способ-прототип состоит в следующем:The prototype method is as follows:

• заранее заполняют массив из

Figure 00000001
элементов гауссовскими случайными величинами с нулевым матожиданием и единичной дисперсией;• pre-populate an array of
Figure 00000001
elements with Gaussian random variables with zero expectation and unit dispersion;

• каждый такт, используя 32 битный отсчет генератора равномерных случайных чисел, формируют два 10-разрядных числа:

Figure 00000014
и одно 9-разрядное число
Figure 00000015
путем последовательного взятия бит, с первого по десятый, с одиннадцатого по двадцатый, с двадцать первого по двадцать девяты1;• each cycle, using a 32-bit sample of the generator of uniform random numbers, forms two 10-bit numbers:
Figure 00000014
and one 9-bit number
Figure 00000015
by sequentially taking bits from the first to the tenth, from the eleventh to the twentieth, from the twenty-first to twenty-ninth1;

• в каждый такт формируют 4 адреса: • 4 addresses are formed in each clock cycle:

Figure 00000016
Figure 00000016

• считывают по сформированным адресам отсчеты

Figure 00000017
, формируют 4-х мерный вектор
Figure 00000018
, выполняют ортогональное линейное преобразование
Figure 00000019
, • read counts at the generated addresses
Figure 00000017
form a 4-dimensional vector
Figure 00000018
perform orthogonal linear transformation
Figure 00000019
,

• где

Figure 00000020
,
Figure 00000021
• where
Figure 00000020
,
Figure 00000021

матрицы

Figure 00000022
и
Figure 00000023
используют попеременно и меняют через каждые
Figure 00000024
отсчета;matrices
Figure 00000022
and
Figure 00000023
use alternately and change every
Figure 00000024
countdown;

• полученные отсчеты

Figure 00000025
записывают в массив по новым адресам
Figure 00000026
, полученным за то время, пока выполнялось ортогональное преобразование;• received readings
Figure 00000025
write to the array at new addresses
Figure 00000026
obtained while the orthogonal transformation was performed;

• также отсчеты

Figure 00000025
поступают на вход блока коррекции, где каждый отсчет умножают на корректирующий множитель
Figure 00000027
, получая отсчеты
Figure 00000028
, которые являются выходом алгоритма;• also readings
Figure 00000025
arrive at the input of the correction block, where each sample is multiplied by a correction factor
Figure 00000027
getting samples
Figure 00000028
which are the output of the algorithm;

• каждые

Figure 00000029
отсчетов производят корректировку корректирующего множителя по формуле
Figure 00000030
, где
Figure 00000031
текущий отсчет
Figure 00000032
предвычисленные константы.• every
Figure 00000029
samples correct the correction factor according to the formula
Figure 00000030
where
Figure 00000031
current countdown
Figure 00000032
precomputed constants.

Необходимость корректирующего множителя обусловлена тем, что в случае его отсутствия, сумма квадратов каждых

Figure 00000033
отсчетов была бы константой, что неприемлемо для моделирования. В качестве генератора 32-битных равномерных случайных чисел используют генератор Таусворта [ P. L’Ecuyer, “Maximally equidistributed combined Tausworthe generators,” Math. Comput., vol. 65, no. 213, pp. 203–213, 1996] с порождающим полиномом
Figure 00000034
. Периодичность такого генератора
Figure 00000035
бит.The need for a correction factor is due to the fact that if it is absent, the sum of the squares of each
Figure 00000033
samples would be a constant, which is unacceptable for modeling. As a 32-bit uniform random number generator, the Tausworth generator [P. L'Ecuyer, “Maximally equidistributed combined Tausworthe generators,” Math. Comput., Vol. 65, no. 213, pp. 203–213, 1996] with a generating polynomial
Figure 00000034
. The frequency of such a generator
Figure 00000035
bit.

Рассмотрим работу блока ортогонального линейного преобразования. Легко видеть, что отсчеты

Figure 00000025
могут быть получены посредством следующих операций: Consider the operation of the orthogonal linear transformation unit. Easy to see counts
Figure 00000025
can be obtained through the following operations:

Figure 00000036
Figure 00000036

Figure 00000037
для матрицы
Figure 00000038
,
Figure 00000037
for matrix
Figure 00000038
,

Figure 00000039
для матрицы
Figure 00000040
.
Figure 00000039
for matrix
Figure 00000040
.

Нетрудно видеть, что

Figure 00000041
. Эти вычисления займут три такта и могут быть выполнены в конвейерном режиме. Матрицы используют поочередно, каждые
Figure 00000042
отсчетов меняя между собой.It is easy to see that
Figure 00000041
. These calculations will take three clock cycles and can be performed in pipelined mode. Matrices are used alternately every
Figure 00000042
counts changing among themselves.

Рассмотрим работу блока формирования адресов. Операция суммы с последующим сложением результата по модулю 2 является быстрой операцией, которая может быть выполнена за один такт. Также быстрой является операция умножение на 2, которая, по сути, является битовым сдвигом или перекомпоновкой бит и не требует временных затрат. Однако операция умножения на 3 занимает целый такт и может быть выполнена как сумма

Figure 00000043
. Таким образом, вычисление
Figure 00000044
займет два такта, а остальных адресов – один такт, что является недостатком блока формирования адресов, так как ограничивает его быстродействие.Consider the work of the address generation unit. The sum operation, followed by the addition of the result modulo 2, is a quick operation that can be performed in one clock cycle. Also fast is the operation of multiplying by 2, which, in essence, is a bit shift or rearrangement of bits and does not require time-consuming. However, the operation of multiplying by 3 takes a whole cycle and can be performed as a sum
Figure 00000043
. Thus, the calculation
Figure 00000044
it will take two clock cycles, and the remaining addresses - one clock cycle, which is a drawback of the address generation block, as it limits its speed.

Задачу упрощения и повышения быстродействия способа, в частности балансировки вычислений в блоке формирования адреса решает способ аналог [Чен Ён Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A], однако, при этом адреса формируют иным способом, чем в способе прототипе, что может вызвать ухудшение статистических свойств результирующей последовательности отсчетов белого гауссовского шума. The task of simplifying and improving the speed of the method, in particular, balancing the calculations in the address generation unit, is solved by the analogue method [Chen Yong Gaussian white noise generator based FPGA CN201810037910.5A, CN108390648A], however, the addresses are formed in a different way than in the prototype method, which may cause deterioration of the statistical properties of the resulting sequence of samples of white Gaussian noise.

Наиболее используемой в настоящее время является двухпортовая память, которая позволяет получить доступ для записи или чтения одновременно к двум адресам. Однако известны разработки [Kevin R. Townsend, Osama G. Attia, Phillip H. Jones, and Joseph Zambreno "A Scalable Unsegmented Multiport Memory for FPGA-Based Systems", International Journal of Reconfigurable Computing Volume 2015, Article ID 826283, 12 pages], позволяющие организовать эффективный многопортовый доступ к памяти. Таким образом, видно, что эффективность и быстродействие генератора цифрового белого шума может быть значительно повышена за счет балансировки вычислений и применения многопортовой памяти.The most used at present is dual-port memory, which allows you to access to write or read simultaneously to two addresses. However, developments are known [Kevin R. Townsend, Osama G. Attia, Phillip H. Jones, and Joseph Zambreno "A Scalable Unsegmented Multiport Memory for FPGA-Based Systems", International Journal of Reconfigurable Computing Volume 2015, Article ID 826283, 12 pages] allowing to organize effective multiport memory access. Thus, it is seen that the efficiency and speed of the digital white noise generator can be significantly improved due to the balancing of calculations and the use of multiport memory.

Задача, на решение которой направлено заявляемое техническое решение – повышение эффективности испытания радиоэлектронной аппаратуры, в частности, системы моделирования помехоустойчивых кодов.The problem to which the claimed technical solution is directed is to increase the efficiency of testing electronic equipment, in particular, a system for modeling noise-resistant codes.

Для решения поставленной задачи в способе формирования отсчетов цифрового белого гауссовского шума, заключающемся в том, что заполняют массив из

Figure 00000001
элементов гауссовскими случайными величинами с нулевым матожиданием и единичной дисперсией; в каждый такт, используя 32-разрядный отсчет генератора равномерных случайных чисел, формируют 2 10-разрядных числа:
Figure 00000014
и одно 9-разрядное двоичное число
Figure 00000015
путем последовательного взятия бит с первого по десятый, с одиннадцатого по двадцатый, с двадцать первого по двадцать девятый; в каждый такт формируют четыре адреса, считывают по сформированным адресам
Figure 00000045
отсчеты
Figure 00000017
, формируют 4-х мерный вектор
Figure 00000018
, выполняют ортогональное линейное преобразование
Figure 00000046
, где
Figure 00000020
To solve the problem in the method of generating samples of digital white Gaussian noise, which consists in filling an array of
Figure 00000001
elements with Gaussian random variables with zero expectation and unit dispersion; in each cycle, using a 32-bit sample of the generator of uniform random numbers, form 2 10-bit numbers:
Figure 00000014
and one 9-bit binary number
Figure 00000015
by sequentially taking bits from the first to the tenth, from the eleventh to the twentieth, from the twenty-first to the twenty-ninth; four addresses are formed in each clock cycle, read at the generated addresses
Figure 00000045
counts
Figure 00000017
form a 4-dimensional vector
Figure 00000018
perform orthogonal linear transformation
Figure 00000046
where
Figure 00000020

путем выполнения следующих операций:by performing the following operations:

Figure 00000036
,
Figure 00000036
,

Figure 00000037
,
Figure 00000037
,

полученные отсчеты

Figure 00000025
записывают в массив по новым адресам
Figure 00000026
, полученным за то время, пока выполнялось ортогональное преобразование; также отсчеты
Figure 00000025
поступают на вход блока коррекции, где каждый отсчет умножают на корректирующий множитель
Figure 00000027
, получая отсчеты
Figure 00000028
, которые являются результатом алгоритма; каждые
Figure 00000029
отсчетов производят корректировку корректирующего множителя по формуле
Figure 00000030
, где
Figure 00000031
текущий отсчет
Figure 00000032
предвычисленные константы, которые определяются по следующим формулам:
Figure 00000047
,received readings
Figure 00000025
write to the array at new addresses
Figure 00000026
obtained while the orthogonal transformation was performed; also readings
Figure 00000025
arrive at the input of the correction block, where each sample is multiplied by a correction factor
Figure 00000027
getting samples
Figure 00000028
that are the result of an algorithm; every
Figure 00000029
samples correct the correction factor according to the formula
Figure 00000030
where
Figure 00000031
current countdown
Figure 00000032
precomputed constants, which are determined by the following formulas:
Figure 00000047
,

согласно изобретению, формируют однобитный сигнал

Figure 00000048
из тридцатого бита генератора равномерных случайных чисел; адреса формируют по формулам:according to the invention, form a single-bit signal
Figure 00000048
from the thirtieth bit of the generator of uniform random numbers; addresses are formed by the formulas:

Figure 00000049
Figure 00000049

при этом если

Figure 00000050
, то изменяют знак отсчетов
Figure 00000025
на противоположный.while if
Figure 00000050
then change the sign
Figure 00000025
to the opposite.

Заявляемый способ решает техническую задачу повышения быстродействия за счет балансирования вычислений в блоке формирования адресов, не изменяя при этом исходного алгоритма без ухудшения статистических свойств результирующей последовательности отсчетов белого гауссовского шума.The inventive method solves the technical problem of improving performance by balancing the calculations in the address generation unit, without changing the original algorithm without degrading the statistical properties of the resulting sequence of white Gaussian noise samples.

Графические материалы, используемые в описании:Graphic materials used in the description:

фиг. 1 – схема устройства, реализующего заявляемый способ;FIG. 1 is a diagram of a device that implements the inventive method;

фиг. 2 – схема блока формирования адреса.FIG. 2 is a diagram of an address generating unit.

Заявляемый способ заключается в следующем.The inventive method is as follows.

Заполняют массив из

Figure 00000001
элементов гауссовскими случайными величинами с нулевым матожиданием и единичной дисперсией;Fill an array of
Figure 00000001
elements with Gaussian random variables with zero expectation and unit dispersion;

каждый такт, используя 32-разрядный отсчет генератора равномерных случайных чисел, формируют два 10-разрядные числа:

Figure 00000014
и одно 9-разрядное
Figure 00000015
путем последовательного взятия бит, с первого по десятый, с одиннадцатого по двадцатый, с двадцать первого по двадцать девятый, а также формируют однобитный сигнал
Figure 00000048
из тридцатого бита;each cycle, using a 32-bit sample of the uniform random number generator, forms two 10-bit numbers:
Figure 00000014
and one 9-bit
Figure 00000015
by sequentially taking bits from the first to the tenth, from the eleventh to the twentieth, from the twenty-first to the twenty-ninth, and also form a single-bit signal
Figure 00000048
from the thirtieth bit;

каждый такт формируют 4 адреса: Each cycle is formed by 4 addresses:

Figure 00000051
Figure 00000051

считывают по сформированным адресам отсчеты

Figure 00000017
, формируют 4-х мерный вектор
Figure 00000018
, выполняют ортогональное линейное преобразование
Figure 00000046
, где
Figure 00000020
read samples from the generated addresses
Figure 00000017
form a 4-dimensional vector
Figure 00000018
perform orthogonal linear transformation
Figure 00000046
where
Figure 00000020

путем выполнения следующих операций:by performing the following operations:

Figure 00000036
,
Figure 00000036
,

Figure 00000037
,
Figure 00000037
,

если

Figure 00000050
то изменяют знак отсчетов
Figure 00000025
на противоположный;if
Figure 00000050
then change the sign
Figure 00000025
to the opposite;

полученные отсчеты

Figure 00000025
записывают в массив по новым адресам
Figure 00000026
, полученным за то время, пока выполнялось ортогональное преобразование;received readings
Figure 00000025
write to the array at new addresses
Figure 00000026
obtained while the orthogonal transformation was performed;

отсчеты

Figure 00000025
также поступают на вход блока коррекции, где каждый отсчет умножают на корректирующий множитель
Figure 00000027
, получая отсчеты
Figure 00000028
, которые являются выходом алгоритма;counts
Figure 00000025
also enter the input of the correction block, where each sample is multiplied by a correction factor
Figure 00000027
getting samples
Figure 00000028
which are the output of the algorithm;

каждые

Figure 00000029
отсчетов производят корректировку корректирующего множителя по формуле
Figure 00000030
, где
Figure 00000031
текущий отсчет
Figure 00000032
предвычисленные константы, которые определяются по следующим формулам:
Figure 00000047
.every
Figure 00000029
samples correct the correction factor according to the formula
Figure 00000030
where
Figure 00000031
current countdown
Figure 00000032
precomputed constants, which are determined by the following formulas:
Figure 00000047
.

Новыми отличительными признаками способа являются:New distinctive features of the method are:

-формирование однобитного сигнал

Figure 00000048
из тридцатого бита;- formation of a one-bit signal
Figure 00000048
from the thirtieth bit;

-если

Figure 00000050
то изменяют знак отсчетов
Figure 00000025
на противоположный;-if
Figure 00000050
then change the sign
Figure 00000025
to the opposite;

-формирование четырех адресов по формулам:-formation of four addresses according to the formulas:

Figure 00000052
Figure 00000052

Устройство, реализующее заявляемый способ, представлено на фиг. 1, где обозначено:A device implementing the inventive method is shown in FIG. 1, where indicated:

1 – генератор равномерных случайных чисел (ГРСЧ);1 - generator of uniform random numbers (HRGS);

2 – мультиплексор;2 - multiplexer;

3 – блок формирования адресов (БФА);3 - block formation of addresses (BFA);

4 – блок памяти;4 - memory block;

5 – блок инициализации;5 - initialization block;

6 – блок ортогонального преобразования;6 - block orthogonal transformation;

7 – блок коррекции.7 - block correction.

Устройство содержит последовательно соединенные генератор равномерных случайных чисел 1 и мультиплексор 2, три выхода которого соединены с соответствующими входами блока формирования адресов 3 и соответствуют сигналам

Figure 00000053
. Выходы блока формирования адресов 3 соединены с соответствующими входами блока памяти 4, четыре выхода которого соединены с соответствующими входами блока ортогонального преобразования 6, выходы которого соединены с соответствующими входами блока памяти 4 и блока коррекции 7, выходы которого являются выходами устройства. Выход блока инициализации 5 соединен с соответствующим входом блока памяти 4. Четвертый выход мультиплексора 2, соответствующий сигналу
Figure 00000054
, подключен к пятому входу блока ортогонального преобразования 6.The device contains a series-connected generator of uniform random numbers 1 and a multiplexer 2, the three outputs of which are connected to the corresponding inputs of the address generation unit 3 and correspond to signals
Figure 00000053
. The outputs of the address generation unit 3 are connected to the corresponding inputs of the memory unit 4, the four outputs of which are connected to the corresponding inputs of the orthogonal transformation unit 6, the outputs of which are connected to the corresponding inputs of the memory unit 4 and the correction unit 7, the outputs of which are the outputs of the device. The output of the initialization unit 5 is connected to the corresponding input of the memory unit 4. The fourth output of the multiplexer 2, corresponding to the signal
Figure 00000054
connected to the fifth input of the orthogonal transform unit 6.

На фиг. 2 представлена схема блока формирования адресов, где обозначено:In FIG. 2 is a diagram of the address generation unit, where it is indicated:

3.1 – узел сдвига;3.1 - shift node;

3.2 – вычитатель;3.2 - subtractor;

3.3, 3.4 – первый и второй сумматоры;3.3, 3.4 - the first and second adders;

3.5, 3.6, 3.7, 3.8 – первый, второй, третий и четвертый узлы "исключающее или".3.5, 3.6, 3.7, 3.8 - the first, second, third and fourth nodes are exclusive or.

Блок формирования адресов 3 содержит узел сдвига 1, вычитатель 3.2, первый 3.3 и второй 3.4 сумматоры, а также первый 3.5, второй 3.6, третий 3.7 и четвертый 3.8 узлы "исключающее или". При этом вход узла сдвига 1, первые входы вычитателя 3.2 и первого сумматора 3.3 объединены и являются вторым входом блока формирования адресов 3 и соответствуют сигналу

Figure 00000055
Выход узла сдвига 1 через второй сумматор 3.4 соединен с первым входом четвертого узла "исключающее или" 3.8. Выход вычитателя 3.2 соединен с первым входом первого узла "исключающее или" 3.5. Выход первого сумматора 3.3 соединен с первым входом третьего узла "исключающее или" 3.7. Первый вход второго узла "исключающее или" 3.6 соединен со вторыми входами вычитателя 3.2, первого 3.3 и второго 3.4 сумматоров и является первым входом блока формирования адресов 3 и соответствует сигналу
Figure 00000056
. Кроме того, вторые входы первого 3.5, второго 3.6, третьего 3.7 и четвертого 3.8 узлов "исключающее или" объединены и являются входом блока формирования адресов 3, соответствующий сигналу
Figure 00000057
. Выходы узлов "исключающее или" являются выходами блока формирования адресов 3, соответствующие сигналам
Figure 00000058
.The address generating unit 3 comprises a shift unit 1, a subtractor 3.2, a first 3.3 and a second 3.4 adders, as well as a first 3.5, a second 3.6, a third 3.7, and a fourth 3.8 “exclusive or” nodes. The input of the shift node 1, the first inputs of the subtractor 3.2 and the first adder 3.3 are combined and are the second input of the address generation unit 3 and correspond to the signal
Figure 00000055
The output of the shift unit 1 through the second adder 3.4 is connected to the first input of the fourth node "exclusive or" 3.8. The subtractor 3.2 output is connected to the first input of the first exclusive or 3.5 node. The output of the first adder 3.3 is connected to the first input of the third node exclusive or 3.7. The first input of the second exclusive or 3.6 node is connected to the second inputs of the subtractor 3.2, the first 3.3 and the second 3.4 adders and is the first input of the address generation unit 3 and corresponds to the signal
Figure 00000056
. In addition, the second inputs of the first 3.5, second 3.6, third 3.7 and fourth 3.8 nodes "exclusive or" are combined and are the input of the address generation unit 3 corresponding to the signal
Figure 00000057
. The outputs of the nodes "exclusive or" are the outputs of the address generation unit 3 corresponding to the signals
Figure 00000058
.

Устройство, реализующее предлагаемый способ работает следующим образом. В генераторе равномерных случайных чисел (ГРСЧ) 1 формируют 32-разрядное равномерное случайное число из которого в мультиплексоре 2 формируют два 10-разрядных сигнала:

Figure 00000059
и
Figure 00000060
и один 9-разрядный сигнал stride для блока формирования адресов 3, а также однобитный сигнал
Figure 00000061
для блока ортогонального преобразования 6. В блоке формирования адресов 3 параллельно формируют четыре адреса по формуле: A device that implements the proposed method works as follows. A 32-bit uniform random number is formed in the uniform random number generator (GPRS) 1 from which two 10-bit signals are generated in the multiplexer 2:
Figure 00000059
and
Figure 00000060
and one 9-bit stride signal for address block 3, as well as a single-bit signal
Figure 00000061
for the orthogonal transform unit 6. In the address generation unit 3, four addresses are formed in parallel using the formula:

Figure 00000049
Figure 00000049

по которым проводят считывание отсчетов

Figure 00000017
для блока ортогонального преобразования 6, а также запись текущих отсчетов
Figure 00000025
с выхода блока ортогонального преобразования 6, в блоке ортогонального преобразования проводят преобразования входных сигналов
Figure 00000017
по формулам:on which readout of samples
Figure 00000017
for block orthogonal transform 6, as well as recording current samples
Figure 00000025
from the output of the orthogonal transform unit 6, in the orthogonal transform unit, transform the input signals
Figure 00000017
according to the formulas:

Figure 00000036
,
Figure 00000036
,

Figure 00000037
,
Figure 00000037
,

а также изменяют знак

Figure 00000025
на противоположный, если
Figure 00000062
, отсчеты
Figure 00000025
поступают на вход блока коррекции 7 где получают выходные отсчеты алгоритма в видеand also change the sign
Figure 00000025
to the opposite if
Figure 00000062
counts
Figure 00000025
arrive at the input of correction block 7 where they receive the output samples of the algorithm in the form

Figure 00000063
Figure 00000063

где после каждых

Figure 00000064
отсчетов производят обновление по формуле
Figure 00000030
, где
Figure 00000031
текущий отсчет белого гауссовского шума
Figure 00000032
предвычисленные константы, которые определяются по следующим формулам:
Figure 00000047
.where after every
Figure 00000064
samples update according to the formula
Figure 00000030
where
Figure 00000031
current sample of white gaussian noise
Figure 00000032
precomputed constants, which are determined by the following formulas:
Figure 00000047
.

Технический результат заключается в увеличении быстродействия способа и достигается за счет балансировки вычислений в блоке формирования адресов 6, для чего предлагается формировать псевдослучайные адреса следующим образом:The technical result consists in increasing the speed of the method and is achieved by balancing the calculations in the address generation unit 6, for which it is proposed to generate pseudo-random addresses as follows:

Figure 00000049
Figure 00000049

Операция вычитания эквивалентна операции сложения при использовании двоично-дополнительного кода, и в совокупности занимает также один такт. Таким образом, все 4 случайные адреса могут быть получены за один такт и переданы на блок памяти. Следует отметить, что вычитание здесь выполняют по модулю

Figure 00000065
, т. е. число -1 эквивалентно числу 1023. Таким образом, заявляемый способ позволяет достичь двукратного повышения производительности блока формирования адресов. Производительность генератора цифрового белого гауссовского шума по методу Уоллеса при условии применения четырех портового блока алгоритма доступа к блоку памяти также повысится в два раза при этом генератор равномерных случайных величин используют такой же как и в способе прототипе. Таким образом, выигрыш в производительности достигнут без ухудшения статистических свойств получаемых отсчетов белого шума.The subtraction operation is equivalent to the addition operation when using a binary-additional code, and in aggregate it also takes one clock cycle. Thus, all 4 random addresses can be obtained in one clock cycle and transferred to the memory block. It should be noted that the subtraction is performed modulo
Figure 00000065
, that is, the number -1 is equivalent to the number 1023. Thus, the claimed method allows to achieve a twofold increase in the performance of the address generation unit. The performance of the digital white Gaussian noise generator according to the Wallace method, provided that the four port block of the algorithm for accessing the block of memory is applied, will also double, while the generator of uniform random variables is used the same as in the prototype method. Thus, a gain in performance is achieved without compromising the statistical properties of the resulting white noise samples.

Claims (9)

1. Способ формирования отсчетов цифрового белого гауссовского шума, заключающийся в том, что заполняют массив из
Figure 00000066
элементов гауссовскими случайными величинами с нулевым матожиданием и единичной дисперсией; в каждый такт, используя 32-разрядный отсчет генератора равномерных случайных чисел, формируют два 10-разрядных числа
Figure 00000067
и одно 9-разрядное двоичное число
Figure 00000068
путем последовательного взятия бит с первого по десятый, с одиннадцатого по двадцатый, с двадцать первого по двадцать девятый; в каждый такт формируют четыре адреса, считывают по сформированным адресам
Figure 00000069
отсчеты
Figure 00000070
, формируют 4-мерный вектор
Figure 00000071
, выполняют ортогональное линейное преобразование
Figure 00000072
, где
Figure 00000073
,
1. The method of generating samples of digital white Gaussian noise, which consists in filling an array of
Figure 00000066
elements with Gaussian random variables with zero expectation and unit dispersion; in each cycle, using a 32-bit sample of the generator of uniform random numbers, form two 10-bit numbers
Figure 00000067
and one 9-bit binary number
Figure 00000068
by sequentially taking bits from the first to the tenth, from the eleventh to the twentieth, from the twenty-first to the twenty-ninth; four addresses are formed in each clock cycle, read at the generated addresses
Figure 00000069
counts
Figure 00000070
form a 4-dimensional vector
Figure 00000071
perform orthogonal linear transformation
Figure 00000072
where
Figure 00000073
,
путем выполнения следующих операций:by performing the following operations:
Figure 00000074
,
Figure 00000074
,
Figure 00000075
,
Figure 00000075
,
полученные отсчеты
Figure 00000076
записывают в массив по новым адресам
Figure 00000077
, полученным за то время, пока выполнялось ортогональное преобразование; также отсчеты
Figure 00000076
поступают на вход блока коррекции, где каждый отсчет умножают на корректирующий множитель
Figure 00000078
, получая отсчеты
Figure 00000079
, которые являются результатом алгоритма; каждые
Figure 00000080
отсчетов производят корректировку корректирующего множителя по формуле
Figure 00000081
, где
Figure 00000082
- текущий отсчет,
Figure 00000083
- предвычисленные константы, которые определяются по следующим формулам:
Figure 00000084
,
received readings
Figure 00000076
write to the array at new addresses
Figure 00000077
obtained while the orthogonal transformation was performed; also readings
Figure 00000076
arrive at the input of the correction block, where each sample is multiplied by a correction factor
Figure 00000078
getting samples
Figure 00000079
that are the result of an algorithm; every
Figure 00000080
samples correct the correction factor according to the formula
Figure 00000081
where
Figure 00000082
- current countdown
Figure 00000083
- precomputed constants, which are determined by the following formulas:
Figure 00000084
,
отличающийся тем, что формируют однобитный сигнал
Figure 00000085
из тридцатого бита генератора равномерных случайных чисел; адреса формируют по формулам:
characterized in that they form a one-bit signal
Figure 00000085
from the thirtieth bit of the generator of uniform random numbers; addresses are formed by the formulas:
Figure 00000086
Figure 00000086
при этом если
Figure 00000087
, то изменяют знак отсчетов
Figure 00000076
на противоположный.
while if
Figure 00000087
then change the sign
Figure 00000076
to the opposite.
2. Способ по п.1, отличающийся тем, что применяют способ генерации Таусворта с порождающим полиномом
Figure 00000088
, результатом которого являются 32-разрядные отсчеты.
2. The method according to claim 1, characterized in that apply the method of generating Tausworth with a generating polynomial
Figure 00000088
which results in 32-bit samples.
RU2019130892A 2019-10-01 2019-10-01 Method for generation of digital white gaussian noise using the wallace method RU2723271C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019130892A RU2723271C1 (en) 2019-10-01 2019-10-01 Method for generation of digital white gaussian noise using the wallace method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019130892A RU2723271C1 (en) 2019-10-01 2019-10-01 Method for generation of digital white gaussian noise using the wallace method

Publications (1)

Publication Number Publication Date
RU2723271C1 true RU2723271C1 (en) 2020-06-09

Family

ID=71067353

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019130892A RU2723271C1 (en) 2019-10-01 2019-10-01 Method for generation of digital white gaussian noise using the wallace method

Country Status (1)

Country Link
RU (1) RU2723271C1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1234834A1 (en) * 1984-11-23 1986-05-30 Институт Технической Кибернетики Ан Бсср Gaussian random process generator
CN101888209A (en) * 2010-07-23 2010-11-17 上海交通大学 Gaussian white noise generator based on FPGA (Field Programmable Gate Array)
CN106774624A (en) * 2016-11-24 2017-05-31 北京理工大学 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator
CN108390648A (en) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 A kind of Gaussian white noise generator based on FPGA

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1234834A1 (en) * 1984-11-23 1986-05-30 Институт Технической Кибернетики Ан Бсср Gaussian random process generator
CN101888209A (en) * 2010-07-23 2010-11-17 上海交通大学 Gaussian white noise generator based on FPGA (Field Programmable Gate Array)
CN106774624A (en) * 2016-11-24 2017-05-31 北京理工大学 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator
CN108390648A (en) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 A kind of Gaussian white noise generator based on FPGA

Similar Documents

Publication Publication Date Title
Lee et al. A hardware Gaussian noise generator using the Wallace method
Bakiri et al. Survey on hardware implementation of random number generators on FPGA: Theory and experimental analyses
Li et al. Logical computation on stochastic bit streams with linear finite-state machines
Thomas et al. Fpga-optimised uniform random number generators using luts and shift registers
Radecka et al. Arithmetic built-in self-test for DSP cores
Panda et al. Design and FPGA prototype of 1024-bit Blum-Blum-Shub PRBG architecture
Cardoso et al. A new PRNG hardware architecture based on an exponential chaotic map
RU2723271C1 (en) Method for generation of digital white gaussian noise using the wallace method
Li et al. Software/hardware parallel long-period random number generation framework based on the well method
RU2723272C1 (en) Digital white gaussian noise generator by wallace method
Isupov Multiple-precision sparse matrix–vector multiplication on GPUs
Harase et al. Implementing 64-bit maximally equidistributed F2-linear generators with Mersenne prime period
Voyiatzis et al. Recursive pseudo-exhaustive two-pattern generation
Baker et al. Impact of autocorrelation on stochastic circuit accuracy
Tan et al. ThundeRiNG: Generating multiple independent random number sequences on FPGAs
Rayudu et al. Design and testing of systolic array multiplier using fault injecting schemes
Zhang et al. Easymac: Design exploration-enabled multiplier-accumulator generator using a canonical architectural representation
Hoe et al. Implementing stochastic Bayesian inference: Design of the stochastic number generators
Addabbo et al. Efficient implementation of pseudochaotic piecewise linear maps with high digitization accuracies
CN113377335A (en) Pseudo-random number generator, pseudo-random number generation method and processor chip
Hanlon et al. A fast hardware pseudorandom number generator based on xoroshiro128
Abdellatef et al. Characterization of correlation in stochastic computing functions
US20240020566A1 (en) On-chip quantum computers based on classical synthesizable digital circuits
Tisserand Arithmetic for Crypto in FPGA: HDL or HLS?
Barash et al. Employing AVX vectorization to improve the performance of random number generators