上一篇文章已經(jīng)講過了單bit跨時鐘域的處理方法,這次解說一下多bit的跨時鐘域方法:
1、打兩拍,比較,具體代碼如下所示。
// ============================================================
// File Name: cm_cdc_4bit
// VERSION : V1.0
// DATA : 2022/9/28
// Author : FPGA干貨分享
// ============================================================
// 功能:4bit慢變信號跨時鐘域模塊
// ============================================================
`timescale 1ns/1ps
module cm_cdc_4bit (
input wire I_clk_a , ///輸入時鐘a
input wire I_clk_b , ///輸入時鐘b
input wire [3:0] I_data_a , ///a時鐘輸入信號
output reg [3:0] O_data_b ///b時鐘輸出信號
);
// ============================================================
// wire reg
// ============================================================
reg [3:0] S_data_b_d0 ;
reg [3:0] S_data_b_d1 ;
reg [3:0] S_data_b_d2 ;
// ============================================================
// a時鐘域
// ============================================================
// ============================================================
// b時鐘域
// ============================================================
///使用第二個時鐘進(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
//打兩拍之后的信號進(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)換代碼及仿真。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618596 -
信號
+關(guān)注
關(guān)注
11文章
2853瀏覽量
78298 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2291瀏覽量
96424 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32459 -
時鐘域
+關(guān)注
關(guān)注
0文章
53瀏覽量
9792
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
FPGA初學(xué)者的必修課:FPGA跨時鐘域處理3大方法
處理的方法,這三種方法可以說是FPGA界最常用也最實(shí)用的方法,這三種方法包含了單bit和多bit
發(fā)表于 03-04 09:22
評論