FPGA VHDL VIVADO
文章平均质量分 70
坚持每天写程序
这个作者很懒,什么都没留下…
展开
-
自定义数据类型,各模块共享数据类型(VIVADO&VHDL)
但是depth38_2_width16里面的数据类型是depth38_width16,也就是在用depth38_2_width16是只能用A(i),i的范围是0——37.然后depth38_38_width16里面的数据类型是std_logic_vector(15 downto 0),也就是在用depth38_38_width16是只能用A(i,j),i和j的范围是0——37. 所以在使用信号时,一定要是同一数据类型的数据进行操作。就是一个二维数组,里面的元素是37*37个16bit的数据。原创 2023-03-09 09:47:56 · 619 阅读 · 0 评论 -
fpga 级联fifo(VHDL)
换成fifo0_rd_en原创 2022-11-13 16:40:30 · 1042 阅读 · 0 评论 -
Vivado联合modelsim仿真卡在executing analysis and compilation step阶段
三、如果上面步骤都对了,还是不行,就点击setting里面的restore,然后重新打开工程,或者将仿真题改成vivado自带的,跑一遍仿真,如果还是不行,那只能说没救了,但是一般如果vivado的仿真跑不出来,肯定是仿真文件有错,就去按照提示改一下,然后能跑之后,再去换回modelsim就可以。总的来说,vivado联合modelsim有问题,一般只有两个方面,仿真文件有错,但没有报错,可以在modelsim里面单独打开仿真文件,编译一下,一般也就会发现了。原创 2022-10-29 17:27:09 · 3219 阅读 · 0 评论 -
xilinx FPGA 开方(cordic)ip核的使用(VIVADO&VHDL)
选择开发模式,然后模式可以选择最优或者最大,数据格式可以选择无符号整数或者无符号分数,然后再选择输入位宽,以及就散模式,向下取整或者四舍五入等等。数据在使能信号有效时输入,在输出使能有效时输出。原创 2022-10-24 16:56:44 · 2683 阅读 · 0 评论 -
xilinx FPGA 除法器ip核(divider)的使用(VHDL&Vivado)
可以看到,因为除数和被除数的ready信号在使能无效时,一直为高,所以当除数被除数第一次被使能时,使能和ready信号是同时有效的,所以就直接在数据输入后的第三个时钟输出正确结果。综上,就是我们让使能信号两个时钟有效,就可以了,因为在这两个时钟里面,ready信号都只可能有效一次,然后数据两个时钟也是 一样的,就会在输出valid有效输出正确结果。valid是数据输入有效信号(in),ready是数据已经输入的标志信号(out),但是在该模式下对于除数和被除数是否有效的判定是一样的,只是两个过程是独立的,原创 2022-10-24 16:10:08 · 15720 阅读 · 1 评论 -
xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)
五、仿真结果::可以看到vivado的乘法器ip核和ISE的一样,当ce有效时,乘法器的乘积会在下一个时钟得出。可以选择两个变量数相乘,也可以选择一个变量输入数据和一个常数相乘。可以选择mult(dsp资源)或者lut(fpga资源)二、编写VHDL程序:声明和例化乘法器ip核。可以选择速度优先或者面积优先。还有时钟使能和复位功能。可以自己选择输出位宽。原创 2022-10-23 18:16:08 · 5844 阅读 · 0 评论 -
xilinx FPGA usb模块的使用(VHDL)
-之所以不像小梅哥里面写的去使能fifo0的读使能,是因为小梅哥自己写的fifo好像不会存在延时,所以他的fx2_slwr和fifo_rd(fifo_pop)是同时有效的,根据fx2的原理可以知道,当fx2_slwr为0时,就可以将fifo里面相应的数据传输给fx_data,然后发送到上位机,这个前提是fx2和fifo的时钟是一致的。因为fx2用的是同步(1.1 第一点,是对fifo0_rd_en ,fx2_slwr,fx2_fdata_out的使能不一样。),而fifo也是根据时钟信号去实现功能的。原创 2022-10-02 19:10:54 · 3035 阅读 · 1 评论 -
xilinx FPGA FX2 usb通信模块之上位机发送的数据格式
这是因为fpga没有对数据进行处理,而fpga usb通信整个传输过程就是上位机将要发送的文件,将该符号对应的ascii码发送到fx2 usb的 模拟fifo当中(而小梅哥的开发板当中使用的fx2 usb模块,是规定为16位的数据格式),然后就传输到fpga的接收端口,当然如果fpga不做任何处理,就将该数据传输给usb的fifo当中,然后传输到上位机,并解析成对应的符号(ascii码),当然得到的数据就跟上位机发送的一样。然后保存文件,再进行传输,就可以看到上位机收到的和fpga当中的数据是一致的。原创 2022-10-02 14:55:07 · 1602 阅读 · 0 评论