![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA
文章平均质量分 74
介绍了FPGA中的一些警告解决,FPGA一些驱动IP核的解释和数学运算的实现
贤余咸鱼
这个作者很懒,什么都没留下…
展开
-
Vivado高速时钟差分走线布线
最近想把M3的内核移植到一块开发板上,但使用的开发板的时钟是200M的,走线是差分走线,在布线那块发现死活不能把IO设置DIFF_SSTL15,没办法直接把开发板参考的XDC文件拷过来,结果就报错了:[DRC IOSTDTYPE-1] IOStandard Type: I/O port CLK200m is Single-Ended but has an IOStandard of DIFF_SSTL15 which can only support Differential网上搜的答案要么看不懂要么一原创 2021-03-02 15:28:06 · 3748 阅读 · 0 评论 -
Booth理解与Booth改进版的由来
Booth的理解可以看这篇文章:https://blog.csdn.net/ZHjiao_1997/article/details/52475498后期的话有时间举个例子Booth改进版的由来:首先,一开始的Booth表如图:PS:关于为什么可以看上述链接博文改进后的Booth表(应该是积4)如图:这个主要是从原先的Booth表得来的:举个例子010可以看作(01)(10)(10)对应的是-B(01)对应的是左移后加自身也就是+B<<1=+2B所以010对应的是2B-B原创 2020-10-22 00:43:14 · 729 阅读 · 0 评论 -
黑金AX301开发板SPI通信详解
前言:对黑金的AX301开发板的SPI工程进行了波形仿真,写一下自己的理解。背景:项目地址:过程解析:(1)文件夹名:spi_flash_test没有进行按键触发的仿真图波形说明:Spi_flash_test定时3ms以后,进入S_READ状态,flash_read <= 1’d1,flash_read_addr <= 24’d0;Spi_flash_ctrl接收到flahs_read信号后,进入S_READ状态,cmd <= `CMD_READ,cmd_valid <原创 2020-09-21 19:04:13 · 900 阅读 · 0 评论 -
黑金AX301开发板I2C通信详解
前言:最近无聊在用OpenCores寻找IP核练习的时候正好想起黑金AX301开发板中的I2Cdemo用到了OpenCores上的一个I2C的核,所以为了以后好对I2C开发,对这个核进行了一点研究。背景:项目地址:介绍:对黑金的I2C demo进行了一定的删减,去掉了按键部分的触发以及数码管显示,改用在testbench中的addone信号进行一个激励。由于自己写的testbench中没有对I2C器件进行一个仿真,所以本项目中一直处于写失败的状态,所以没有读状态的信号仿真。过程解析:定时3ms以原创 2020-09-01 11:37:20 · 1238 阅读 · 0 评论 -
FPGA过程中的一些警告解决
本帖用于记录FPGA中的一些警告的解决:编译环境:Quartus II警告1:Warning (12241): 1 hierarchies have connectivity warnings - see the Connectivity Checks report folder原因:出现“hierarchies”这个词基本上是模块例化的问题。一般例化时,要是哪个连线没引出,没接上,或者是位宽不匹配就会出这个警告。解决方法:调出Compilation Report调出方法:1.工具栏上,在原创 2020-08-15 12:52:10 · 3147 阅读 · 0 评论 -
OpenCores 串口IP核使用记录
IP核来源:https://opencores.org/projects/uart2bus仅使用了这个IP核当中的串口收发模块。波特率计算公式解释:计算公式:baud_freq=16*baud_rate/gcd(global_clock_freq,16 * baud_rate)baud_limit = (global_clock_freq / gcd(global_clock_freq, 16*baud_rate)) - baud_freq注意:baud_limit为计数器计数上限,系统时钟计原创 2020-08-15 00:20:04 · 1257 阅读 · 1 评论 -
单精度浮点数的数学计算
一.将十进制数变为二进制数十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如十进制的0.125,要转换为二进制的小数。举例:0.125(十进制变为二进制)将小数部分0.125乘以2,得0.25,然后取整数部分0再将小数部分0.25乘以2,得0.5,然后取整数部分0再将小数部分0.5乘以2,得1,然后取整数部分1则得到的二进制的结果就是0.001二.把二进制数变为浮点数源先将十进制转换后的二进制数调整尾数,比如:11.1001应该变成1原创 2020-08-09 01:00:05 · 7723 阅读 · 2 评论 -
FPGA学习回顾之IIC的使用
硬件:黑金AX301教程:黑金附赠教程用途:记录FPGA中IIC的信号走向以及实施过程i2c_master_top的状态机走向:顶层i2c_write_req为1S_IDLE——>S_WR_DEV_ADDR——>S_WR_REG_ADDR(——>S_WR_REG_ADDR1(如果i2c_addr_2byte=1))——>S_WR_DATA——>S_WR_STOP——>S_WR_ACK——>S_WAIT——>S_IDLE顶层i2c_原创 2020-07-26 23:01:44 · 452 阅读 · 0 评论 -
FPGA学习回顾之SPI的使用
硬件:黑金AX301教程:黑金附赠教程用途:记录FPGA中SPI的信号走向以及实施过程程序顶层(spi_flash_test)状态机走向:S_IDLE——>S_READ——>S_WAIT(等按键按下)——>S_SE——>S_PP——>S_READ——>S_WAIT。**程序模块(spi_flash_top)实施过程:cmd=spi_flash_cmdctrl=spi_flash_ctrlmaster=spi_master以顶层Flash_read=1为例原创 2020-07-26 11:37:52 · 823 阅读 · 0 评论 -
FPGA学习回顾
最近正在重新学习FPGA开发,把之前忽略的一些点记录下来,以便日后进行查阅。1.Output 和Output reg的区别这个问题的回答具体可以看这篇博客:https://blog.csdn.net/crjmail/article/details/105771612总结来说,如果在一开始module中声明的是Output,那么最终需要用assign对Output进行说明。但是如果是Output reg的话,则不需要用assign对输出端口进行说明,对这个reg进行赋值即可。2.RAM的分类单口与双原创 2020-07-19 22:43:27 · 1506 阅读 · 0 评论 -
探究FPGA串口发送时次次丢失第一个字符
由于当时在STM32的板子也偶尔出现串口发送的时候老是丢第一个字符,这次在FPGA上进行串口发送时也发现了这个问题,好在FPGA更底层点,所以花了点时间找原因。直接进入正题。FPGA:黑金AX301B,芯片型号EP4CE6F17C8N,用的是uart_test的代码,代码结构如下:运行以后:把提供的源码的uart_tx里的tx_reg <= tx_data_latch[bit_cnt]改成tx_reg <= tx_data[bit_cnt];或者把else if(state == S_原创 2020-05-13 21:18:14 · 888 阅读 · 0 评论