当前位置:网站首页>[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 !!!
边栏推荐
- Continuous test (CT) practical experience sharing
- SD_ DATA_ RECEIVE_ SHIFT_ REGISTER
- POJ 2392 Space Elevator
- Longest common prefix (leetcode question 14)
- Flipping Game(枚举)
- [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
- 2022上半年朋友圈都在传的10本书,找到了
- 解决远程rviz报错问题
- Chief technology officer of Pasqual: analog quantum computing takes the lead in bringing quantum advantages to industry
- The top of slashdata developer tool is up to you!!!
猜你喜欢
杰理之手动配对方式【篇】
杰理之相同声道的耳机不允许配对【篇】
CMD command enters MySQL times service name or command error (fool teaching)
[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
Basic operation of chain binary tree (implemented in C language)
50亿,福建又诞生一只母基金
Interview vipshop internship testing post, Tiktok internship testing post [true submission]
Desci: is decentralized science the new trend of Web3.0?
Borui data was selected in the 2022 love analysis - Panoramic report of it operation and maintenance manufacturers
Three forms of multimedia technology commonly used in enterprise exhibition hall design
随机推荐
Redis publishing and subscription
Hutool - lightweight DB operation solution
DeSci:去中心化科学是Web3.0的新趋势?
PTA 1102 教超冠军卷
LeetCode 890(C#)
2022上半年朋友圈都在传的10本书,找到了
Recommend free online SMS receiving platform in 2022 (domestic and foreign)
【Base64笔记】「建议收藏」
"Decryption" Huawei machine vision Corps: Huawei is moving up and the industry is moving forward
Is AI more fair than people in the distribution of wealth? Research on multiplayer game from deepmind
How to implement safety practice in software development stage
Number - number (Lua)
完整的电商系统
Big Ben (Lua)
Tips and tricks of image segmentation summarized from 39 Kabul competitions
Draw squares with Obama (Lua)
LeetCode 535(C#)
Three forms of multimedia technology commonly used in enterprise exhibition hall design
Experiment 1 of Compilation Principle: automatic implementation of lexical analyzer (Lex lexical analysis)
2022.07.05