上一篇文章已經(jīng)講過(guò)了單bit跨時(shí)鐘域的處理方法,這次解說(shuō)一下多bit的跨時(shí)鐘域方法:
1、打兩拍,比較,具體代碼如下所示。
// ============================================================
// File Name: cm_cdc_4bit
// VERSION : V1.0
// DATA : 2022/9/28
// Author : FPGA干貨分享
// ============================================================
// 功能:4bit慢變信號(hào)跨時(shí)鐘域模塊
// ============================================================
`timescale 1ns/1ps
module cm_cdc_4bit (
input wire I_clk_a , ///輸入時(shí)鐘a
input wire I_clk_b , ///輸入時(shí)鐘b
input wire [3:0] I_data_a , ///a時(shí)鐘輸入信號(hào)
output reg [3:0] O_data_b ///b時(shí)鐘輸出信號(hào)
);
// ============================================================
// wire reg
// ============================================================
reg [3:0] S_data_b_d0 ;
reg [3:0] S_data_b_d1 ;
reg [3:0] S_data_b_d2 ;
// ============================================================
// a時(shí)鐘域
// ============================================================
// ============================================================
// b時(shí)鐘域
// ============================================================
///使用第二個(gè)時(shí)鐘進(jìn)行打拍
always @(posedge I_clk_b)
begin
S_data_b_d0 <= I_data_a ;
S_data_b_d1 <= S_data_b_d0 ;
S_data_b_d2 <= S_data_b_d1 ;
end
//打兩拍之后的信號(hào)進(jìn)行處理
always @(posedge I_clk_b)
if(S_data_b_d2 == S_data_b_d1)
O_data_b <= S_data_b_d2;
else
O_data_b <= O_data_b ;
endmodule
第二種方法就是計(jì)數(shù)器轉(zhuǎn)gray碼。
下一篇將為大家講解格雷碼與二進(jìn)制碼的轉(zhuǎn)換代碼及仿真。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21984瀏覽量
614995 -
信號(hào)
+關(guān)注
關(guān)注
11文章
2846瀏覽量
77982 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2288瀏覽量
96118 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32389 -
時(shí)鐘域
+關(guān)注
關(guān)注
0文章
53瀏覽量
9748
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于跨時(shí)鐘域信號(hào)的處理方法
如何處理好FPGA設(shè)計(jì)中跨時(shí)鐘域問題?
三種FPGA界最常用的跨時(shí)鐘域處理法式
FPGA初學(xué)者的必修課:FPGA跨時(shí)鐘域處理3大方法
如何處理好FPGA設(shè)計(jì)中跨時(shí)鐘域間的數(shù)據(jù)
FPGA跨時(shí)鐘域處理簡(jiǎn)介
FPGA界最常用也最實(shí)用的3種跨時(shí)鐘域處理的方法
(10)FPGA跨時(shí)鐘域處理

評(píng)論