fpga

VHDL - PhysDesignRules:367

大城市里の小女人 提交于 2020-01-24 13:18:08
问题 I am getting a warning when i try synthesize,implement, and generate program file from my VHDL Code. When i try to synthesize i get this error WARNING:Xst:647 - Input <BTN_3> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. When i Implement it i get this WARNING:PhysDesignRules:367 - The signal <BTN_3_IBUF> is incomplete. The signal does not drive any load pins in

VHDL Gated Clock how to avoid

笑着哭i 提交于 2020-01-24 05:43:09
问题 I've received an advice to avoid gated clock because it may cause problems with slacks and timing costraints. But I want to ask what I can consider like a gated clock. For example: This code have gated clock because StopCount gate it. process(ModuleCLK) begin if (rising_edge(ModuleCLK) and StopCount = '0') then if ModuleEN = '0' then RESET <= '0'; POWER <= '1'; EN <= '0'; CLOCK <= '0'; SERIAL <= '0'; elsif This code have also gated clock? process(ModuleCLK) begin if ModuleEN = '0' then RESET

Time measuring in PyOpenCL

ぐ巨炮叔叔 提交于 2020-01-23 16:46:26
问题 I am running a kernel using PyOpenCL in a FPGA and in a GPU. In order to measure the time it takes to execute I use: t1 = time() event = mykernel(queue, (c_width, c_height), (block_size, block_size), d_c_buf, d_a_buf, d_b_buf, a_width, b_width) event.wait() t2 = time() compute_time = t2-t1 compute_time_e = (event.profile.end-event.profile.start)*1e-9 This provides me the execution time from the point of view of the host (compute_time) and from the device (compute_time_e). The problem is that

Multiplication by power series summation with negative terms

一笑奈何 提交于 2020-01-22 15:32:05
问题 How can I calculate a floating point multiplicand in Verilog? So far, I usually use shift << 1024 , then floating point number become to integer. Then I do some operations, then >> 1024 to obtain a fraction again. For example 0.3545 = 2^-2 + 2^-4 + ... I have question about another way, like this. I don't know where does the minus (-) comes from: 0.46194 = 2^-1 - 2^-5 - 2^-7 + 2^-10. I have just look this from someone. but as you way, that is represented like this 0.46194 = 2^-2 + 2^-3 + 2^-4

FPGA如何生成RAM或ROM中的数据mif文件

最后都变了- 提交于 2020-01-20 22:03:53
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Quartus自带的mif编辑器 优点:对于小容量RAM可以快速方便的完成mif文件的编辑工作,不需要第三方软件的编辑; 缺点:一旦数据量过大,一个一个的输入会使人崩溃; 使用方法:在quartus中,【file】/【new】,选择Memory Initialization file,弹出如下窗口: Number of words:可寻址的存储单元数,对于8bit地址线,此处选择256; words size:存储单元宽度,8bit; 然后点击“OK”. 在表格中输入初始化数据; 右键单击左侧地址值,可以修改地址和数据的显示格式; 表中任一数据的地址=列值+行值,如图中蓝色单元的地址=24+4=28; 对每个单元填写初始值之后,将文件保存即可。 方法2:利用mif软件来生成 无论使用什么编辑器,必须保证mif文件的格式如下:冒号左边是地址,右边是数据;分号结尾;   DEPTH = 256;   WIDTH = 8;   ADDRESS_RADIX = HEX;   DATA_RADIX = HEX;   CONTENT   BEGIN   0000 : 0000;   0001 :

FPGA上实现IIC读写EEPROM

