OpenCores
URL https://opencores.org/ocsvn/two_dimensional_fast_hartley_transform/two_dimensional_fast_hartley_transform/trunk

Subversion Repositories two_dimensional_fast_hartley_transform

[/] [two_dimensional_fast_hartley_transform/] [trunk/] [mtx_trps_8x8_dpsram.v] - Diff between revs 2 and 4

Show entire file | Details | Blame | View Log

Rev 2 Rev 4
Line 1... Line 1...
//
/**********************************************************************
// File: mtx_trps_8x8_dpsram.v
 * File  : mtx_trps_8x8_dpsram.v
// Author: Ivan Rezki
 * Author: Ivan Rezki
// Topic: RTL Core
 * email : irezki@gmail.com
//                2-Dimensional Fast Hartley Transform
 * Topic : RTL Core
//
 *                2-Dimensional Fast Hartley Transform
 
 *
// Matrix Transpose 8x8
 *
// DPSRAM-based Double Buffer
 * Matrix Transpose 8x8
// Buffer size is 64*2 words, each word is 16 bits
 * DPSRAM-based Double Buffer
 
 * Buffer size is 64*2 words, each word is 16 bits
// Matrix Transpose -> 64 clk delay
 *
//                      - Double Buffer Solution:
 * Matrix Transpose -> 64 clk delay
 
 *                      - Double Buffer Solution:
 
 *
 
 * RIGHT TO USE: This code example, or any portion thereof, may be
 
 * used and distributed without restriction, provided that this entire
 
 * comment block is included with the example.
 
 *
 
 * DISCLAIMER: THIS CODE EXAMPLE IS PROVIDED "AS IS" WITHOUT WARRANTY
 
 * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
 
 * TO WARRANTIES OF MERCHANTABILITY, FITNESS OR CORRECTNESS. IN NO
 
 * EVENT SHALL THE AUTHOR OR AUTHORS BE LIABLE FOR ANY DAMAGES,
 
 * INCLUDING INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF THE
 
 * USE OF THIS CODE.
 
 **********************************************************************/
 
 
module mtx_trps_8x8_dpsram (
module mtx_trps_8x8_dpsram (
        rstn,
        rstn,
        sclk,
        sclk,
 
 
Line 51... Line 63...
wire [15:0] wr_DATA;
wire [15:0] wr_DATA;
wire [ 6:0] wr_ADDR;
wire [ 6:0] wr_ADDR;
wire            wr_CSN;
wire            wr_CSN;
wire            wr_WEN;
wire            wr_WEN;
 
 
wire [15:0] rd_DATA;
 
wire [ 6:0] rd_ADDR;
wire [ 6:0] rd_ADDR;
wire            rd_CSN;
wire            rd_CSN;
 
 
 
`ifdef USE_FPGA_SPSRAM
 
        wire [15:0] rd_DATA;
dpsram_128x16 u_dpsram(
dpsram_128x16 u_dpsram(
        .addra  (wr_ADDR),
        .addra  (wr_ADDR),
        .addrb  (rd_ADDR),
        .addrb  (rd_ADDR),
        .clka   (sclk),
        .clka   (sclk),
        .clkb   (sclk),
        .clkb   (sclk),
Line 69... Line 82...
        .ena    (wr_CSN),
        .ena    (wr_CSN),
        .enb    (rd_CSN),
        .enb    (rd_CSN),
        .wea    (wr_WEN),
        .wea    (wr_WEN),
        .web    (1'b1)
        .web    (1'b1)
);
);
 
`endif
 
 
 
`ifdef USE_ASIC_SPSRAM
 
        reg [15:0] rd_DATA = 16'd0;
 
        reg     [15:0] sram[0:127];
 
        always @(posedge sclk)
 
                if (~wr_WEN && ~wr_CSN) sram[wr_ADDR] <= wr_DATA;       // Write
 
        always @(posedge sclk)
 
                if (  1'b1  && ~rd_CSN) rd_DATA <= sram[rd_ADDR];       // Read
 
`endif
 
 
always @(posedge sclk or negedge rstn)
always @(posedge sclk or negedge rstn)
if              (!rstn)         cnt128d_wr <= #1 0;
if              (!rstn)         cnt128d_wr <= #1 0;
else if (inp_valid)     cnt128d_wr <= #1 cnt128d_wr + 1;
else if (inp_valid)     cnt128d_wr <= #1 cnt128d_wr + 1;
 
 
Line 113... Line 136...
 
 
assign #1 mem_data = rd_DATA[N-1:0];
assign #1 mem_data = rd_DATA[N-1:0];
 
 
// synopsys translate_off
// synopsys translate_off
// <<<------------- DUMP Section
// <<<------------- DUMP Section
 
/*
// 2D FHT OUTPUT DUMP DATA 
// 2D FHT OUTPUT DUMP DATA
parameter MEM_TRPS_DPSRAM_FILE = "./result/mem_trps_dpsram.txt";
parameter MEM_TRPS_DPSRAM_FILE = "./result/mem_trps_dpsram.txt";
integer mem_trps_dpsram_dump;
integer mem_trps_dpsram_dump;
initial mem_trps_dpsram_dump = $fopen(MEM_TRPS_DPSRAM_FILE);
initial mem_trps_dpsram_dump = $fopen(MEM_TRPS_DPSRAM_FILE);
 
 
always @(posedge sclk)
always @(posedge sclk)
if (mem_valid) $fdisplay(mem_trps_dpsram_dump,"%h",mem_data);
if (mem_valid) $fdisplay(mem_trps_dpsram_dump,"%h",mem_data);
 
*/
// synopsys translate_on
// synopsys translate_on
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.