fhdl projest
TRANSCRIPT
-
8/2/2019 fhdl projest
1/5
Verilog code for clock domain crossingVerilog RTL code for synchronization logic to implement clock
domain crossing circuit:-HomeVerilogDigital DesignDigital BasicsPythonRF Basics
Legal DisclaimerChip Designing for ASIC/ FPGA Design engineers and Students
FULLCHIPDESIGN
Digital-logic Design... Dream for many students start learning front-end
Search
Custom Search
Feedback ? Send it to [email protected] or join me at [email protected] stmtsIF-ELSECase stmsReadmemhFunctionTestbenchBinary to GrayClock CrossingHalf-adderFull-adderTristate bufferAdder tbCounter_enableBlockingOperatorsShift LSRRandom NosSync RAMVerilog Tutorial
Legal Disclaimer
PICS
Topics @TYH :- 4G LTE Tutorial, GVIM editor,Smart-Phone, Cloud
Computing
PreviousNext
RTL Design engineers
FORUM
FORUM
http://fullchipdesign.com/index.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/digitalbasicstut.htmhttp://fullchipdesign.com/rffunda.htmhttp://fullchipdesign.com/rffunda.htmhttp://fullchipdesign.com/disclaimer.htmhttp://fullchipdesign.com/disclaimer.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/condif.htmhttp://fullchipdesign.com/readmemh.htmhttp://fullchipdesign.com/verilogtb.htmhttp://fullchipdesign.com/clockdomaincrossing.htmhttp://fullchipdesign.com/fulladderc.htmhttp://fullchipdesign.com/fulladderc.htmhttp://fullchipdesign.com/tristate.htmhttp://fullchipdesign.com/countenable.htmhttp://fullchipdesign.com/verilog_operators_precedence.htmhttp://fullchipdesign.com/verilog_random_$fdisplay.htmhttp://fullchipdesign.com/verilog_tutorial.htmhttp://fullchipdesign.com/verilog_tutorial.htmhttp://fullchipdesign.com/disclaimer.htmhttp://fullchipdesign.com/disclaimer.htmhttp://www.fullchipdesign.com/tyh/pics.htmhttp://www.fullchipdesign.com/tyh/pics.htmhttp://www.fullchipdesign.com/tyh/computingdevice.htmhttp://www.fullchipdesign.com/tyh/lte_long_term_evolution_tutorial.htmhttp://www.fullchipdesign.com/tyh/gvim_shortcuts_regex.htmhttp://www.fullchipdesign.com/tyh/computingdevice.htmhttp://www.fullchipdesign.com/tyh/computingdevice.htmhttp://www.fullchipdesign.com/tyh/cloud_computing_server.htmhttp://www.fullchipdesign.com/tyh/cloud_computing_server.htmhttp://www.fullchipdesign.com/tyh/cloud_computing_server.htmhttp://fullchipdesign.com/veriloggray.htmhttp://fullchipdesign.com/veriloggray.htmhttp://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://www.facebook.com/pages/RTL-Design-engineers/101988623200625http://fullchipdesign.com/veriloggray.htmhttp://fullchipdesign.com/veriloggray.htmhttp://www.fullchipdesign.com/tyh/cloud_computing_server.htmhttp://www.fullchipdesign.com/tyh/cloud_computing_server.htmhttp://www.fullchipdesign.com/tyh/computingdevice.htmhttp://www.fullchipdesign.com/tyh/gvim_shortcuts_regex.htmhttp://www.fullchipdesign.com/tyh/lte_long_term_evolution_tutorial.htmhttp://www.fullchipdesign.com/tyh/computingdevice.htmhttp://www.fullchipdesign.com/tyh/pics.htmhttp://fullchipdesign.com/disclaimer.htmhttp://fullchipdesign.com/verilog_tutorial.htmhttp://fullchipdesign.com/verilog_random_$fdisplay.htmhttp://fullchipdesign.com/verilog_random_$fdisplay.htmhttp://fullchipdesign.com/verilog_operators_precedence.htmhttp://fullchipdesign.com/verilog_operators_precedence.htmhttp://fullchipdesign.com/countenable.htmhttp://fullchipdesign.com/countenable.htmhttp://fullchipdesign.com/tristate.htmhttp://fullchipdesign.com/tristate.htmhttp://fullchipdesign.com/fulladderc.htmhttp://fullchipdesign.com/fulladderc.htmhttp://fullchipdesign.com/clockdomaincrossing.htmhttp://fullchipdesign.com/clockdomaincrossing.htmhttp://fullchipdesign.com/verilogtb.htmhttp://fullchipdesign.com/verilogtb.htmhttp://fullchipdesign.com/readmemh.htmhttp://fullchipdesign.com/readmemh.htmhttp://fullchipdesign.com/condif.htmhttp://fullchipdesign.com/condif.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/disclaimer.htmhttp://fullchipdesign.com/rffunda.htmhttp://fullchipdesign.com/digitalbasicstut.htmhttp://fullchipdesign.com/digitalbasicstut.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/verilog.htmhttp://fullchipdesign.com/index.htmhttp://fullchipdesign.com/index.htm -
8/2/2019 fhdl projest
2/5
Search
Verilog code for clock domain crossingVerilog RTL code for synchronization logic to implement clock
domain crossing circuit:-module clk_2_cross ( clock1, clock2, rst_n, data_in, data_out);
input clock1;
input clock2;
input rst_n;
output [7:0] data_out;input [7:0] data_in;
reg [7:0] data_out_meta;
reg [7:0] data_out_reg;
reg [7:0] data_out_reg_r;
wire[7:0] data_out;
// Assign statements
assign data_out = data_out_reg_r;
// Always block to declare synchronous logic from source clock domain
always @ (posedge clock1)
begindata_out_meta
-
8/2/2019 fhdl projest
3/5
begindata_out_reg
-
8/2/2019 fhdl projest
4/5
reg rst_n;reg writep;reg [7:0] r_count, count, r_packet_in, packet_in;reg wr_en, r_wr_en, rd_en, r_rd_en;reg [1:0] r_rd_count,rd_count;
// Use of initial statement to generate clocks 1fs and1fs_d
initialbegin
clk_1fs = 0; clk_1fs_d = 0; rst_n = 0; #100 rst_n = 1;foreverbegin
#10 clk_1fs = 1; #11 clk_1fs_d = 1; #10 clk_1fs= 0; #11 clk_1fs_d = 0; end end
// Always block to generate synchronous packets in 1fsclock domainalways@(posedge clk_1fs ornegedge rst_n)begin
if (!rst_n) beginr_packet_in
-
8/2/2019 fhdl projest
5/5
packet_in = 'hcc; wr_en = 'b1; end13 : begin
packet_in = 'hdd; wr_en= 'b1; end
14 : begin
packet_in = 'hee; wr_en= 'b1; end
15 : beginpacket_in = 'hff; wr_en= 'b1; end
default: beginpacket_in = 'd0; wr_en = 'd0; end
endcaseend
// Instance for clock domain crossing
clk_2_cross u_clock_2_cross(
.clk_1fs(clk_1fs), .clk_1fs_d(clk_1fs_d), .rst_n(rst_n), .data_in(r_packet_in), .data_out() );
endmodule