fhdl projest

Upload: naveen-m-gubbi

Post on 05-Apr-2018

215 views

Category:

Documents


0 download

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