
FPGA项目实战
CLL_caicai
数字IC
展开
-
奇偶校验及其在UART中的应用
一、奇偶校验概念奇偶校验(Parity Check)是一种根据被传输的一组二进制数中"1"的个数是奇数还是偶数来校验数据传输正确性的方法。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组数据和奇偶校验位中"1"的个数为奇数或偶数。奇校验:让传输数据(包含校验位)中1的个数为奇数。即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。数据和校验位发送给接受方后,接收方再次对数据中1的个数进行计算,如果为奇数则校验通过,表示此次传输过程未发生错误。如果不是奇数,则表示有错误发生原创 2020-07-15 22:20:01 · 6733 阅读 · 1 评论 -
vivado中Cordic IP核使用——计算正余弦(sin/cos)
目录1、Cordic算法介绍2、Cordic IP核介绍3、仿真4、存在的问题5、参考1、Cordic算法介绍cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), 非常适合硬件实现,是对正余弦等数学计算的逼近。 以旋转过程为例,简述cordic算法思想(计算正余弦可以认为起始点P在x轴上,旋转结果的xy坐标即为旋转角度的cos、sin):和差化积公式:...原创 2020-07-08 16:30:45 · 11948 阅读 · 2 评论 -
流水线设计实例——8位全加器设计
目录1、简介2、实例3、部分代码4、参考1、简介系统的最高工作频率,取决于系统中耗时最长的模块延时。模块延时越长,系统的工作频率就越低,反之则越高。流水操作的思想就是将耗时较长的模块拆分为多个子模块的级联,子模块之间通过寄存器连接。这种设计方式带来的好处是显而易见的:流水处理之前,每一次操作所需时间均为A,较大的模块延迟导致系统工作频率下降。 流水处理之后,模块被划分为N个子模块的级联,子模块的操作延迟为B(B<A)。此时,除刚开始输入数据时需要延迟B*N才能得.原创 2020-07-07 17:00:22 · 3391 阅读 · 0 评论 -
FPGA中如何控制电路使用的是Block RAM还是Distributed RAM
FPGA可以调用分布式RAM和块RAM两种RAM,当我们编写verilog代码的时候如果合理的编写就可以使我们想要的RAM被综合成BRAM(Block RAM)或者DRAM(Distributed RAM),其中BRAM是block ram,是存在FPGA中的大容量的RAM,DRAM是FPGA中有LU...转载 2020-07-06 21:48:49 · 2728 阅读 · 0 评论 -
Vivado中FFT9.1 IP核的使用(4)——SCALE_SCH缩放设置
在Vivado中FFT9.1 IP核的使用(3)——线性调频信号FFT的基础上,对SCALE_SCH进行测试1、SCALE_SCH介绍SCALE_SCH对FFT过程的缩放进行设置:SCALE_SCH对FFT变换各阶段的缩放进行设置,长度与FFT方式和变换长度有关,比如基2FFT,1024点,对应阶段数为10; 每阶段使用两位进行设置,可以设置为0-1-2-3,对应移位位数,反映在缩放倍数上实际为:0-2-4-8倍; SCALE_SCH从高到低,分别对应FFT最后阶段到初始阶段;2、仿真原创 2020-07-06 16:58:33 · 5449 阅读 · 3 评论 -
使用IP核例化ROM并初始化
1、使用IP核例化ROM可以选择使用Block RAM实现还是使用Distributed RAM实现:使用Distributed RAM实现时,占用LUT资源,仿真如下:使用Block RAM实现时占用专用RAM资源:Distributed RAM使用灵活,但是占用LUT资源,常用于数据量较小的场合;Block RAM是专用RAM资源,常用于数据量较大的场合;bram 的输出需要时钟,dram在给出地址后既可输出数据。 dram使用根灵活方便些 bram有较大的存储空间,..原创 2020-07-06 15:39:13 · 3900 阅读 · 1 评论 -
Vivado中FFT9.1 IP核的使用(3)——线性调频信号FFT
1、简述线性调频信号FFT与之前的8点、32点FFT在IP核的使用方面并没有什么不同;唯一需要注意的就是仿真中线性调频信号如何产生,如何读取到vivado,以及数据位宽。此处以Matlab生成数据,导入到Vivado进行处理,并不代表数据只能这样产生和传入:LFM信号产生:Mtalab生成对应参数下的LFM信号信号存储:Mtalab中生成的LFM信号按照二进制存储到TXT文件(Vivado中一般按照2进制、16进制读取数据)Vivado读取数据:Vivado读取TXT中数据,作为FFT输入原创 2020-07-03 09:21:06 · 3721 阅读 · 0 评论 -
Vivado中FFT9.1 IP核的使用(2)——在线修改变换长度
Vivado中FFT9.1 IP核的使用(1)中已经介绍了最简单的FFT操作方式:即固定变换长度,仅仅控制少量控制信号: s_axis_config_tdata // input,配置数据 s_axis_config_tvalid // input,配置数据有效信号 s_axis_data_tdata // input ,输入数据 s_axis_data_tvali...原创 2020-06-30 10:17:05 · 3800 阅读 · 0 评论 -
Vivado中FFT9.1 IP核的使用(1)
目录1、xilinx FFT IP介绍2、FFT IP接口介绍3、xilinx FFT IP的仿真测试4、参考:1、xilinx FFT IP介绍1)正向和反向复数FFT,运行时间可配置。2)变换大小N = 2m,m = 3 – 163)数据采样精度bx = 8 – 344)相位系数精度bw = 8 – 345)算术类型:无标度(全精度)定点 定标定点 浮点数6)定点或浮点接口7)蝴蝶后舍入或截断8)Block RAM或分布式RAM,用于数据和相位因原创 2020-06-29 17:25:24 · 7846 阅读 · 12 评论 -
Matlab按照二进制读写txt文件
1、Matlab按照二进制读txt文件data = textread('...\file.txt','%s');%二进制读2、Matlab按照二进制写txt文件fid = fopen('...\file.txt','wb');%按照二进制写打开文件fprintf(fid,'%s\r\n',data(i));%将data的某一位写入文件,写入以后换行fclose(fid);%关闭文件3、Matlab中十进制与二进制转换data_b = dec2bin(data);%十进制到二进原创 2020-06-24 15:02:12 · 4281 阅读 · 3 评论 -
ISE联合Modelsim仿真失败的解决办法
ISE联合Modelsim仿真失败,显示:ERROR: The path specified in the "Compiled Library Directory" property ("") does not exist.原创 2020-05-18 13:03:40 · 6668 阅读 · 0 评论 -
LED驱动实验
眼高手低不可取,必须动手去做去调才能逐渐进步。本文是一个简单的FPGA工程,实现了根据按键输入,对应不同LED输出的简单功能。包含了实验资源介绍,仿真内容,实验过程,Verilog设计代码,以及功能/时序仿真,详细展示了FPGA的开发流程和操作细节。原创 2020-05-19 13:55:56 · 2104 阅读 · 0 评论 -
xilinx Vivado的使用详细介绍(2):创建工程、添加文件、综合、实现、管脚约束、产生比特流文件、烧写程序、硬件验证
xilinx Vivado的使用详细介绍(2):创建工程、添加文件、综合、实现、管脚约束、产生比特流文件、烧写程序、硬件验证Author:zhangxianhe新建工程打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程。点击Next;输入工程名称和路...转载 2020-04-02 18:36:03 · 7750 阅读 · 2 评论 -
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真
新建工程打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程。点击Next;输入工程名称和路径。选择RTL Project,勾选Do not specify sources at this time(这样可以跳过添加源文件的步骤,源文件可以后面再添加)。...转载 2020-04-02 18:33:14 · 1534 阅读 · 0 评论