FPGA
文章平均质量分 63
PFGA 相关内容说明
ML__LM
越努力,越幸运
展开
-
FPGA编程易错点
FPGA编程易错点1 使用加法,注意数据位宽的变化1 使用加法,注意数据位宽的变化// 将四个阵元加权后的信号合成起来 //下面这行代码不对,没有考虑位宽的扩展//assign real_y = Ct_1I+Ct_2I+Ct_3I+Ct_4I; // 实部// 为什么需要扩展两位 // 比如:4个1相加等于4,加数只需要1bit进行表示,而和需要3bit进行表示,所以要扩展两位// 由于最后只需要16bit,所以低两位不要。wire [17:0] real_y_18bit; wi原创 2021-11-29 21:13:55 · 1512 阅读 · 0 评论 -
Vivado常用编程方法
tool------language templates-------输入关键词原创 2021-07-25 11:00:07 · 5226 阅读 · 0 评论 -
FPGA常见问题解决方法
1、如何例化IP2、IP怎么调用///////////////// 调用 PLL IP ///////////////////// // 功能说明:程序中先用实例化 clk_wiz_0, 把单端 50Mhz 时钟信号输入到 clk_wiz_0 的 clk_in1,把clk_out4 的输出赋给 clk_out。 clk_wiz_0 clk_wiz_0_inst ( // clock in ports .clk_in1(sys_clk), /原创 2021-05-21 21:46:54 · 5471 阅读 · 0 评论 -
FPGA硬件测试注意点
无原创 2022-11-08 19:31:44 · 264 阅读 · 0 评论 -
Verilog语法
无原创 2022-09-22 11:13:24 · 184 阅读 · 0 评论 -
FPGA实现信号n倍插值(内插0)
FPGA实现信号n倍插值(内插0)1 MATLAB仿真1.1 源代码1.2 仿真结果2 FPGA实现2.1 系统结构2.2 源代码2.3 仿真结果3 完整工程链接1 MATLAB仿真1.1 源代码% // 程序功能说明:% // 1、用100M的系统钟产生10M的点频信号RtI(一个周期采10个点)% // 2、对RtI进行三倍内插,一个点插两个0% // 3、低通滤波器滤波,保留10M的信号close all;clear all;clc;%%%%%%%%%%%%%%%%%%%原创 2022-03-26 23:09:31 · 6136 阅读 · 17 评论 -
VHDL语法
VHDL语法1 常用函数1 常用函数(1) conv_std_logic_vector-- conv_std_logic_vector 是一个函数 :将十进制数转换成二进制补码frequncy <= conv_std_logic_vector(19600,16); --将十进制数转化为16bit的二进制补码...原创 2022-03-26 17:58:21 · 2269 阅读 · 0 评论 -
FIR Compiler IP系数重加载方法
FIR Compiler IP系数重加载方法1 基本介绍2 实现流程3 具体实现步骤3.1 生成两个带通滤波器的coe系数文件3.2 配置 DDS3.3 配置 FIR IP5 实现代码5.1 源文件5.2 testbench5.3 结果6 注意点1 基本介绍FIR Compiler模块提供了两种滤波器系数重加载方法。1、reload方法,利用reload接口写入新系数。2、config方法,提前将系数分组后写到Coefficient Vector中,再通过config接口写入系数组编号,选择相应原创 2022-01-05 20:27:27 · 4186 阅读 · 4 评论 -
Vivado寻找一串序列的最大值
`timescale 1ns / 1ps// 寻找1024个点的最大值module Max_Get( input clk , input reset , input En ,//寻找最大值模块开始工作的使能信号 input [63:0] data_in ,// 输入数据原创 2021-12-22 16:16:56 · 1105 阅读 · 0 评论 -
FPGA IP核的生成和调用
多数表决器工程建立1、creat project----next-----给工程命名----选择工程存放位置2、next----点击RTL Project3、创建源文件4、一直next,选择器件5、指定输入输出6、编写源代码7、add 仿真文件7、编写仿真文件8、run simulation8、添加约束文件9、编写约束文件9、点击run synthesis,点击 run implementation。结果如下10、 打开TRL 分析I原创 2020-09-10 19:16:22 · 753 阅读 · 0 评论 -
如何抓取信号的上升沿
1 源文件`timescale 1ns / 1ps//如何抓取信号的上升沿module Get_signal_rise_edge( input clk , input reset , input FinishW_flag //权值写入RAM的完成标志信号 );//如何抓取FinishW_flag的上升沿// 设置两个标志位a0和a1 a0reg d0; //设置两原创 2021-12-09 18:17:39 · 1400 阅读 · 0 评论 -
vivado如何做延时
基础知识:(1)符号“=”用于阻塞的赋值(如:b = a;)。阻塞赋值“=”在 begin 和 end 之间的语句是顺序执行,属于串行语句。(2)符号“<=”用于非阻塞赋值(如:b <= a;)。非阻塞赋值是由时钟节拍决定,在时钟上升到来时,执行赋值语句右边,然后将 begin-end 之间的所有赋值语句同时赋值到赋值语句的左边。注意:是 begin—end 之间的所有语句,一起执行,且一个时钟只执行一次,属于并行执行语句。所以RAM_Write_Addr_vaild信号滞后于Calib原创 2021-12-08 20:51:36 · 4919 阅读 · 2 评论 -
vivado 如何添加时序约束
vivado 如何添加时序约束一个 FPGA 设计除了管脚分配以外,还有一个重要的约束,那就是时序约束,这里通过向导方式演示如果进行一个时序约束点击“Run Synthesis”开始综合弹出对话框点击“OK”综合完成以后点击“Cancel”4) 点击“Constraints Wizard”5) 在弹出的窗口中点击“Next”6) 时序约束向导分析出设计中的时钟,这里把“sys_clk”频率设置为 50Mhz,然后点击“Skip to Finish”结束时序约束向导。原创 2021-11-17 17:28:36 · 7482 阅读 · 0 评论 -
FPGA时序分析和时序约束
FPGA时序分析和时序约束1时序分析和时序约束2例子分析2.1实现代码2.2时序分析的基本模型1时序分析和时序约束时序分析的目的:通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟的关系。一个良好的设计系统,必然能够保证整个系统中的所有寄存器都能够正确的寄存数据。数据和时钟路径是由EDA软件,通过对特定器件布局布线得到的。时序约束的目的:(1)告知EDA软件,本设计需要达到怎样的时序指标,然后EDA软件会根据时序的各个参数,尽量优化布局,以达到该指标。(2)协助原创 2021-10-03 12:50:10 · 2146 阅读 · 0 评论 -
FPGA如何利用查表法得到某角度所对应的正弦值、余弦值
FPGA如何利用查表法得到某角度所对应的正弦值、余弦值1 实现思路2 具体实现步骤2.1 MATLAB生成sin.coe文件和cos.coe文件2.2 将sin.coe和cos.coe文件分别写入ROM核2.3添加ILA2.4 新建源文件top,编写源文件2.5 新建约束文件,编写约束文件3 结果3.1 结构图3 结果分析1 实现思路1、MATLAB生成不同角度的正弦值sin.coe文件和余弦值cos.coe文件;2、将sin.coe和cos.coe文件分别写入ROM核;3、查表得到角度所对应的正原创 2021-07-12 19:50:55 · 2606 阅读 · 3 评论 -
vivado的ila调试注意事项
ila调试注意事项1、修改代码后,重新生成比特流文件。此时需要重新program程序的比特流文件和调试文件。要不然,波形还是修改之前的波形。原创 2021-06-27 22:24:10 · 1185 阅读 · 0 评论 -
FPGA的ila数据如何通过MATLAB进行分析
这里写目录标题1 保存与读取ila数据1 保存与读取ila数据把想要观测的信号线加入在线逻辑分析仪中保存ila数据的TCL命令write_hw_ila_data E:/yourpath/name_ila.ila [upload_hw_ila_data hw_ila_1]需要注意的是,目录中不能有space,中文。name_ila为保存的文件名,需要带路径,注意是右斜“/”.hw_ila_1为你的ILA的名字,[ ]中为对应的ILA核。write_hw_ila_data E:/name_ila.i原创 2021-06-18 16:59:08 · 767 阅读 · 0 评论 -
AN9238模块数据采集
AN9238模块数据采集1 AN9238原理2 板上验证3 仿真1 AN9238原理根据时序图,只要FPGA输出两路时钟信号作为AD模块的AD_clk,便可以采集数据。其他原理见数据手册2 板上验证顶层模块`timescale 1ns / 1psmodule top( input clk50m, //系统时钟 input reset_n, output wire [0:0] clk65m_1, //FPGA输出的时钟信号1,作为AD原创 2021-06-02 21:04:58 · 3690 阅读 · 6 评论 -
FPGA IP核的生成和调用
1、新建ip核的工程,74x1381. 1、新建源程序,编写源程序module v_74x138( input g1, input g2a_l, input g2b_l, input [2:0] a, output [7:0] y_l ); reg [7:0] y_l=0; always @(g1 or g2a_l or g2b_l or a) begin if(g1 && ~g2a_l &原创 2021-05-22 17:15:28 · 4233 阅读 · 1 评论 -
Vivado的工程建立过程
FPGA的基本用法----点亮led实现步骤1、建立工程2、添加源文件3、编写源文件4、添加约束文件5、添加时钟约束6、生成比特流文件实验结果实现步骤1、建立工程create Project----------Next------工程命名为p_led,并选择文件保存路径-----------Next-----------Next-----------Next--------器件选择(按照直接的开发板信号进行选择)-----------Next-----------finish2、添加源文件原创 2021-04-21 11:41:26 · 828 阅读 · 0 评论