MyFPGA Forum

 找回密码
 注册
搜索

[系统相关] 【Altera SoC】基于SOPC的单通道TDC设计(1)

查看数: 4872 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-8-5 09:07

正文摘要:

本帖最后由 BOB_Sun 于 2015-8-5 09:09 编辑 本文转自  http://bbs.eeworld.com.cn/thread-465441-1-1.html 1 硬件系统的构建 经过“基于超前进位延时链的时间数字转换器”和“延时链测试以及亚稳态 ...

回复

BOB_Sun 发表于 2015-8-5 09:08:27
//  Structural coding
//=======================================================
wire reset_n;

assign reset_n = 1'b1;
//=======================================================
//  delay_inst
//=======================================================
top_sch delay_inst(
        .clock(DRAM_CLK),
        .st2(sin),
        .wr(wr_rqt),
        .ris_c(ris_c),
        .fal_c(fal_c)
);
sysfifo fifo_inst(
        .data({{12{1'b0}},ris_c,fal_c}),
        .rdclk(rd_clk),
        .rdreq(rd_rqt),
        .wrclk(DRAM_CLK),
        .wrreq(wr_rqt),
        .q(din),
        .rdempty(rd_empt),
        .wrfull(wr_full));
audio_nios u0(

                .clk_clk                                (CLOCK_50),                            //                         clk.clk
                .reset_reset_n                          (reset_n),                      //                       reset.reset_n
                .pll_sdam_clk                           (DRAM_CLK),                       //                    pll_sdam.clk
                .pll_outclk3_clk                        (rd_clk),
                .key_external_connection_export         (KEY),     //     key_external_connection.export
                .seg7_conduit_end_export                ({
                                              HEX5P, HEX5, HEX4P, HEX4,
                                              HEX3P, HEX3, HEX2P, HEX2,
                                              HEX1P, HEX1, HEX0P, HEX0}),            //            seg7_conduit_end.export
                .pio_0_external_connection_export       (LEDR),   //   pio_0_external_connection.export
                .sw_external_connection_export          (SW),      //      sw_external_connection.export
                .din32_external_connection_export   (din),   //   din32_external_connection.export
      .wr_full_external_connection_export (wr_full), // wr_full_external_connection.export
      .rd_rqt_external_connection_export  (rd_rqt),  //  rd_rqt_external_connection.export
      .rd_empt_external_connection_export (rd_empt),  // rd_empt_external_connection.export

                .sdram_wire_addr                        (DRAM_ADDR),                    //                  sdram_wire.addr
                .sdram_wire_ba                          (DRAM_BA),                      //                            .ba
                .sdram_wire_cas_n                       (DRAM_CAS_N),                   //                            .cas_n
                .sdram_wire_cke                         (DRAM_CKE),                     //                            .cke
                .sdram_wire_cs_n                        (DRAM_CS_N),                    //                            .cs_n
                .sdram_wire_dq                          (DRAM_DQ),                      //                            .dq
                .sdram_wire_dqm                         ({DRAM_UDQM,DRAM_LDQM}),                     //                            .dqm
                .sdram_wire_ras_n                       (DRAM_RAS_N),                   //                            .ras_n
                .sdram_wire_we_n                        (DRAM_WE_N)                    //                            .we_n

        );



Endmodule


1.2 TDC顶层源程序
module top_sch #(parameter WIDTH=1000)(
        clock,
        st2,
        wr,
        rd_o,
        ris_c,
        fal_c
);
output wire wr;
input wire        clock;
input wire        st2;
output [9:0] ris_c;
output [9:0] fal_c;
output rd_o;



wire        [WIDTH-1:0] SYNTHESIZED_WIRE_0;
wire        [WIDTH-1:0] SYNTHESIZED_WIRE_1;
wire        [WIDTH-1:0] SYNTHESIZED_WIRE_2;
wire        [WIDTH-1:0] SYNTHESIZED_WIRE_3;
wire        [WIDTH-1:0] SYNTHESIZED_WIRE_4;
wire rd_o_f,rd_o_r;



add200        b2v_inst(
        .clock(clock),
        .data_a(SYNTHESIZED_WIRE_0),
        .dataa(SYNTHESIZED_WIRE_1),
        .result(SYNTHESIZED_WIRE_2));


o_add        b2v_inst2(
        .result(SYNTHESIZED_WIRE_2),
        .ris_o(SYNTHESIZED_WIRE_3),
        .fal_o(SYNTHESIZED_WIRE_4));


l_add        b2v_inst3(   
        .result(SYNTHESIZED_WIRE_1));


r_add        b2v_inst4(
        .st1(st2),
        .result(SYNTHESIZED_WIRE_0));
encoder b2v_inst5(
    .clk(clock),
         .rd_o(rd_o_r),
         .srin(SYNTHESIZED_WIRE_3),
         .tenout(ris_c)        
        );
encoder b2v_inst6(
    .clk(clock),
         .rd_o(rd_o_f),
         .srin(SYNTHESIZED_WIRE_4),
         .tenout(fal_c)        
        );
Endmodule
1.3 FIFO顶层源程序
// synopsys translate_off
`timescale 1 ps / 1 ps
// synopsys translate_on
module sysfifo (
        data,
        rdclk,
        rdreq,
        wrclk,
        wrreq,
        q,
        rdempty,
        wrfull);

        input        [19:0]  data;
        input          rdclk;
        input          rdreq;
        input          wrclk;
        input          wrreq;
        output        [19:0]  q;
        output          rdempty;
        output          wrfull;

        wire [19:0] sub_wire0;
        wire  sub_wire1;
        wire  sub_wire2;
        wire [19:0] q = sub_wire0[19:0];
        wire  rdempty = sub_wire1;
        wire  wrfull = sub_wire2;

        dcfifo        dcfifo_component (
                                .data (data),
                                .rdclk (rdclk),
                                .rdreq (rdreq),
                                .wrclk (wrclk),
                                .wrreq (wrreq),
                                .q (sub_wire0),
                                .rdempty (sub_wire1),
                                .wrfull (sub_wire2),
                                .aclr (),
                                .rdfull (),
                                .rdusedw (),
                                .wrempty (),
                                .wrusedw ());
        defparam
                dcfifo_component.intended_device_family = "Cyclone V",
                dcfifo_component.lpm_numwords = 16,
                dcfifo_component.lpm_showahead = "OFF",
                dcfifo_component.lpm_type = "dcfifo",
                dcfifo_component.lpm_width = 20,
                dcfifo_component.lpm_widthu = 4,
                dcfifo_component.overflow_checking = "ON",
                dcfifo_component.rdsync_delaypipe = 4,
                dcfifo_component.underflow_checking = "ON",
                dcfifo_component.use_eab = "ON",
                dcfifo_component.wrsync_delaypipe = 4;


endmodule

(完)

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2025-5-13 23:53 , Processed in 0.046607 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表