旧巷老猫 提交于 2020-01-20 08:31:56
FPGA上实现IIC读写EEPROM 1、IIC协议简介 IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。 IIC协议的起始和结束条件如下图所示: 2、IIC协议读过程 这里给出的是针对某个地址的单次读,IIC也有连续读的,就是顺着当前地址一直读下去,不过我个人觉得那种方式用的不多,还是针对某个地址读的方式用的多。 IIC协议写过程 IIC写过程,也是有连续写的,但是这里只给出针对某个地址写的,单次写数据,也是用的较多的。 FPGA实现IIC读写EEPROM 主要代码: module iic_rw_test( input clk, input rst_n, input iic_done, input [7:0] data_read, output reg exc_iic, output reg iic_rw_ctl, output [7:0] data_write,

STM32与FPGA进行SPI通信

假装没事ソ 提交于 2020-01-17 23:42:11
一、器件 32单片机:STM32F407ZG FPGA :EP4CE6E22C8N 二、通信方式 STM32作为主机(软件); FPGA作为从机; SPI通信方式为0; 三、STM32源代码 1 #include "delay.h" 2 #include "stm32f4xx.h" 3 4 #ifndef __SPI_H 5 #define __SPI_H 6 7 #define SPI1_SCK PBout(2) 8 #define SPI1_MOSI PBout(3) 9 #define SPI1_MISO PBin(4) 10 #define CS PBout(5) 11 12 //CPOL=0,CPHA=0 13 u8 SOFT_SPI_RW(u8 byte); 14 //SPI初始化 15 void SPIInit(void); 16 17 #endif spi.h 1 #include "spi.h" 2 #include "delay.h" 3 #include "stm32f4xx.h" 4 5 //CPOL=0,CPHA=0 6 u8 SOFT_SPI_RW(u8 byte) 7 { 8 u8 i; 9 u8 Temp=0; //接收数据存储 10 SPI1_SCK = 0; 11 delay_init(168); //初始化延时函数 12 for(i=0;i<8

具超高性价比的AG10K FPGA

别等时光非礼了梦想. 提交于 2020-01-17 17:22:44
AG10K FPGA器件面向大批量,对成本敏感的应用,使系统设计人员能够满足不断增长的性能要求,同时降低成本。 AG10K器件具有卓越的质量,稳定性和出色的价格(AG10KF256 17x17mm零售价为1.x美元)。 特征 具有10K LE的高密度架构 M9K嵌入式内存块, 最大414Kbit的RAM空间 最多可将23个18 x 18位嵌入式乘法器配置为两个独立的9 x 9位乘法器 每个器件提供2个PLL,提供时钟乘法和相移 高速差分I / O标准支持,包括LVDS,RSDS,mini-LVDS,LVPECL 单端I / O标准支持,包括3.3V,2.5V,1.8V和1.5V LVCMOS和LVTTL 通用包装选项LQFP-144,-176和FBGA-256 通过JTAG和SPI接口进行灵活的设备配置 支持远程更新,通过“双重启动”之类的实现方式 有关特殊的AS模式配置,请参阅“用户指南” 联系我们 kh_hsiah@126.com 了解更多! 来源: CSDN 作者: Embeded_FPGA 链接: https://blog.csdn.net/Embeded_FPGA/article/details/104017151

VIO虚拟输入/输出

情到浓时终转凉″ 提交于 2020-01-17 13:54:01
在ISE工程中,如果需要实时观察FPGA内部信号,需要借助Chipscope。Chipscope是一款在线调试工具,通过JTAG口,在线实时读取FPGA的内部信号。 Chipscope中常用的调试IP有ICON核、ILA核、VIO核。 Chipscope利用ICON核通过FPGA的JTAG端口与内核通信;ILA核可以用来观察FPGA内部信号;VIO核不仅可以观察信号,还可以将外部输入信号传到FPGA中去,这样我们就可以灵活地改变内部信号的值,而不需要重新综合啦~~~ 注:ILA可以观察一段时间内信号的波形,而VIO只能看到信号当前时刻的值 在ISE中,如果我们要添加ILA核或者VIO核,除了添加他们本身以外,还必须自己手动添加ICON核;但是在Vivado中就不需要,Vivado会帮我们连好。 VIO即虚拟输入/输出(Virtual Input/Output),可以实时监测和驱动FPGA内部信号。 来源: CSDN 作者: swang_shan 链接: https://blog.csdn.net/swang_shan/article/details/103954653

【资料下载区】【iCore4相关代码、资料下载地址】更新日期2018/02/24

冷暖自知 提交于 2020-01-17 13:21:50
【iCore4相关文档】【更新中...】 iCore4原理图(PDF)下载 iCore4引脚注释(PDF)下载 iCore4机械尺寸(PDF)下载 【iCore4相关例程代码】【ARM】 DEMO测试程序V1.0 4.3寸液晶模块发布 例程一:ARM驱动三色LED 例程二:读取ARM按键状态 例程三:EXTI中断实验——读取ARM按键状态 例程四:USART实验——通过命令控制LED状态 例程五:SYSTICK定时器实验——定时点亮LED 例程六:IWDG看门狗实验——复位ARM 例程七:WWDG看门狗实验——复位ARM 例程八:定时器PWM实验——呼吸灯 例程九:ADC实验——电源监控 例程 例程十:RTC实时时钟实验——显示时间和日期 例程十一:DMA实验——存储器到存储器传输 例程十二:通用定时器实验——定时点亮LED 例程十三:SDIO实验——读取SD卡信息 例程十四:FATFS实验——文件操作 例程十五:USB_CDC实验——高速数据传输 例程十六:USB_HID实验——双向数据传输 例程十七:USB_MSC实验——读/写U盘(大容量存储器) 例程十八:USB_VCP实验——虚拟串口 例程 例程十九:USBD_MSC实验——虚拟U盘 例程二十:LWIP_TCP_CLIENT实验——以太网数据传输 例程二十一:LWIP_TCP_SERVER实验——以太网数据传输 例程二十二