fpga

How to generate pseudo random number in FPGA?

▼魔方 西西 提交于 2019-11-30 14:29:30
How to generate pseudo random number in FPGA? Marty This has been covered (I'd go for an LFSR): Random number generation on Spartan-3E There's an excellent Xilinx application note on generating pseudo-random number sequences efficiently in an FPGA. It's XAPP052 . If it's not for cryptography or other applications with an intelligent adversary (e.g. gambling) I'd use a linear feedback shift register approach. It only uses exclusive or and shift, so it is very simple to implement in hardware. As others have said, LFSRs can be used for pseudo random numbers in an FPGA. Here is a VHDL

VHDL: creating a very slow clock pulse based on a very fast clock

和自甴很熟 提交于 2019-11-30 14:23:32
(I'd post this in EE but it seems there are far more VHDL questions here...) Background: I'm using the Xilinx Spartan-6LX9 FPGA with the Xilinx ISE 14.4 (webpack). I stumbled upon the dreaded "PhysDesignRules:372 - Gated clock" warning today, and I see there's a LOT of discussion out there concerning that in general. The consensus seems to be to use one of the DCMs on the FPGA to do clock division but... my DCM doesn't appear to be capable of going from 32 MHz to 4.096 KHz (per the wizard it bottoms out at 5MHz based on 32MHz... and it seems absurd to try to chain multiple DCMs for this low

创龙集成TL665x-EasyEVM开发板(DSP端)+ TL-A7HSAD采集卡(FPGA端)开发板规格书

核能气质少年 提交于 2019-11-30 07:47:28
广州创龙基于TI设计的TL665xFI-EasyEVM是一款DSP+FPGA高速大数据采集处理架构,适用于高端图像处理、高速大数据传输和音视频等大数据采集处理领域。 此设计通过I2C、PCIe、SRIO等通信接口将DSP开发板和FPGA采集卡结合在一起,组成DSP+FPGA架构,实现了需求独特、灵活、功能强大的DSP+FPGA高速数据采集处理系统。 DSP和FPGA可以独立开发,互不干扰。其中DSP开发板使用核心板+底板形式,SOM-TL665x核心板引出丰富的资源信号引脚,客户只需要专注上层运用,降低了开发难度和时间成本。FPGA采集卡提供工业级高速数据传输PCIe x4接口,串行高速输入输出GTP总线通过HDMI接口提供稳定、可靠的高速传输能力,还引出丰富的IO接口,为产品搭建提供极大的便利。 开发板简介 集成TL665x-EasyEVM开发板(DSP端)+ TL-A7HSAD采集卡(FPGA端); DSP端基于TI KeyStone C66x多核定点/浮点DSP TMS320C665x,单核TMS320C6655和双核TMS320C6657管脚pin to pin兼容,FPGA端基于Xilinx Artix-7处理器; TMS320C665x主频为1.0/1.25GHz,单核运算能力高达40GMACS和20GFLOPS

Random number generation on Spartan-3E

不想你离开。 提交于 2019-11-30 03:03:10
问题 I need to generate pseudo-random numbers for my genetic algorithm on a Spartan-3E FPGA and i want to implement it in verilog: could you give me any pointers on this? 回答1: Typically you'd use the IEEE.math_real uniform function use IEEE.math_real.all; procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real); But do a tiny bit a research on pseudo random number generators (PRNGs) and you'll find many variants that are simple LFSR's - which look remarkably similar to CRC

Approximate e^x

心已入冬 提交于 2019-11-30 01:27:50
I'd like to approximate the e x function. Is it possible to do so using multiple splines type based approach? i.e between x 1 and x 2 , then y 1 = a 1 x + b 1 , between x 2 and x 3 , then y 2 = a 2 x + b 2 etc This is for dedicated fpga hardware and not a general purpose CPU. As such I need to create the function myself. Accuracy is much less of a concern. Furthermore I can't really afford more than one multiplication circuit and/or multiple shifts/adders. Also I want something much smaller than a CORDIC function, in fact size is critical. Lucas How about a strategy like this that uses the

创龙Xilinx Artix-7系列FPGA开发板规格书

你离开我真会死。 提交于 2019-11-29 23:43:31
TLA7-EasyEVM开发板是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板+底板方式的开发板,可快速评估FPGA性能。核心板尺寸仅70mm*50mm,底板采用沉金无铅工艺的10层板设计,专业的PCB Layout保证信号完整性的同时,经过严格的质量控制,满足工业环境应用。 SOM-TLA7核心板引出FPGA丰富的资源信号引脚,二次开发极其容易,客户只需要专注上层应用,大大降低了开发难度和时间成本,让产品快速上市,及时抢占市场先机。 不仅提供丰富的Demo程序,还提供详细的开发教程,全面的技术支持,协助客户进行底板设计、调试以及软件开发。 开发板简介 基于Xilinx Artix-7系列FPGA处理器; FPGA芯片型号为XC7A100T-2FGG484I,NOR FLASH 256Mbit,DDR3 512M/1GByte可选,兼容XC7A200T-2FBG484I,方便用户二次开发使用; 逻辑单元101K个,DSP Slice 240个,4对速率为6.6Gb/s高速串行收发器,底板用做4通道PCIe Gen2; 3个BANK电压可配,提供1.8V、3.3V和用户自定义方式,使用灵活方便; 核心板采用高速可靠B2B连接器,防反插和保证信号完整性; PCI Express 2.0高速数据传输接口,四通道,每通道通信速率可高达5GBaud; 支持PMOD

创龙基于Xilinx Artix-7系列FPGA处理器

女生的网名这么多〃 提交于 2019-11-29 21:31:34
SOM-TLA7是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板,可配套广州创龙Artix-7开发板使用。核心板尺寸仅70mm*50mm,采用沉金无铅工艺的10层板设计,专业的PCB Layout保证信号完整性的同时,经过严格的质量控制,满足工业环境应用。 SOM-TLA7引出FPGA丰富的资源信号引脚,二次开发极其容易,客户只需要专注上层应用,大大降低了开发难度和时间成本,让产品快速上市,及时抢占市场先机。 不仅提供丰富的Demo程序,还提供详细的开发教程,全面的技术支持,协助客户进 行底板设计、调试以及软件开发。 核心板简介 基于Xilinx Artix-7系列FPGA处理器; FPGA芯片型号为XC7A100T-2FGG484I,NOR FLASH 256Mbit,DDR3 512M/1GByte可选,兼容XC7A200T-2FBG484I,方便用户二次开发使用; 核心板尺寸为70mm*50mm,采用高速可靠B2B连接器,防反插和保证信号完整性; 工业温度等级-40°C~85°C。 典型运用领域 高速数据采集处理系统 高端图像处理设备 高端音视频数据处理 通信系统 高精度仪器仪表 高端数控系统 增值服务 主板定制设计 核心板定制设计 嵌入式软件开发 项目合作开发 技术培训 来源: https://my.oschina.net/u/4169033

CPU|MICGPU|FPGA|超算|Meta-data|

拜拜、爱过 提交于 2019-11-29 16:29:01
生物医学大数据: 收集数据后对数据的分析,如同看相,而对数据信息的挖掘可以看作是算命。这两个过程是基于算法和软件这类工具之上的。 在存储方面:在硬件上,为了 Parallel computing 的目的,刚开始选择的处理器是 multiple core ,之后选择 many integrated core architecture ( MIC : 英特尔 ® 集成众核架构(英特尔 ® MIC 架构)产品为开发人员提供了一个关键优势:它们基于标准的现有编程工具和方法运行 ),之后选择 GPU (大内存),之后是 FPGA ( 电场可编程逻辑闸阵列,它是在 PAL 、 GAL 、 CPLD 等可编程逻辑器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。 但是就生物信息学领域 只能跑 GATK ),如今又有了超级计算机。 No free lunch :由CPU到超算,灵活性下降但是专有性上升,同时存在的问题是费用变高。现如今的生物信息学分析,正在使用更为专有性的硬件,也更加费钱。 因此,面临 Massive data和由于data transfer造成的cost,可以有以下基于软件的 应对方法: 1.尽可能传输压缩包 2.decouple:将原始数据分析拆解,选择有需要的类型

When to use VHDL library std_logic_unsigned and numeric_std?

为君一笑 提交于 2019-11-29 11:06:03
I use VHDL-200X in ISE.I always use data type like std_logic_vector , std_logic , integer , boolean and real .Always use std_logic_vector convert to integer and reverse. My team mates ask me to use these three parts of library IEEE . library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; But someone said do not use IEEE.STD_LOGIC_UNSIGNED.ALL instead of IEEE.NUMERIC_STD.ALL .Because you have everything you need in numeric_std , and STD_LOGIC_UNSIGNED is not standard library. Here . I confused about it and anybody can help? Paebbels Never use

How to initialize contents of inferred Block RAM (BRAM) in Verilog

放肆的年华 提交于 2019-11-29 10:26:26
I am having trouble initializing the contents of an inferred ram in Verilog. The code for the ram is as below: module ram( input clock, // System clock input we, // When high RAM sets data in input lines to given address input [13:0] data_in, // Data lines to write to memory input [10:0] addr_in, // Address lines for saving data to memory input [10:0] addr_out, // Address for reading from ram output reg data_out // Data out ); reg [13:0] ram[2047:0]; // Initialize RAM from file // WHAT SHOULD GO HERE? always @(posedge clock) begin // Save data to RAM if (we) begin ram[addr_in] <= data_in; end