当前位置:网站首页>[Verilog advanced challenge of Niuke network question brushing series] ~ multi bit MUX synchronizer
[Verilog advanced challenge of Niuke network question brushing series] ~ multi bit MUX synchronizer
2022-07-07 19:18:00 【AI is very good】
Catalog :
0. Preface
I haven't updated Niu Ke's blog for a few days , I'm busy recently , I can only try to do one watch every day !!! Brush the questions at the same time , Make it small on one side demo, Keep on learning .
Today's problem is mainly a multi bit data transmission across the clock domain , It is also a common question type , It works , How to deal with cross clock domain , You can move to a blog I wrote before , Portal
1. VL48 many bit MUX synchronizer
1.1 Title Description
stay data_en For the high period ,data_in Will remain unchanged ,data_en Keep at least 3 individual B Clock cycle . indicate , When data_en For the high time , Data can be synchronized .
In this question data_in The frequency of data change at the end is very low , The change between two adjacent data , At least at intervals 10 individual B Clock cycle .
1.1.1 Signal schematic diagram


1.1.2 Waveform diagram
nothing
1.1.3 Input description
input clk_a ,
input clk_b ,
input arstn ,
input brstn ,
input [3:0] data_in ,
input data_en
1.1.4 Output description
output reg [3:0] dataout
1.2 Their thinking
According to the meaning of the topic, the general framework is as follows :
among , The red box indicates data temporary storage as well as Enable temporary storage ; The blue box indicates cross clock domain processing , Use the shape of two beats to complete ; The green box indicates MUX Select and temporarily output the results .
1.3 Code implementation
`timescale 1ns/1ns
module mux(
input clk_a ,
input clk_b ,
input arstn ,
input brstn ,
input [3:0] data_in ,
input data_en ,
output reg [3:0] dataout
);
// The staging data_en
reg data_en_reg;
always @ (posedge clk_a or negedge arstn) begin
if(!arstn) begin
data_en_reg <= 1'b0;
end
else begin
data_en_reg <= data_en;
end
end
//data_in
reg [3:0] data_in_reg;
always @ (posedge clk_a or negedge arstn) begin
if(!arstn) begin
data_in_reg <= 4'd0;
end
else begin
data_in_reg <= data_in;
end
end
// Two beats , Transition across clock domains
reg data_en_ab1, data_en_ab2;
always @ (posedge clk_b or negedge brstn) begin
if(!brstn) begin
data_en_ab1 <= 1'b0;
data_en_ab2 <= 1'b0;
end
else begin
data_en_ab1 <= data_en_reg;
data_en_ab2 <= data_en_ab1;
end
end
// MUX
always @ (posedge clk_b or negedge brstn) begin
if(!brstn) begin
dataout <= 4'd0;
end
else begin
dataout <= data_en_ab2 ? data_in_reg : dataout;
end
end
endmodule
1.4 The test file
To be updated ...
1.5 Simulation waveform
To be updated ...
Statement
All my series of articles , Just for learning , Not for commercial use , If there is any infringement , Please inform , To delete !!!
I mainly record the learning process , For myself to review , Then it is to provide reference for future generations , No joy, no spray. !!!
If it's useful to you , Remember to collect + Comment on !!!
边栏推荐
- Responsibility chain model - unity
- Redis
- SD_ DATA_ RECEIVE_ SHIFT_ REGISTER
- Longest common prefix (leetcode question 14)
- LeetCode 497(C#)
- Experiment 1 of Compilation Principle: automatic implementation of lexical analyzer (Lex lexical analysis)
- How to share the same storage among multiple kubernetes clusters
- DeSci:去中心化科学是Web3.0的新趋势?
- 网易云信参与中国信通院《实时音视频服务(RTC)基础能力要求及评估方法》标准编制...
- Flipping Game(枚举)
猜你喜欢

高温火烧浑不怕,钟薛高想留清白在人间

State mode - Unity (finite state machine)

抢占周杰伦

3.关于cookie

前首富,沉迷种田

Creative changes brought about by the yuan universe

I feel cheated. Wechat tests the function of "size number" internally, and two wechat can be registered with the same mobile number

How to share the same storage among multiple kubernetes clusters

超分辨率技术在实时音视频领域的研究与实践
![Jerry's headphones with the same channel are not allowed to pair [article]](/img/7d/3dcd9c7df583944e1d765b67543eb1.png)
Jerry's headphones with the same channel are not allowed to pair [article]
随机推荐
AI来搞财富分配比人更公平?来自DeepMind的多人博弈游戏研究
2022.07.05
[software test] from the direct employment of the boss of the enterprise version, looking at the resume, there is a reason why you are not covered
Tips and tricks of image segmentation summarized from 39 Kabul competitions
Experiment 1 of Compilation Principle: automatic implementation of lexical analyzer (Lex lexical analysis)
Desci: is decentralized science the new trend of Web3.0?
Numpy——axis
反爬虫的重点:识别爬虫
Cadre de validation des données Apache bval réutilisé
Longest common prefix (leetcode question 14)
How much does it cost to develop a small program mall?
Research and practice of super-resolution technology in the field of real-time audio and video
String - string (Lua)
基于图像和激光的多模态点云融合与视觉定位
How many times is PTA 1101 B than a
Former richest man, addicted to farming
炒股如何开户?请问一下手机开户股票开户安全吗?
Chief technology officer of Pasqual: analog quantum computing takes the lead in bringing quantum advantages to industry
LeetCode1051(C#)
2022上半年朋友圈都在传的10本书,找到了