查找一段信号的累加峰值---verilog
1 module Peak_Finding( 2 3 input wire Clk, 4 input wire Rst_n, 5 input wire DataEnable, 6 input wire [21:0] AbsoluteData; 7 output reg PeakFinded); 8 9 //---------------------------------------------------------------------- 10 //the enable singal buffer 11 reg BufferEnable; 12 //the input data buffer 13 reg [21:0]BufferData; 14 15 always @(posedge Clk or negedge Rst_n) 16 begin 17 if(!Rst_n) 18 begin 19 BufferEnable <= 0; 20 BufferData <= 0; 21 end 22 else 23 begin 24 if(DataEnable) 25 begin 26 BufferEnable <= 1; 27 BufferData <= AbsoluteData; 28 end 29 else 30 begin 31 BufferEnable <= 0; 32 BufferData <= 0; 33 end 34 end 35 end 36 37 //---------------------------------------------------------------------- 38 39 reg [3:0] STS_end_counter; /*峰值数目计数器******////// 40 41 always @(posedge Clk or negedge Rst_n) 42 begin 43 if(!Rst_n) 44 begin 45 STS_end_counter <= 0; 46 PeakFinded <= 0; 47 end 48 else 49 begin 50 if(BufferEnable) 51 begin /*absolute_sum位宽22位(1位符号位 + 7位整数位 + 14位小数位)******////// 52 if(STS_end_counter < 9) 53 begin 54 if (BufferData > 22'b0000_0001_10_0000_0000_0000) 55 STS_end_counter <= STS_end_counter + 1; /*大于阈值,计数器加1******////// 56 57 PeakFinded <= 0; 58 end 59 else 60 PeakFinded <= 1; /*当找到9个峰值,即短训练序列的结束位置,把信号拉高******////// 61 end 62 else 63 begin /*帧结束时,把寄存器赋予初始值******////// 64 STS_end_counter <= 0; 65 PeakFinded <= 0; 66 end 67 end 68 end 69 70 71 endmodule
标签:
Verilog HDL
, FPGA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-06-29 阅读 Device Driver Programmer Guide 笔记
2017-06-29 Xilinx AXI总线学习(1)