测相位差(草稿)

设计要求:输入频率范围100HZ-100KHZ,相差0-90度。

参数设计:采用50MHz晶振的FPGA实验板搭建。分两档测量,150MHZ档位测试4KHZ-100KHz频率之间信号;3MHZ档位测试100HZ-4KHZ之间信号。计数器采用16位。

思路一:构造两个计数器,一个测信号周期,另一个测相差周期。

一、输入10KHz正弦波,经过RC移相网络后有大约36度相移。需要用FPGA测相差。

代码如下

复制代码
View Code
 1 module Test_pha
2 (
3 input clk,
4 input rst_n,
5
6 input start,
7 input IN1,
8 input IN2,
9
10 output [23:0] N1,
11 output [23:0] N2,
12 output AheadLag,
13 output PDout
14 );
15 //超前/滞后检测模块
16 reg r_AheadLag;
17 always @(posedge IN1)
18 if(IN2==1'b1) r_AheadLag<=1'b1;//IN2 ahead IN1
19 else r_AheadLag<=1'b0;//IN2 lag IN1
20 assign AheadLag=r_AheadLag;
21 //鉴相器模块
22 assign PDout=IN1^IN2;
23
24 //控制模块
25 reg EN1;
26 wire EN2;
27 always @(posedge IN1 or negedge rst_n)
28 if(!rst_n) EN1<=1'b0;
29 else EN1<=~EN1;
30
31 //计数器N2控制模块
32 assign EN2=PDout&EN1;
33
34 //N1计数模块
35 reg [23:0] r_N1;
36 wire [23:0] r_N1_next;
37 always @ (posedge clk or negedge rst_n)
38 if(!rst_n) r_N1<=0;
39 else if(EN1==1'b1)
40 r_N1<=r_N1_next;
41 else r_N1<=0;
42
43 assign r_N1_next=r_N1+1'b1;
44 assign N1=r_N1;
45
46 //N2计数模块
47 reg [23:0] r_N2;
48 wire [23:0] r_N2_next;
49 always @ (posedge clk or negedge rst_n)
50 if(!rst_n) r_N2<=0;
51 else if(EN2==1'b1)
52 r_N2<=r_N2_next;
53 else r_N2<=0;
54
55 assign r_N2_next=r_N2+1'b1;
56 assign N2=r_N2;
57
58 endmodule
复制代码

RTL级视图

RTL仿真波形

思路二:构造一个计数器,根据控制信号分别读取信号周期和相差。

模块构造分析:

1、PLL模块。提供150MHz时钟。

2、频率档位选择模块。通过Sel信号为计数器选择150M或3M时钟信号。150MHZ信号通过分频后添加测试引脚。

3、定制16位计数器,具有高电平清零端aclr。

4、触发信号。将两路信号相与产生脉冲信号,通过D触发器后输出给模块6。

5、极性判断信号。判断信号2是超前信号1还是滞后。

6、计数器控制模块。通过模块4脉冲信号控制计数器清零和计数值读取。

7、数据输出模块。将计数器的值送到外围引脚。

posted on   万好好  阅读(646)  评论(0编辑  收藏  举报

编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
< 2011年8月 >
31 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 6 7 8 9 10

导航

点击右上角即可分享
微信分享提示