随笔 - 284, 文章 - 0, 评论 - 60, 阅读 - 53万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

查找一段信号的累加峰值---verilog

Posted on   沉默改良者  阅读(830)  评论(0编辑  收藏  举报

查找一段信号的累加峰值---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
复制代码

 

编辑推荐:
· 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)
点击右上角即可分享
微信分享提示