Commit 00e7a575 authored by Andrey Filippov's avatar Andrey Filippov

Modified headers to work with doxverilog2.5/doxygen1.7.0

parent 1df762e6
...@@ -18,8 +18,12 @@ x393.prj ...@@ -18,8 +18,12 @@ x393.prj
*.bad *.bad
*.pyc *.pyc
*.pickle *.pickle
*.tmp
py393/dbg* py393/dbg*
debug debug/*
html/*
man/*
includes/x393_cur_params_sim.vh includes/x393_cur_params_sim.vh
includes/x393_cur_params_target_*.vh includes/x393_cur_params_target_*.vh
py393/exp_gpio.py py393/exp_gpio.py
......
/******************************************************************************* /*!
* Module: axibram_read * <b>Module:</b>axibram_read
* Date:2014-03-18 * @file axibram_read.v
* Author: Andrey Filippov * @date 2014-03-18
* Description: Read block RAM memory over AXI PS Master GP0 * @author Andrey Filippov
*
* @brief Read block RAM memory over AXI PS Master GP0
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* axibram_read.v is free software; you can redistribute it and/or modify * axibram_read.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
// Check that this fix did not break anything: // Check that this fix did not break anything:
`include "system_defines.vh" `include "system_defines.vh"
`define USE_SHORT_REN_REGEN `define USE_SHORT_REN_REGEN
...@@ -227,8 +232,7 @@ module axibram_read #( ...@@ -227,8 +232,7 @@ module axibram_read #(
assign bram_reg_re_w= dev_ready && read_in_progress_or && (!rvalid || rready); // slower/simplier assign bram_reg_re_w= dev_ready && read_in_progress_or && (!rvalid || rready); // slower/simplier
// assign bram_reg_re_w= rready? read_in_progress : bram_reg_re_0; // faster - more verification // assign bram_reg_re_w= rready? read_in_progress : bram_reg_re_0; // faster - more verification
assign last_in_burst_w=bram_reg_re_w && (read_left==4'b0); // slower/simplier
assign last_in_burst_w=bram_reg_re_w && (read_left==4'b0); // slower/simplier
// assign last_in_burst_w=rready? (read_in_progress && (read_left==4'b0)): (bram_reg_re_0 && (read_left==4'b0)); // assign last_in_burst_w=rready? (read_in_progress && (read_left==4'b0)): (bram_reg_re_0 && (read_left==4'b0));
// assign last_in_burst_w=rready? last_in_burst_1: last_in_burst_0; // faster (unfinished) - more verification // assign last_in_burst_w=rready? last_in_burst_1: last_in_burst_0; // faster (unfinished) - more verification
...@@ -250,7 +254,7 @@ module axibram_read #( ...@@ -250,7 +254,7 @@ module axibram_read #(
// assign start_read_burst_w= ar_nempty && (rready?start_read_burst_1:start_read_burst_0); // assign start_read_burst_w= ar_nempty && (rready?start_read_burst_1:start_read_burst_0);
fifo_same_clock #( .DATA_WIDTH(ADDRESS_BITS+20),.DATA_DEPTH(4)) fifo_same_clock #( .DATA_WIDTH(ADDRESS_BITS+20),.DATA_DEPTH(4))
raddr_i ( raddr_i (
.rst(1'b0), .rst(1'b0),
.clk(aclk), .clk(aclk),
.sync_rst(arst), .sync_rst(arst),
......
/******************************************************************************* /*!
* Module: axibram_write * <b>Module:</b>axibram_write
* Date:2014-03-18 * @file axibram_write.v
* Author: Andrey Filippov * @date 2014-03-18
* Description: Read block RAM memory (or memories?) over AXI PS Master GP0 * @author Andrey Filippov
*
* @brief Read block RAM memory (or memories?) over AXI PS Master GP0
* Memory is supposed to be fast enough * Memory is supposed to be fast enough
* *
* Copyright (c) 2014 Elphel, Inc. * @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
*
* axibram_write.v is free software; you can redistribute it and/or modify * axibram_write.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
//`define DEBUG_FIFO 1 //`define DEBUG_FIFO 1
`include "system_defines.vh" `include "system_defines.vh"
`ifdef DEBUG_FIFO `ifdef DEBUG_FIFO
......
/******************************************************************************* /*!
* Module: cmprs_afi_mux * <b>Module:</b>cmprs_afi_mux
* Date:2015-06-26 * @file cmprs_afi_mux.v
* Author: Andrey Filippov * @date 2015-06-26
* Description: Writes comressor data from up to 4 channels to system memory over AXI_HP * @author Andrey Filippov
*
* @brief Writes comressor data from up to 4 channels to system memory over AXI_HP
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_afi_mux.v is free software; you can redistribute it and/or modify * cmprs_afi_mux.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_afi_mux#( module cmprs_afi_mux#(
......
/******************************************************************************* /*!
* Module: cmprs_afi_mux_ptr * <b>Module:</b>cmprs_afi_mux_ptr
* Date:2015-06-28 * @file cmprs_afi_mux_ptr.v
* Author: Andrey Filippov * @date 2015-06-28
* Description: Maintain 4-channel chunk pointers (before AXI) * @author Andrey Filippov
*
* @brief Maintain 4-channel chunk pointers (before AXI)
* Advance 32-byte chunk pointers for each AXI burst and each frame (4*2=8 pointers) * Advance 32-byte chunk pointers for each AXI burst and each frame (4*2=8 pointers)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_afi_mux_ptr.v is free software; you can redistribute it and/or modify * cmprs_afi_mux_ptr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_afi_mux_ptr( module cmprs_afi_mux_ptr(
......
/******************************************************************************* /*!
* Module: cmprs_afi_mux_ptr_wresp * <b>Module:</b>cmprs_afi_mux_ptr_wresp
* Date:2015-06-28 * @file cmprs_afi_mux_ptr_wresp.v
* Author: Andrey Filippov * @date 2015-06-28
* Description: Maintain 4-channel chunk pointers for wrirte response * @author Andrey Filippov
*
* @brief Maintain 4-channel chunk pointers for wrirte response
* Advance 32-byte chunk pointers for each AXI burst and each frame (4*2=8 pointers) * Advance 32-byte chunk pointers for each AXI burst and each frame (4*2=8 pointers)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_afi_mux_ptr_wresp.v is free software; you can redistribute it and/or modify * cmprs_afi_mux_ptr_wresp.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_afi_mux_ptr_wresp( module cmprs_afi_mux_ptr_wresp(
......
/******************************************************************************* /*!
* Module: cmprs_afi_mux_status * <b>Module:</b>cmprs_afi_mux_status
* Date:2015-06-28 * @file cmprs_afi_mux_status.v
* Author: Andrey Filippov * @date 2015-06-28
* Description: prepare and send per-channel chunk pointer information as status * @author Andrey Filippov
*
* @brief prepare and send per-channel chunk pointer information as status
* Using 4 consecutive locations. Each channel can provide one of the 4 pointers: * Using 4 consecutive locations. Each channel can provide one of the 4 pointers:
* frame pointer in the write channel, current chunk pointer in the write channel * frame pointer in the write channel, current chunk pointer in the write channel
* and the same for the write response channel (confirmed written to the system * and the same for the write response channel (confirmed written to the system
* memory * memory
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_afi_mux_status.v is free software; you can redistribute it and/or modify * cmprs_afi_mux_status.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -34,7 +39,7 @@ ...@@ -34,7 +39,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_afi_mux_status #( module cmprs_afi_mux_status #(
......
/******************************************************************************* /*!
* Module: histogram_saxi * <b>Module:</b>histogram_saxi
* Date:2015-06-04 * @file histogram_saxi.v
* Author: Andrey Filippov * @date 2015-06-04
* Description: Histograms transfer to the system memory over S_AXI * @author Andrey Filippov
*
* @brief Histograms transfer to the system memory over S_AXI
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* histogram_saxi.v is free software; you can redistribute it and/or modify * histogram_saxi.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
// Number of histograms per sensor is now statically defined by NUM_FRAME_BITS // Number of histograms per sensor is now statically defined by NUM_FRAME_BITS
// It may be modified to both reduce this number (by masking) or increase ( by // It may be modified to both reduce this number (by masking) or increase ( by
......
/*
** -----------------------------------------------------------------------------**
** macros353.v
**
** temporary, modules to be moved
**
** Copyright (C) 2002 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** This file is part of X353
** X353 is free software - hardware description language (HDL) code.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
** -----------------------------------------------------------------------------**
**
*/
module ram_WxD
#(
parameter integer DATA_WIDTH=16,
parameter integer DATA_DEPTH=4,
parameter integer DATA_2DEPTH=(1<<DATA_DEPTH)-1
)
(
input [DATA_WIDTH-1:0] D,
input WE,
input clk,
input [DATA_DEPTH-1:0] AW,
input [DATA_DEPTH-1:0] AR,
output [DATA_WIDTH-1:0] QW,
output [DATA_WIDTH-1:0] QR);
reg [DATA_WIDTH-1:0] ram [0:DATA_2DEPTH];
always @(posedge clk) if (WE) ram[AW] <= D;
assign QW= ram[AW];
assign QR= ram[AR];
endmodule
/******************************************************************************* /*!
* Module: membridge * <b>Module:</b>membridge
* Date:2015-04-26 * @file membridge.v
* Author: Andrey Filippov * @date 2015-04-26
* Description: bi-directional bridge between system and video memory over axi_hp * @author Andrey Filippov
*
* @brief bi-directional bridge between system and video memory over axi_hp
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* membridge.v is free software; you can redistribute it and/or modify * membridge.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
//`define MEMBRIDGE_DEBUG_READ 1 //`define MEMBRIDGE_DEBUG_READ 1
module membridge#( module membridge#(
......
/******************************************************************************* /*!
* Module: mul_saxi_wr_chn * <b>Module:</b>mul_saxi_wr_chn
* Date:2015-07-10 * @file mul_saxi_wr_chn.v
* Author: Andrey Filippov * @date 2015-07-10
* Description: One channel of the mult_saxi_wr (read/write common buffer) * @author Andrey Filippov
*
* @brief One channel of the mult_saxi_wr (read/write common buffer)
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* mul_saxi_wr_chn.v is free software; you can redistribute it and/or modify * mul_saxi_wr_chn.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mult_saxi_wr_chn #( module mult_saxi_wr_chn #(
......
/******************************************************************************* /*!
* Module: mult_saxi_wr * <b>Module:</b>mult_saxi_wr
* Date:2015-07-08 * @file mult_saxi_wr.v
* Author: Andrey Filippov * @date 2015-07-08
* Description: send data from up to 4 sources to the system memory over S_AXI. * @author Andrey Filippov
*
* @brief send data from up to 4 sources to the system memory over S_AXI.
* Each source should have a 32-bit wide buffer running at the same clock (mclk). * Each source should have a 32-bit wide buffer running at the same clock (mclk).
* Buffer should contain at least burst size (4,8,16,32,64 bytes) * Buffer should contain at least burst size (4,8,16,32,64 bytes)
* Burst size parameter-configurable (per-port) * Burst size parameter-configurable (per-port)
* *
* Copyright (c) 2015 Elphel, Inc . * @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
*
* mult_saxi_wr.v is free software; you can redistribute it and/or modify * mult_saxi_wr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -33,7 +38,7 @@ ...@@ -33,7 +38,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mult_saxi_wr #( module mult_saxi_wr #(
...@@ -181,7 +186,7 @@ module mult_saxi_wr #( ...@@ -181,7 +186,7 @@ module mult_saxi_wr #(
else if (we_ctrl && !cmd_a[0]) mode_reg <= cmd_data[7:0]; else if (we_ctrl && !cmd_a[0]) mode_reg <= cmd_data[7:0];
end end
// Arbiter requests on copying from one of teh input channels to the internal buffer // Arbiter requests on copying from one of the input channels to the internal buffer
mult_saxi_wr_chn #( mult_saxi_wr_chn #(
.MULT_SAXI_HALF_BRAM (MULT_SAXI_HALF_BRAM), .MULT_SAXI_HALF_BRAM (MULT_SAXI_HALF_BRAM),
......
/******************************************************************************* /*!
* Module: mult_saxi_wr_inbuf * <b>Module:</b>mult_saxi_wr_inbuf
* Date:2015-07-11 * @file mult_saxi_wr_inbuf.v
* Author: Andrey Filippov * @date 2015-07-11
* Description: Channel buffer with width conversion to 32 to use with mult_saxi_wr * @author Andrey Filippov
*
* @brief Channel buffer with width conversion to 32 to use with mult_saxi_wr
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* mult_saxi_wr_inbuf.v is free software; you can redistribute it and/or modify * mult_saxi_wr_inbuf.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mult_saxi_wr_inbuf#( module mult_saxi_wr_inbuf#(
......
/******************************************************************************* /*!
* Module: mult_saxi_wr_pointers * <b>Module:</b>mult_saxi_wr_pointers
* Date:2015-07-10 * @file mult_saxi_wr_pointers.v
* Author: Andrey Filippov * @date 2015-07-10
* Description: Process pointers for mult_saxi_wr * @author Andrey Filippov
*
* @brief Process pointers for mult_saxi_wr
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* mult_saxi_wr_pointers.v is free software; you can redistribute it and/or modify * mult_saxi_wr_pointers.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mult_saxi_wr_pointers#( module mult_saxi_wr_pointers#(
......
/******************************************************************************* /*!
* Module: cmd_mux * <b>Module:</b>cmd_mux
* Date:2015-01-11 * @file cmd_mux.v
* Author: Andrey Filippov * @date 2015-01-11
* Description: Command multiplexer between AXI and frame-based command sequencer * @author Andrey Filippov
*
* @brief Command multiplexer between AXI and frame-based command sequencer
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_mux.v is free software; you can redistribute it and/or modify * cmd_mux.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_mux #( module cmd_mux #(
......
/******************************************************************************* /*!
* Module: cmd_readback * <b>Module:</b>cmd_readback
* Date:2015-05-05 * @file cmd_readback.v
* Author: Andrey Filippov * @date 2015-05-05
* Description: Store control register data and readback * @author Andrey Filippov
*
* @brief Store control register data and readback
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_readback.v is free software; you can redistribute it and/or modify * cmd_readback.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_readback#( module cmd_readback#(
......
/******************************************************************************* /*!
* Module: bit_stuffer_27_32 * <b>Module:</b>bit_stuffer_27_32
* Date:2015-10-23 * @file bit_stuffer_27_32.v
* Author: Andrey Filippov * @date 2015-10-23
* Description: Aggregate MSB aligned variable-length (1..27) data to 32-bit words * @author Andrey Filippov
*
* @brief Aggregate MSB aligned variable-length (1..27) data to 32-bit words
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* bit_stuffer_27_32.v is free software; you can redistribute it and/or modify * bit_stuffer_27_32.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module bit_stuffer_27_32#( module bit_stuffer_27_32#(
......
/******************************************************************************* /*!
* Module: bit_stuffer_escape * <b>Module:</b>bit_stuffer_escape
* Date:2015-10-24 * @file bit_stuffer_escape.v
* Author: Andrey Filippov * @date 2015-10-24
* Description: Escapes each 0xff with 0x00, 32-bit input and output * @author Andrey Filippov
*
* @brief Escapes each 0xff with 0x00, 32-bit input and output
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* bit_stuffer_escape.v is free software; you can redistribute it and/or modify * bit_stuffer_escape.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module bit_stuffer_escape( module bit_stuffer_escape(
......
/******************************************************************************* /*!
* Module: bit_stuffer_metadata * <b>Module:</b>bit_stuffer_metadata
* Date:2015-10-25 * @file bit_stuffer_metadata.v
* Author: Andrey Filippov * @date 2015-10-25
* Description: * @author Andrey Filippov
*
* @brief Bit stuffer combines variable length fragments (up to 16 bits long)
* from the Huffman encoder to a byte stream, escapes every 0xff byte with
* 0x00 and adds file length and timestamp metadata
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* bit_stuffer_metadata.v is free software; you can redistribute it and/or modify * bit_stuffer_metadata.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +37,7 @@ ...@@ -30,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module bit_stuffer_metadata( module bit_stuffer_metadata(
......
/******************************************************************************* /*!
* Module: cmprs_buf_average * <b>Module:</b>cmprs_buf_average
* Date:2015-06-14 * @file cmprs_buf_average.v
* Author: Andrey Filippov * @date 2015-06-14
* Description: Saves Y and C components to buffers, caculates averages * @author Andrey Filippov
*
* @brief Saves Y and C components to buffers, caculates averages
* during write, then subtracts them during read and provides to * during write, then subtracts them during read and provides to
* the after DCT to restore DC * the after DCT to restore DC
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_buf_average.v is free software; you can redistribute it and/or modify * cmprs_buf_average.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
// TODO:Clean up even more - remove signals that are not related to calculating/subtracting averages // TODO:Clean up even more - remove signals that are not related to calculating/subtracting averages
module cmprs_buf_average#( module cmprs_buf_average#(
......
/******************************************************************************* /*!
* Module: cmprs_cmd_decode * <b>Module:</b>cmprs_cmd_decode
* Date:2015-06-23 * @file cmprs_cmd_decode.v
* Author: Andrey Filippov * @date 2015-06-23
* Description: Decode compressor command/modes, reclock some signals * @author Andrey Filippov
*
* @brief Decode compressor command/modes, reclock some signals
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_cmd_decode.v is free software; you can redistribute it and/or modify * cmprs_cmd_decode.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
//From 353: //From 353:
// [23] == 1 - set focus mode // [23] == 1 - set focus mode
......
/******************************************************************************* /*!
* Module: cmprs_frame_sync * <b>Module:</b>cmprs_frame_sync
* Date:2015-06-23 * @file cmprs_frame_sync.v
* Author: Andrey Filippov * @date 2015-06-23
* Description: Synchronizes memory channels (sensor and compressor) * @author Andrey Filippov
*
* @brief Synchronizes memory channels (sensor and compressor)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_frame_sync.v is free software; you can redistribute it and/or modify * cmprs_frame_sync.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_frame_sync#( module cmprs_frame_sync#(
......
/******************************************************************************* /*!
* Module: cmprs_macroblock_buf_iface * <b>Module:</b>cmprs_macroblock_buf_iface
* Date:2015-06-11 * @file cmprs_macroblock_buf_iface.v
* Author: Andrey Filippov * @date 2015-06-11
* Description: Communicates with compressor memory buffer, generates pixel * @author Andrey Filippov
*
* @brief Communicates with compressor memory buffer, generates pixel
* stream matching selected color mode, accommodates for the buffer latency, * stream matching selected color mode, accommodates for the buffer latency,
* acts as a pacemaker for the whole compressor (next stages are able to keep up). * acts as a pacemaker for the whole compressor (next stages are able to keep up).
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_macroblock_buf_iface.v is free software; you can redistribute it and/or modify * cmprs_macroblock_buf_iface.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_macroblock_buf_iface ( module cmprs_macroblock_buf_iface (
......
/******************************************************************************* /*!
* Module: cmprs_out_fifo * <b>Module:</b>cmprs_out_fifo
* Date:2015-06-25 * @file cmprs_out_fifo.v
* Author: Andrey Filippov * @date 2015-06-25
* Description: Compressor output FIFO * @author Andrey Filippov
*
* @brief Compressor output FIFO
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_out_fifo.v is free software; you can redistribute it and/or modify * cmprs_out_fifo.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_out_fifo( module cmprs_out_fifo(
......
/******************************************************************************* /*!
* Module: cmprs_out_fifo32 * <b>Module:</b>cmprs_out_fifo32
* Date:2015-06-25 * @file cmprs_out_fifo32.v
* Author: Andrey Filippov * @date 2015-06-25
* Description: Compressor output FIFO, modified to use 32-bit input and xclk * @author Andrey Filippov
*
* @brief Compressor output FIFO, modified to use 32-bit input and xclk
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_out_fifo32.v is free software; you can redistribute it and/or modify * cmprs_out_fifo32.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_out_fifo32( module cmprs_out_fifo32(
......
/******************************************************************************* /*!
* Module: cmprs_pixel_buf_iface * <b>Module:</b>cmprs_pixel_buf_iface
* Date:2015-06-11 * @file cmprs_pixel_buf_iface.v
* Author: Andrey Filippov * @date 2015-06-11
* Description: Communicates with compressor memory buffer, generates pixel * @author Andrey Filippov
*
* @brief Communicates with compressor memory buffer, generates pixel
* stream matching selected color mode, accommodates for the buffer latency, * stream matching selected color mode, accommodates for the buffer latency,
* acts as a pacemaker for the whole compressor (next stages are able to keep up). * acts as a pacemaker for the whole compressor (next stages are able to keep up).
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_pixel_buf_iface.v is free software; you can redistribute it and/or modify * cmprs_pixel_buf_iface.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_pixel_buf_iface #( module cmprs_pixel_buf_iface #(
......
/******************************************************************************* /*!
* Module: cmprs_status * <b>Module:</b>cmprs_status
* Date:2015-06-25 * @file cmprs_status.v
* Author: Andrey Filippov * @date 2015-06-25
* Description: Generate compressor status word * @author Andrey Filippov
*
* @brief Generate compressor status word
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_status.v is free software; you can redistribute it and/or modify * cmprs_status.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_status #( module cmprs_status #(
......
/******************************************************************************* /*!
* Module: cmprs_tile_mode2_decode * <b>Module:</b>cmprs_tile_mode2_decode
* Date:2015-06-14 * @file cmprs_tile_mode2_decode.v
* Author: Andrey Filippov * @date 2015-06-14
* Description: Decode mode parameters, registered at pre-start of the macroblock * @author Andrey Filippov
*
* @brief Decode mode parameters, registered at pre-start of the macroblock
* data to color conversion module * data to color conversion module
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmprs_tile_mode2_decode.v is free software; you can redistribute it and/or modify * cmprs_tile_mode2_decode.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_tile_mode2_decode #( module cmprs_tile_mode2_decode #(
......
/******************************************************************************* /*!
* Module: cmprs_tile_mode_decode * <b>Module:</b>cmprs_tile_mode_decode
* Date:2015-06-14 * @file cmprs_tile_mode_decode.v
* Author: Andrey Filippov * @date 2015-06-14
* Description: Decode tile/macroblocks parameters from compressor type * @author Andrey Filippov
*
* @brief Decode tile/macroblocks parameters from compressor type
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmprs_tile_mode_decode.v is free software; you can redistribute it and/or modify * cmprs_tile_mode_decode.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmprs_tile_mode_decode #( module cmprs_tile_mode_decode #(
......
/******************************************************************************* /*!
* Module: compressor393 * <b>Module:</b>compressor393
* Date:2015-07-14 * @file compressor393.v
* Author: Andrey Filippov * @date 2015-07-14
* Description: Top module containg all compressor channels * @author Andrey Filippov
*
* @brief Top module containg all compressor channels
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* compressor393.v is free software; you can redistribute it and/or modify * compressor393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module compressor393 # ( module compressor393 # (
......
/******************************************************************************* /*!
* Module: csconvert * <b>Module:</b>csconvert
* Date:2015-06-14 * @file csconvert.v
* Author: Andrey Filippov * @date 2015-06-14
* Description: Color space convert: combine differnt color modes * @author Andrey Filippov
*
* @brief Color space convert: combine differnt color modes
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* csconvert.v is free software; you can redistribute it and/or modify * csconvert.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module csconvert#( module csconvert#(
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>csconvert18a
** csconvert18a.v * @file csconvert18a.v
** * @author Andrey Filippov
** Color space converter (bayer-> YCbCr 4:2:1) for JPEG compressor *
** * @brief Color space converter (bayer-> YCbCr 4:2:1) for JPEG compressor.
** Copyright (C) 2002-20015 Elphel, Inc * Uses 18x18 pixel overlapping macroblocks for color conversion.
** *
** -----------------------------------------------------------------------------** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** This file is part of X393 *
** X393 is free software - hardware description language (HDL) code. * <b>License:</b>
** *
** This program is free software: you can redistribute it and/or modify * csconvert18a.v is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version. * (at your option) any later version.
** *
** This program is distributed in the hope that it will be useful, * csconvert18a.v is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details. * GNU General Public License for more details.
** *
** You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/> .
** -----------------------------------------------------------------------------** *
** * Additional permission under GNU GPL version 3 section 7:
*/ * If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
// 2015: Updating for 393, removing old SRL16 primitives // 2015: Updating for 393, removing old SRL16 primitives
/* /*
09/07/2002 Andrey Filippov 09/07/2002 Andrey Filippov
......
/******************************************************************************* /*!
* Module: csconvert_jp4 * <b>Module:</b>csconvert_jp4
* Date:2015-06-10 * @file csconvert_jp4.v
* Author: Andrey Filippov * @date 2015-06-10
* Description: Color conversion for JP4 mode * @author Andrey Filippov
*
* @brief Color conversion for JP4 mode
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* csconvert_jp4.v is free software; you can redistribute it and/or modify * csconvert_jp4.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module csconvert_jp4 (en, module csconvert_jp4 (en,
......
/******************************************************************************* /*!
* Module: csconvert_jp4diff * <b>Module:</b>csconvert_jp4diff
* Date:2015-06-10 * @file csconvert_jp4diff.v
* Author: Andrey Filippov * @date 2015-06-10
* Description: Color conversion for JP4 differential * @author Andrey Filippov
*
* @brief Color conversion for JP4 differential
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* csconvert_jp4diff.v is free software; you can redistribute it and/or modify * csconvert_jp4diff.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module csconvert_jp4diff (en, module csconvert_jp4diff (en,
......
/******************************************************************************* /*!
* Module: csconvert_mono * <b>Module:</b>csconvert_mono
* Date:2015-06-10 * @file csconvert_mono.v
* Author: Andrey Filippov * @date 2015-06-10
* Description: Convert JPEG monochrome * @author Andrey Filippov
*
* @brief Convert JPEG monochrome
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* csconvert_mono.v is free software; you can redistribute it and/or modify * csconvert_mono.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module csconvert_mono (en, module csconvert_mono (en,
......
/******************************************************************************* /*!
* Module: dcc_sync393 * <b>Module:</b>dcc_sync393
* Date:2015-06-17 * @file dcc_sync393.v
* Author: Andrey Filippov * @date 2015-06-17
* Description: Synchronises output of DC components * @author Andrey Filippov
*
* @brief Synchronises output of DC components
* Syncronizes dcc data with dma1 output, adds 16..31 16-bit zero words for Axis DMA * Syncronizes dcc data with dma1 output, adds 16..31 16-bit zero words for Axis DMA
* Was not used in late NC353 camera (DMA channel used fro IMU logger) * Was not used in late NC353 camera (DMA channel used fro IMU logger)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* dcc_sync393.v is free software; you can redistribute it and/or modify * dcc_sync393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module dcc_sync393( module dcc_sync393(
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>encoderDCAC393
** encoderDCAC393.v * @file encoderDCAC393.v
** * @author Andrey Filippov
** RLL encoder for JPEG compressor *
** * @brief RLL encoder for JPEG compressor
** Copyright (C) 2002-2015 Elphel, Inc *
** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** -----------------------------------------------------------------------------** *
** encoderDCAC393.v is free software - hardware description language (HDL) code. * <b>License:</b>
** This program is free software: you can redistribute it and/or modify *
** it under the terms of the GNU General Public License as published by * encoderDCAC393.v is free software; you can redistribute it and/or modify
** the Free Software Foundation, either version 3 of the License, or * it under the terms of the GNU General Public License as published by
** (at your option) any later version. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * encoderDCAC393.v is distributed in the hope that it will be useful,
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** * GNU General Public License for more details.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * You should have received a copy of the GNU General Public License
** -----------------------------------------------------------------------------** * along with this program. If not, see <http://www.gnu.org/licenses/> .
** *
*/ * Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
// Accepts 13-bits signed data (only 12-bit can be ecoded), so DC difference (to be encoded) is limited (saturated) to 12 bits, not the value itself // Accepts 13-bits signed data (only 12-bit can be ecoded), so DC difference (to be encoded) is limited (saturated) to 12 bits, not the value itself
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>focus_sharp393
** focus_sharp393.v * @file focus_sharp393.v
** * @author Andrey Filippov
** Module to determine focus sharpness on by integrating *
** DCT coefficient, multiplied my 8x8 array and squared * @brief Module to determine focus sharpness on by integrating
** * DCT coefficient, multiplied my 8x8 array and squared
** Copyright (C) 2008-2015 Elphel, Inc *
** * @copyright Copyright (c) 2008-2015 Elphel, Inc.
** -----------------------------------------------------------------------------** *
** ocus_sharp393.v is free software - hardware description language (HDL) code. * <b>License:</b>
** *
** This program is free software: you can redistribute it and/or modify * focus_sharp393.v is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version. * (at your option) any later version.
** *
** This program is distributed in the hope that it will be useful, * focus_sharp393.v is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details. * GNU General Public License for more details.
** *
** You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/> .
** -----------------------------------------------------------------------------** *
** * Additional permission under GNU GPL version 3 section 7:
*/ * If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`include "system_defines.vh" `include "system_defines.vh"
`timescale 1ns/1ps `timescale 1ns/1ps
// TODO: Modify to work with other modes (now only on color) // TODO: Modify to work with other modes (now only on color)
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>huff_fifo393
** huff_fifo393.v * @file huff_fifo393.v
** * @author Andrey Filippov
** Part of Huffman encoder for JPEG compressor - FIFO for Huffman encoder *
** * @brief Part of Huffman encoder for JPEG compressor - FIFO for Huffman encoder
** Copyright (C) 2002-2015 Elphel, Inc * based on earlier design that used 2x clock. Superseded by huffman_stuffer_meta.
** *
** -----------------------------------------------------------------------------** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** huff_fifo393.v is free software - hardware description language (HDL) code. *
** * <b>License:</b>
** This program is free software: you can redistribute it and/or modify *
** it under the terms of the GNU General Public License as published by * huff_fifo393.v is free software; you can redistribute it and/or modify
** the Free Software Foundation, either version 3 of the License, or * it under the terms of the GNU General Public License as published by
** (at your option) any later version. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * huff_fifo393.v is distributed in the hope that it will be useful,
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** * GNU General Public License for more details.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * You should have received a copy of the GNU General Public License
** -----------------------------------------------------------------------------** * along with this program. If not, see <http://www.gnu.org/licenses/> .
** *
*/ * Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
module huff_fifo393 ( module huff_fifo393 (
input xclk, // pixel clock, posedge input xclk, // pixel clock, posedge
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>huffman393
** huffman333.v * @file huffman393.v
** * @author Andrey Filippov
** Huffman encoder for JPEG compressor *
** * @brief Huffman encoder for JPEG compressor based on previous design that used
** Copyright (C) 2002-20015 Elphel, Inc * 2x clock. Superseded by huffman_stuffer_meta module.
** *
** -----------------------------------------------------------------------------** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** huffman393 is free software - hardware description language (HDL) code. *
** * <b>License:</b>
** This program is free software: you can redistribute it and/or modify *
** it under the terms of the GNU General Public License as published by * huffman393.v is free software; you can redistribute it and/or modify
** the Free Software Foundation, either version 3 of the License, or * it under the terms of the GNU General Public License as published by
** (at your option) any later version. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * huffman393.v is distributed in the hope that it will be useful,
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** * GNU General Public License for more details.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * You should have received a copy of the GNU General Public License
** -----------------------------------------------------------------------------** * along with this program. If not, see <http://www.gnu.org/licenses/> .
** *
*/ * Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`include "system_defines.vh" `include "system_defines.vh"
// 01/22/2004 - extended flush until ready (modified stuffer.v too) // 01/22/2004 - extended flush until ready (modified stuffer.v too)
module huffman393 ( module huffman393 (
......
/******************************************************************************* /*!
* Module: huffman_merge_code_literal * <b>Module:</b>huffman_merge_code_literal
* Date:2015-10-22 * @file huffman_merge_code_literal.v
* Author: Andrey Filippov * @date 2015-10-22
* Description: Merge 1-16 bits of Huffman code with 0..11 bits of literal data, * @author Andrey Filippov
*
* @brief Merge 1-16 bits of Huffman code with 0..11 bits of literal data,
* align result to MSB : {huffman,literal, {n{1'b0}} * align result to MSB : {huffman,literal, {n{1'b0}}
* *
* Copyright (c) 2015 Elphel, Inc . * @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
*
* huffman_merge_code_literal.v is free software; you can redistribute it and/or modify * huffman_merge_code_literal.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module huffman_merge_code_literal( module huffman_merge_code_literal(
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>huffman_snglclk
** huffman_snglclk.v * @file huffman_snglclk.v
** * @author Andrey Filippov
** Huffman encoder for JPEG compressor *
** * @brief Huffman encoder for JPEG compressor, redesigned to use single rate pixel clock.
** Copyright (C) 2002-20015 Elphel, Inc *
** *
** -----------------------------------------------------------------------------** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** huffman_snglclk is free software - hardware description language (HDL) code. *
** * <b>License:</b>
** This program is free software: you can redistribute it and/or modify *
** it under the terms of the GNU General Public License as published by * huffman_snglclk.v is free software; you can redistribute it and/or modify
** the Free Software Foundation, either version 3 of the License, or * it under the terms of the GNU General Public License as published by
** (at your option) any later version. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * huffman_snglclk.v is distributed in the hope that it will be useful,
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** * GNU General Public License for more details.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * You should have received a copy of the GNU General Public License
** -----------------------------------------------------------------------------** * along with this program. If not, see <http://www.gnu.org/licenses/> .
** *
*/ * Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`include "system_defines.vh" `include "system_defines.vh"
module huffman_snglclk ( module huffman_snglclk (
input xclk, // pixel clock, sync to incoming data input xclk, // pixel clock, sync to incoming data
......
/******************************************************************************* /*!
* Module: huffman_stuffer_meta * <b>Module:</b>huffman_stuffer_meta
* Date:2015-10-26 * @file huffman_stuffer_meta.v
* Author: Andrey Filippov * @date 2015-10-26
* Description: Huffman encoder, bit stuffer, inser meta-data * @author Andrey Filippov
* "New" part of the JPEG/JP4 comressor that used double frequency clock *
* @brief Wrapper fior several JPEG/JP4 compression modules. It includes
* - Huffman encoder (huffman_snglclk),
* - bit stuffer (bit_stuffer_27_32),
* - escapes 0xff with 0x00 (bit_stuffer_escape)
* - inserts meta-data (timestamp and data length) (bit_stuffer_metadata)
*
* This is a "new" (made for x393 project) part of the JPEG/JP4 comressor
* that eliminates use of the double frequency clock.
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* huffman_stuffer_meta.v is free software; you can redistribute it and/or modify * huffman_stuffer_meta.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +42,7 @@ ...@@ -31,7 +42,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module huffman_stuffer_meta( module huffman_stuffer_meta(
......
/******************************************************************************* /*!
* Module: jp_channel * <b>Module:</b>jp_channel
* Date:2015-06-10 * @file jp_channel.v
* Author: Andrey Filippov * @date 2015-06-10
* Description: Top module of JPEG/JP4 compressor channel * @author Andrey Filippov
*
* @brief Top module of JPEG/JP4 compressor channel
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* jp_channel.v is free software; you can redistribute it and/or modify * jp_channel.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module jp_channel#( module jp_channel#(
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>quantizer393
** quantizator353.v * @file quantizer393.v
** * @author Andrey Filippov
** Quantizer module for JPEG compressor *
** * @brief Quantizer module for JPEG/JP4 compressor
** Copyright (C) 2002-2015 Elphel, Inc *
** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** -----------------------------------------------------------------------------** *
** quantizer393.v is free software - hardware description language (HDL) code. * <b>License:</b>
** *
** This program is free software: you can redistribute it and/or modify * quantizer393.v is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version. * (at your option) any later version.
** *
** This program is distributed in the hope that it will be useful, * quantizer393.v is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details. * GNU General Public License for more details.
** *
** You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/> .
** -----------------------------------------------------------------------------** *
** * Additional permission under GNU GPL version 3 section 7:
*/ * If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`include "system_defines.vh" `include "system_defines.vh"
`timescale 1ns/1ps `timescale 1ns/1ps
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>stuffer393
** stuffer393.v * @file stuffer393.v
**etrax_dma * @author Andrey Filippov
** Bit stuffer for JPEG encoder *
** * @brief Bit stuffer for JPEG/JP4 compressor based on earlier design
** Copyright (C) 2002-2015 Elphel, Inc * Now used for comparison only, functionality is reimplemented in
** * bit_stuffer_metadata module.
** -----------------------------------------------------------------------------** *
** stuffer393.v is free software - hardware description language (HDL) code. * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** *
** This program is free software: you can redistribute it and/or modify * <b>License:</b>
** it under the terms of the GNU General Public License as published by *
** the Free Software Foundation, either version 3 of the License, or * stuffer393.v is free software; you can redistribute it and/or modify
** (at your option) any later version. * it under the terms of the GNU General Public License as published by
** * the Free Software Foundation, either version 3 of the License, or
** This program is distributed in the hope that it will be useful, * (at your option) any later version.
** but WITHOUT ANY WARRANTY; without even the implied warranty of *
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * stuffer393.v is distributed in the hope that it will be useful,
** GNU General Public License for more details. * but WITHOUT ANY WARRANTY; without even the implied warranty of
** * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** You should have received a copy of the GNU General Public License * GNU General Public License for more details.
** along with this program. If not, see <http://www.gnu.org/licenses/>. *
** -----------------------------------------------------------------------------** * You should have received a copy of the GNU General Public License
** * along with this program. If not, see <http://www.gnu.org/licenses/> .
*/ *
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`define debug_compressor `define debug_compressor
// 08.27.2005 - modified "rdy" - moved register to make it faster. // 08.27.2005 - modified "rdy" - moved register to make it faster.
// 01.22.2004 - fixed bug if flush comes with !rdy (required mod of huffman.v to extend "flush" until ready) // 01.22.2004 - fixed bug if flush comes with !rdy (required mod of huffman.v to extend "flush" until ready)
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>varlen_encode393
** varlen_encode393.v * @file varlen_encode393.v
** * @author Andrey Filippov
** Part of the Huffman encoder for JPEG compressor - variable length encoder *
** * @brief Part of the Huffman encoder for JPEG compressor - variable length encoder.
** Copyright (C) 2002-2015 Elphel, Inc * Used double clock rate, superseded by varlen_encode_snglclk, left for comparison.
** *
** -----------------------------------------------------------------------------** * Encoder will work 2 cycles per "normal" word, 1 cycle for codes "00" and "f0",
** varlen_encode393.v is free software - hardware description language (HDL) code. * only magnitude output is needed ASAP (2 cycles, the value out should be
** * valid on the 5-th cycle - it will latency 4 cycles run each other cycle.
** This program is free software: you can redistribute it and/or modify * Later implementsed a shortcut - all codes processed in 2 cycles.
** it under the terms of the GNU General Public License as published by *
** the Free Software Foundation, either version 3 of the License, or * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** (at your option) any later version. *
** * <b>License:</b>
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * varlen_encode393.v is free software; you can redistribute it and/or modify
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * it under the terms of the GNU General Public License as published by
** GNU General Public License for more details. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * varlen_encode393.v is distributed in the hope that it will be useful,
** -----------------------------------------------------------------------------** * but WITHOUT ANY WARRANTY; without even the implied warranty of
** * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*/ * GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/> .
*
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
//used the other edge of the clk2x //used the other edge of the clk2x
// Encoder will work 2 cycles/"normal" word, 1 cycle for codes "00" and "f0",
// only magnitude output is needed ASAP (2 cycles, the value out should be
// valid on the 5-th cycle - it will latency 4 cycles run each other cycle
// I'll make a shortcut - all codes processed in 2 cycles.
module varlen_encode393 ( module varlen_encode393 (
input clk, // twice frequency - uses negedge inside input clk, // twice frequency - uses negedge inside
input en, // will enable registers. 0 - freeze at once input en, // will enable registers. 0 - freeze at once
......
/* /*!
** -----------------------------------------------------------------------------** * <b>Module:</b>varlen_encode_snglclk
** varlen_encode_snglclk.v * @file varlen_encode_snglclk.v
** * @author Andrey Filippov
** Part of the Huffman encoder for JPEG compressor - variable length encoder *
** * @brief Part of the Huffman encoder for JPEG compressor - variable length encoder.
** Copyright (C) 2002-2015 Elphel, Inc * Uses single pixel clock rate.
** *
** -----------------------------------------------------------------------------** * @copyright Copyright (c) 2002-2015 Elphel, Inc.
** varlen_encode_snglclk.v is free software - hardware description language (HDL) code. *
** * <b>License:</b>
** This program is free software: you can redistribute it and/or modify *
** it under the terms of the GNU General Public License as published by * varlen_encode_snglclk.v is free software; you can redistribute it and/or modify
** the Free Software Foundation, either version 3 of the License, or * it under the terms of the GNU General Public License as published by
** (at your option) any later version. * the Free Software Foundation, either version 3 of the License, or
** * (at your option) any later version.
** This program is distributed in the hope that it will be useful, *
** but WITHOUT ANY WARRANTY; without even the implied warranty of * varlen_encode_snglclk.v is distributed in the hope that it will be useful,
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** * GNU General Public License for more details.
** You should have received a copy of the GNU General Public License *
** along with this program. If not, see <http://www.gnu.org/licenses/>. * You should have received a copy of the GNU General Public License
** -----------------------------------------------------------------------------** * along with this program. If not, see <http://www.gnu.org/licenses/> .
** *
*/ * Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
module varlen_encode_snglclk ( module varlen_encode_snglclk (
input clk, // posedge input clk, // posedge
......
/******************************************************************************* /*!
* File: fpga_version.vh * @file fpga_version.vh
* Date:2015-08-26 * @date 2015-08-26
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Defining run-time readable FPGA code version *
* @brief Defining run-time readable FPGA code version
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* fpga_version.vh is free software; you can redistribute it and/or modify * fpga_version.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
parameter FPGA_VERSION = 32'h03930096; // serial, next parameter FPGA_VERSION = 32'h03930096; // serial, next
// parameter FPGA_VERSION = 32'h03930095; // parallel -0.068/-0.342/5 82.38% // parameter FPGA_VERSION = 32'h03930095; // parallel -0.068/-0.342/5 82.38%
// parameter FPGA_VERSION = 32'h03930094; // hispi, disabling debug -0.187/-1.252/16 84.14% // parameter FPGA_VERSION = 32'h03930094; // hispi, disabling debug -0.187/-1.252/16 84.14%
......
/******************************************************************************* /*!
* Module: tasks_tests_memory * @file tasks_tests_memory.vh
* Date:2015-08-01 * @date 2015-08-01
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Top-level tasks for testing memory subsystem functionality *
* @brief Top-level tasks for testing memory subsystem functionality
*
* @copyright Copyright (c) 2015 Elphel, Inc .
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc .
* tasks_tests_memory.vh is free software; you can redistribute it and/or modify * tasks_tests_memory.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task test_write_levelling; // SuppressThisWarning VEditor - may be unused task test_write_levelling; // SuppressThisWarning VEditor - may be unused
begin begin
......
/******************************************************************************* /*!
* File: x393_cur_params_target.vh * @file x393_cur_params_target.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Memory controller parameters that need adjustment during training *
* Target ,pde * @brief Memory controller parameters that need adjustment during training
* Copyright (c) 2015 Elphel, Inc. * of the target. This file is individually updated on the target.
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* x393_cur_params_target.vh is free software; you can redistribute it and/or modify * x393_cur_params_target.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
/* /*
localparam DLY_LANE0_ODELAY = 80'hd85c1014141814181218; localparam DLY_LANE0_ODELAY = 80'hd85c1014141814181218;
localparam DLY_LANE0_IDELAY = 72'h2c7a8380897c807b88; localparam DLY_LANE0_IDELAY = 72'h2c7a8380897c807b88;
......
/******************************************************************************* /*!
* File: x393_localparams.vh * @file x393_localparams.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Local parameters for simulation of the x393 *
* @brief Local parameters for simulation of the x393
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_localparams.vh is free software; you can redistribute it and/or modify * x393_localparams.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
// S uppressWarnings VEditor // S uppressWarnings VEditor
localparam [1:0] DEFAULT_STATUS_MODE = 3; // auto status on change, increase sequence number localparam [1:0] DEFAULT_STATUS_MODE = 3; // auto status on change, increase sequence number
localparam LD_DLY_LANE0_ODELAY = DLY_LD+'h00; // 0x1080 localparam LD_DLY_LANE0_ODELAY = DLY_LD+'h00; // 0x1080
......
/******************************************************************************* /*!
* File: x393_mcontr_encode_cmd.vh * @file x393_mcontr_encode_cmd.vh
* Date:2015-02-09 * @date 2015-02-09
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Functions used to encode memory controller sequences *
* @brief Functions used to encode memory controller sequences
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_mcontr_encode_cmd.vh is free software; you can redistribute it and/or modify * x393_mcontr_encode_cmd.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
function [31:0] func_encode_skip; function [31:0] func_encode_skip;
input [CMD_PAUSE_BITS-1:0] skip; // number of extra cycles to skip (and keep all the other outputs) input [CMD_PAUSE_BITS-1:0] skip; // number of extra cycles to skip (and keep all the other outputs)
......
/******************************************************************************* /*!
* File: x393_parameters.vh * @file x393_parameters.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Parameters for the x393 (simulation and implementation) *
* @brief Parameters for the x393 (simulation and implementation)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_parameters.vh is free software; you can redistribute it and/or modify * x393_parameters.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
parameter MCONTR_WR_MASK = 'h3c00, // AXI write address mask for the 1Kx32 buffers command sequence memory parameter MCONTR_WR_MASK = 'h3c00, // AXI write address mask for the 1Kx32 buffers command sequence memory
parameter MCONTR_RD_MASK = 'h3c00, // AXI read address mask to generate busy parameter MCONTR_RD_MASK = 'h3c00, // AXI read address mask to generate busy
......
/******************************************************************************* /*!
* File: x393_simulation_parameters.vh * @file x393_simulation_parameters.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation-specific parameters for the x393 *
* @brief Simulation-specific parameters for the x393
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_simulation_parameters.vh is free software; you can redistribute it and/or modify * x393_simulation_parameters.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
, // to continue previous parameter list , // to continue previous parameter list
parameter integer AXI_RDADDR_LATENCY= 2, // 2, //2, //2, parameter integer AXI_RDADDR_LATENCY= 2, // 2, //2, //2,
parameter integer AXI_WRADDR_LATENCY= 1, // 1, //2, //4, parameter integer AXI_WRADDR_LATENCY= 1, // 1, //2, //4,
......
/******************************************************************************* /*!
* File: x393_tasks01.vh * @file x393_tasks01.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for the x393 (low level) *
* @brief Simulation tasks for the x393 (low level)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_tasks01.vh is free software; you can redistribute it and/or modify * x393_tasks01.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
// Low-level tasks // Low-level tasks
// alternative way to check for empty read queue (without a separate counter) // alternative way to check for empty read queue (without a separate counter)
......
/******************************************************************************* /*!
* File: x393_tasks_afi.vh * @file x393_tasks_afi.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for the AXI_HP (AFI) *
* @brief Simulation tasks for the AXI_HP (AFI)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_tasks_afi.vh is free software; you can redistribute it and/or modify * x393_tasks_afi.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task membridge_setup; task membridge_setup;
input [28:0] len64; // number of 64-bit words to transfer input [28:0] len64; // number of 64-bit words to transfer
......
/******************************************************************************* /*!
* File: x393_tasks_mcntrl_buffers.vh * @file x393_tasks_mcntrl_buffers.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for software reading/writing (with test patterns) *
* @brief Simulation tasks for software reading/writing (with test patterns)
* of the block buffers. * of the block buffers.
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* x393_tasks_mcntrl_buffers.vh is free software; you can redistribute it and/or modify * x393_tasks_mcntrl_buffers.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
/* /*
task write_block_scanline_chn; // S uppressThisWarning VEditor : may be unused task write_block_scanline_chn; // S uppressThisWarning VEditor : may be unused
input integer chn; // buffer channel input integer chn; // buffer channel
......
/******************************************************************************* /*!
* File: x393_tasks_mcntrl_en_dis_priority.vh * @file x393_tasks_mcntrl_en_dis_priority.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for software reading/writing (with test patterns) *
* @brief Simulation tasks for software reading/writing (with test patterns)
* of the block buffers. * of the block buffers.
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* x393_tasks_mcntrl_en_dis_priority.vh is free software; you can redistribute it and/or modify * x393_tasks_mcntrl_en_dis_priority.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task enable_cmda; task enable_cmda;
input en; input en;
begin begin
......
/******************************************************************************* /*!
* File: x393_tasks_mcntrl_timing.vh * @file x393_tasks_mcntrl_timing.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for programming I/O delays and other timing *
* @brief Simulation tasks for programming I/O delays and other timing
* parameters in the memory controller * parameters in the memory controller
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* x393_tasks_mcntrl_timing.vh is free software; you can redistribute it and/or modify * x393_tasks_mcntrl_timing.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task axi_set_same_delays; //SuppressThisWarning VEditor : may be unused task axi_set_same_delays; //SuppressThisWarning VEditor : may be unused
input [7:0] dq_idelay; input [7:0] dq_idelay;
......
/******************************************************************************* /*!
* File: x393_tasks_pio_sequences.vh * @file x393_tasks_pio_sequences.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for programming memory transaction *
* @brief Simulation tasks for programming memory transaction
* sequences (controlles by PS) * sequences (controlles by PS)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* x393_tasks_pio_sequences.vh is free software; you can redistribute it and/or modify * x393_tasks_pio_sequences.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task enable_reset_ps_pio; // control reset and enable of the PS PIO channel; task enable_reset_ps_pio; // control reset and enable of the PS PIO channel;
input en; input en;
input rst; input rst;
......
/******************************************************************************* /*!
* File: x393_tasks_ps_pio.vh * @file x393_tasks_ps_pio.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for mcntrl_ps_pio module (launching software *
* - programmed memory transaction sequences) * @brief Simulation tasks for mcntrl_ps_pio module (launching
* software-programmed memory transaction sequences)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_tasks_ps_pio.vh is free software; you can redistribute it and/or modify * x393_tasks_ps_pio.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
task schedule_ps_pio; // schedule software-control memory operation (may need to check FIFO status first) task schedule_ps_pio; // schedule software-control memory operation (may need to check FIFO status first)
input [9:0] seq_addr; // sequence start address input [9:0] seq_addr; // sequence start address
input [1:0] page; // buffer page number input [1:0] page; // buffer page number
......
/******************************************************************************* /*!
* File: x393_status.vh * @file x393_tasks_status.vh
* Date:2015-02-07 * @date 2015-02-07
* Author: Andrey Filippov * @author Andrey Filippov
* Description: Simulation tasks for the x393 related to status *
* @brief Simulation tasks for the x393 related to status
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* x393_status.vh is free software; you can redistribute it and/or modify * x393_status.vh is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +34,7 @@ ...@@ -30,7 +34,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
// CVC bug that is supposed to be already fixed // CVC bug that is supposed to be already fixed
`ifdef CVC `ifdef CVC
......
/******************************************************************************* /*!
* Module: buf_xclk_mclk16_393 * <b>Module:</b>buf_xclk_mclk16_393
* Date:2015-07-06 * @file buf_xclk_mclk16_393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: move data from xclk to mclk domain * @author Andrey Filippov
*
* @brief move data from xclk to mclk domain
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* buf_xclk_mclk16_393.v is free software; you can redistribute it and/or modify * buf_xclk_mclk16_393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module buf_xclk_mclk16_393( module buf_xclk_mclk16_393(
......
/******************************************************************************* /*!
* Module: event_logger * <b>Module:</b>event_logger
* Date:2015-07-06 * @file event_logger.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: top module of the event logger (ported from imu_logger) * @author Andrey Filippov
*
* @brief top module of the event logger (ported from imu_logger)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* event_logger.v is free software; you can redistribute it and/or modify * event_logger.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module event_logger#( module event_logger#(
......
/******************************************************************************* /*!
* Module: imu_exttime393 * <b>Module:</b>imu_exttime393
* Date:2015-07-06 * @file imu_exttime393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: get external timestamp (for image) * @author Andrey Filippov
*
* @brief get external timestamp (for image)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* imu_exttime393.v is free software; you can redistribute it and/or modify * imu_exttime393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
Logs frame synchronization data from other camera (same as frame sync) Logs frame synchronization data from other camera (same as frame sync)
......
/******************************************************************************* /*!
* Module: imu_message393 * <b>Module:</b>imu_message393
* Date:2015-07-06 * @file imu_message393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: * @author Andrey Filippov
*
* @brief Logs events from the odometer (can be software triggered), or other external source.
*
* Module includes 56-byte buffer for the received message - it is stored with the timestamp.
* It is possible to assert trig input (will request timestamp), write message by software, then
* de-assert the trig input - message with the timestamp will be logged.
* Has a fixed-length de-noise circuitry with latency 256*T(xclk) (~3usec)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* imu_message393.v is free software; you can redistribute it and/or modify * imu_message393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,16 +40,9 @@ ...@@ -30,16 +40,9 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/*
logs events from odometer (can be software triggered), includes 56-byte message written to the buffer
So it is possible to assert trig input (will request timestamp), write message by software, then
de-assert the trig input - message with the timestamp will be logged
fixed-length de-noise circuitry with latency 256*T(xclk) (~3usec)
*/
module imu_message393 ( module imu_message393 (
input mclk, // system clock, negedge TODO:COnvert to posedge! input mclk, // system clock, negedge TODO:COnvert to posedge!
input xclk, // half frequency (80 MHz nominal) input xclk, // half frequency (80 MHz nominal)
......
/******************************************************************************* /*!
* Module: imu_spi393 * <b>Module:</b>imu_spi393
* Date:2015-07-06 * @file imu_spi393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: SPI interface for the IMU * @author Andrey Filippov
*
* @brief SPI interface for the IMU
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* imu_spi393.v is free software; you can redistribute it and/or modify * imu_spi393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module imu_spi393( module imu_spi393(
......
/******************************************************************************* /*!
* Module: imu_timestamps393 * <b>Module:</b>imu_timestamps393
* Date:2015-07-06 * @file imu_timestamps393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: Acquire timestmps for events * @author Andrey Filippov
*
* @brief Acquire timestmps for events
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* imu_timestamps393.v is free software; you can redistribute it and/or modify * imu_timestamps393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module imu_timestamps393( module imu_timestamps393(
......
/******************************************************************************* /*!
* Module: logger_arbiter393 * <b>Module:</b>logger_arbiter393
* Date:2015-07-06 * @file logger_arbiter393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: arbiter for the event_logger * @author Andrey Filippov
*
* @brief arbiter for the event_logger
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* logger_arbiter393.v is free software; you can redistribute it and/or modify * logger_arbiter393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module logger_arbiter393( module logger_arbiter393(
......
/******************************************************************************* /*!
* Module: nmea_decoder393 * <b>Module:</b>nmea_decoder393
* Date:2015-07-06 * @file nmea_decoder393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: Decode some of the NMEA sentences (to compress them) * @author Andrey Filippov
*
* @brief Decode some of the NMEA sentences (to compress them)
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* nmea_decoder393.v is free software; you can redistribute it and/or modify * nmea_decoder393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module nmea_decoder393( module nmea_decoder393(
......
/******************************************************************************* /*!
* Module: rs232_rcv393 * <b>Module:</b>rs232_rcv393
* Date:2015-07-06 * @file rs232_rcv393.v
* Author: Andrey Filippov * @date 2015-07-06
* Description: rs232 receiver * @author Andrey Filippov
*
* @brief rs232 receiver
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* rs232_rcv393.v is free software; you can redistribute it and/or modify * rs232_rcv393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module rs232_rcv393( module rs232_rcv393(
......
/******************************************************************************* /*!
* Module: cmd_encod_4mux * <b>Module:</b>cmd_encod_4mux
* Date:2015-02-21 * @file cmd_encod_4mux.v
* Author: Andrey Filippov * @date 2015-02-21
* Description: 4-to-1 mux to cmbine memory sequences sources * @author Andrey Filippov
*
* @brief 4-to-1 mux to cmbine memory sequences sources
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_encod_4mux.v is free software; you can redistribute it and/or modify * cmd_encod_4mux.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_4mux( module cmd_encod_4mux(
......
/******************************************************************************* /*!
* Module: cmd_encod_linear_mux * <b>Module:</b>cmd_encod_linear_mux
* Date:2015-01-31 * @file cmd_encod_linear_mux.v
* Author: Andrey Filippov * @date 2015-01-31
* Description: Multiplex parameters from multiple channels sharing the same * @author Andrey Filippov
*
* @brief Multiplex parameters from multiple channels sharing the same
* linear command encoders (cmd_encod_linear_rd and cmd_encod_linear_wr) * linear command encoders (cmd_encod_linear_rd and cmd_encod_linear_wr)
* Latency 1 clcok cycle * Latency 1 clcok cycle
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_linear_mux.v is free software; you can redistribute it and/or modify * cmd_encod_linear_mux.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
module cmd_encod_linear_mux#( module cmd_encod_linear_mux#(
......
/******************************************************************************* /*!
* Module: cmd_encod_linear_rd * <b>Module:</b>cmd_encod_linear_rd
* Date:2015-01-23 * @file cmd_encod_linear_rd.v
* Author: Andrey Filippov * @date 2015-01-23
* Description: Command sequencer generator for reading a sequential up to 1KB page * @author Andrey Filippov
*
* @brief Command sequencer generator for reading a sequential up to 1KB page
* single page access, bank and row will not be changed * single page access, bank and row will not be changed
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_linear_rd.v is free software; you can redistribute it and/or modify * cmd_encod_linear_rd.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_linear_rd #( module cmd_encod_linear_rd #(
......
/******************************************************************************* /*!
* Module: cmd_encod_linear_rw * <b>Module:</b>cmd_encod_linear_rw
* Date:2015-02-21 * @file cmd_encod_linear_rw.v
* Author: Andrey Filippov * @date 2015-02-21
* Description: Combining 2 modules:cmd_encod_linear_rd and cmd_encod_linear_wr * @author Andrey Filippov
*
* @brief Combining 2 modules:cmd_encod_linear_rd and cmd_encod_linear_wr
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_encod_linear_rw.v is free software; you can redistribute it and/or modify * cmd_encod_linear_rw.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_linear_rw#( module cmd_encod_linear_rw#(
......
/******************************************************************************* /*!
* Module: cmd_encod_linear_wr * <b>Module:</b>cmd_encod_linear_wr
* Date:2015-01-23 * @file cmd_encod_linear_wr.v
* Author: Andrey Filippov * @date 2015-01-23
* Description: Command sequencer generator for writing a sequential up to 1KB page * @author Andrey Filippov
*
* @brief Command sequencer generator for writing a sequential up to 1KB page
* single page access, bank and row will not be changed * single page access, bank and row will not be changed
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_linear_wr.v is free software; you can redistribute it and/or modify * cmd_encod_linear_wr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_linear_wr #( module cmd_encod_linear_wr #(
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_32_rd * <b>Module:</b>cmd_encod_tiled_32_rd
* Date:2015-02-218 * @file cmd_encod_tiled_32_rd.v
* Author: Andrey Filippov * @date 2015-02-218
* Description: Command sequencer generator for reading a tiled area * @author Andrey Filippov
*
* @brief Command sequencer generator for reading a tiled area
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA * up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA
* and alternating BA (0 to 7). Data will be read in columns 32 bytes wide, * and alternating BA (0 to 7). Data will be read in columns 32 bytes wide,
* then proceding to the next column (if >1). * then proceding to the next column (if >1).
...@@ -10,7 +12,10 @@ ...@@ -10,7 +12,10 @@
* just reading 32 bytes per row instead of the 16 - that eases timing * just reading 32 bytes per row instead of the 16 - that eases timing
* Start burst should be even (LSB is ignored) * Start burst should be even (LSB is ignored)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_tiled_32_rd.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_32_rd.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -36,7 +41,7 @@ ...@@ -36,7 +41,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
TODO Comments from cmd_encod_tiled_rd, update TODO Comments from cmd_encod_tiled_rd, update
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_32_rw * <b>Module:</b>cmd_encod_tiled_32_rw
* Date:2015-02-21 * @file cmd_encod_tiled_32_rw.v
* Author: Andrey Filippov * @date 2015-02-21
* Description: Combines cmd_encod_tiled_32_rd and cmd_encod_tiled_32_wr modules * @author Andrey Filippov
*
* @brief Combines cmd_encod_tiled_32_rd and cmd_encod_tiled_32_wr modules
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_encod_tiled_32_rw.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_32_rw.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_tiled_32_rw #( module cmd_encod_tiled_32_rw #(
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_32_wr * <b>Module:</b>cmd_encod_tiled_32_wr
* Date:2015-02-19 * @file cmd_encod_tiled_32_wr.v
* Author: Andrey Filippov * @date 2015-02-19
* Description: Command sequencer generator for writing a tiled area * @author Andrey Filippov
*
* @brief Command sequencer generator for writing a tiled area
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA * up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide, * and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* then proceding to the next column (if >1). * then proceding to the next column (if >1).
...@@ -10,7 +12,10 @@ ...@@ -10,7 +12,10 @@
* just writing 32 bytes per row instead of the 16 - that eases timing * just writing 32 bytes per row instead of the 16 - that eases timing
* Start burst should be even (LSB is ignored) * Start burst should be even (LSB is ignored)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_tiled_32_wr.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_32_wr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -36,7 +41,7 @@ ...@@ -36,7 +41,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
TODO Comments from cmd_encod_tiled_rd, update TODO Comments from cmd_encod_tiled_rd, update
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_mux * <b>Module:</b>cmd_encod_tiled_mux
* Date:2015-01-31 * @file cmd_encod_tiled_mux.v
* Author: Andrey Filippov * @date 2015-01-31
* Description: Multiplex parameters from multiple channels sharing the same * @author Andrey Filippov
*
* @brief Multiplex parameters from multiple channels sharing the same
* tiled command encoders (cmd_encod_tiled_rd and cmd_encod_tiled_wr) * tiled command encoders (cmd_encod_tiled_rd and cmd_encod_tiled_wr)
* Latency 1 clcok cycle * Latency 1 clcok cycle
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_tiled_mux.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_mux.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -32,7 +37,7 @@ ...@@ -32,7 +37,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
module cmd_encod_tiled_mux #( module cmd_encod_tiled_mux #(
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_rd * <b>Module:</b>cmd_encod_tiled_rd
* Date:2015-01-23 * @file cmd_encod_tiled_rd.v
* Author: Andrey Filippov * @date 2015-01-23
* Description: Command sequencer generator for reading a tiled area * @author Andrey Filippov
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA *
* @brief Command sequencer generator for reading a tiled area
* up to 1 kB.
*
* Memory is mapped so 8 consecuitive rows have same RA, CA
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide, * and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* then proceding to the next column (if >1). * then proceding to the next column (if >1).
* If number of rows is less than 8 it is possible to use keep_open_in input, * If number of rows is less than 8 it is possible to use keep_open_in input,
...@@ -11,8 +15,12 @@ ...@@ -11,8 +15,12 @@
* AUTO RECHARGE will be applied only to the last column (single column OK). * AUTO RECHARGE will be applied only to the last column (single column OK).
* if number of rows >=8, that port is ignored. If number of rows is less than * if number of rows >=8, that port is ignored. If number of rows is less than
* 5 (less for slower clock) without keep_open_in tRTP may be not matched. * 5 (less for slower clock) without keep_open_in tRTP may be not matched.
* Seems that actual tile heigt mod 8 should be only 0, 6 or7 * Seems that actual tile heigt mod 8 should be only 0, 6 or7.
* Copyright (c) 2015 Elphel, Inc. *
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_tiled_rd.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_rd.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -38,7 +46,7 @@ ...@@ -38,7 +46,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
Minimal ACTIVATE period =4 Tcm or 10ns, so maximal no-miss rate is Tck=1.25 ns (800 MHz) Minimal ACTIVATE period =4 Tcm or 10ns, so maximal no-miss rate is Tck=1.25 ns (800 MHz)
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_rw * <b>Module:</b>cmd_encod_tiled_rw
* Date:2015-02-21 * @file cmd_encod_tiled_rw.v
* Author: Andrey Filippov * @date 2015-02-21
* Description: Combines cmd_encod_tiled_rd and cmd_encod_tiled_wr modules * @author Andrey Filippov
*
* @brief Combines cmd_encod_tiled_rd and cmd_encod_tiled_wr modules
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* cmd_encod_tiled_rw.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_rw.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmd_encod_tiled_rw #( module cmd_encod_tiled_rw #(
......
/******************************************************************************* /*!
* Module: cmd_encod_tiled_wr * <b>Module:</b>cmd_encod_tiled_wr
* Date:2015-02-19 * @file cmd_encod_tiled_wr.v
* Author: Andrey Filippov * @date 2015-02-19
* Description: Command sequencer generator for writing a tiled area * @author Andrey Filippov
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA *
* @brief Command sequencer generator for writing a tiled area
* up to 1 kB.
*
* Memory is mapped so 8 consecuitive rows have same RA, CA
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide, * and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* then proceding to the next column (if >1). * then proceding to the next column (if >1).
* If number of rows is less than 8 it is possible to use keep_open_in input, * If number of rows is less than 8 it is possible to use keep_open_in input,
...@@ -11,8 +15,12 @@ ...@@ -11,8 +15,12 @@
* AUTO RECHARGE will be applied only to the last column (single column OK). * AUTO RECHARGE will be applied only to the last column (single column OK).
* if number of rows >=8, that port is ignored. If number of rows is less than * if number of rows >=8, that port is ignored. If number of rows is less than
* 5 (less for slower clock) without keep_open_in tRTP may be not matched. * 5 (less for slower clock) without keep_open_in tRTP may be not matched.
* Seems that actual tile heigt mod 8 should be only 0, 6 or7 * Seems that actual tile heigt mod 8 should be only 0, 6 or7.
* Copyright (c) 2015 Elphel, Inc. *
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* cmd_encod_tiled_wr.v is free software; you can redistribute it and/or modify * cmd_encod_tiled_wr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -38,7 +46,7 @@ ...@@ -38,7 +46,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
TODO Comments from cmd_encod_tiled_rd, update TODO Comments from cmd_encod_tiled_rd, update
......
/******************************************************************************* /*!
* Module: ddr_refresh * <b>Module:</b>ddr_refresh
* Date:2014-06-02 * @file ddr_refresh.v
* Author: Andrey Filippov * @date 2014-06-02
* Description: DDR3 memory refresh request module * @author Andrey Filippov
*
* @brief DDR3 memory refresh request module
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* ddr_refresh.v is free software; you can redistribute it and/or modify * ddr_refresh.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module ddr_refresh( module ddr_refresh(
......
/******************************************************************************* /*!
* Module: mcntrl393 * <b>Module:</b>mcntrl393
* Date:2015-01-31 * @file mcntrl393.v
* Author: Andrey Filippov * @date 2015-01-31
* Description: Top level memory controller for 393 camera, includes channel buffers * @author Andrey Filippov
*
* @brief Top level memory controller for 393 camera, includes channel buffers
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* mcntrl393.v is free software; you can redistribute it and/or modify * mcntrl393.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
module mcntrl393 #( module mcntrl393 #(
......
/******************************************************************************* /*!
* Module: mcntrl393_test01 * <b>Module:</b>mcntrl393_test01
* Date:2015-02-06 * @file mcntrl393_test01.v
* Author: Andrey Filippov * @date 2015-02-06
* Description: Temporary module to interface mcntrl393 control signals * @author Andrey Filippov
*
* @brief Temporary module to interface mcntrl393 control signals
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* mcntrl393_test01.v is free software; you can redistribute it and/or modify * mcntrl393_test01.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl393_test01#( module mcntrl393_test01#(
......
/******************************************************************************* /*!
* Module: mcntrl_1kx32r * <b>Module:</b>mcntrl_1kx32r
* Date:2015-02-03 * @file mcntrl_1kx32r.v
* Author: Andrey Filippov * @date 2015-02-03
* Description: Paged buffer for ddr3 controller read channel * @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller read channel
* with address autoincrement. 32 bit external data. * with address autoincrement. 32 bit external data.
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_1kx32r.v is free software; you can redistribute it and/or modify * mcntrl_1kx32r.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl_1kx32r( module mcntrl_1kx32r(
......
/******************************************************************************* /*!
* Module: mcntrl_1kx32w * <b>Module:</b>mcntrl_1kx32w
* Date:2015-02-03 * @file mcntrl_1kx32w.v
* Author: Andrey Filippov * @date 2015-02-03
* Description: Paged buffer for ddr3 controller write channel * @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller write channel
* with address autoincrement. 32 bit external data. Extends rd to regen * with address autoincrement. 32 bit external data. Extends rd to regen
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_1kx32w.v is free software; you can redistribute it and/or modify * mcntrl_1kx32w.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl_1kx32w( module mcntrl_1kx32w(
......
/******************************************************************************* /*!
* Module: mcntrl_buf_rd * <b>Module:</b>mcntrl_buf_rd
* Date:2015-02-03 * @file mcntrl_buf_rd.v
* Author: Andrey Filippov * @date 2015-02-03
* Description: Paged buffer for ddr3 controller read channel * @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller read channel
* with address autoincrement. Variable width external data * with address autoincrement. Variable width external data
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_buf_rd.v is free software; you can redistribute it and/or modify * mcntrl_buf_rd.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl_buf_rd #( module mcntrl_buf_rd #(
......
/******************************************************************************* /*!
* Module: mcntrl_buf_wr * <b>Module:</b>mcntrl_buf_wr
* Date:2015-02-03 * @file mcntrl_buf_wr.v
* Author: Andrey Filippov * @date 2015-02-03
* Description: Paged buffer for ddr3 controller write channel * @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller write channel
* with address autoincrement. 32 bit external data. Extends rd to regen * with address autoincrement. 32 bit external data. Extends rd to regen
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_buf_wr.v is free software; you can redistribute it and/or modify * mcntrl_buf_wr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl_buf_wr #( module mcntrl_buf_wr #(
......
/******************************************************************************* /*!
* Module: mcntrl_linear_rw * <b>Module:</b>mcntrl_linear_rw
* Date:2015-01-29 * @file mcntrl_linear_rw.v
* Author: Andrey Filippov * @date 2015-01-29
* Description: Organize paged R/W from DDR3 memory in scan-line order * @author Andrey Filippov
*
* @brief Organize paged R/W from DDR3 memory in scan-line order
* with window support * with window support
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_linear_rw.v is free software; you can redistribute it and/or modify * mcntrl_linear_rw.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
// TODO: ADD MCNTRL_SCANLINE_FRAME_PAGE_RESET to caller // TODO: ADD MCNTRL_SCANLINE_FRAME_PAGE_RESET to caller
module mcntrl_linear_rw #( module mcntrl_linear_rw #(
......
/******************************************************************************* /*!
* Module: mcntrl_ps_pio * <b>Module:</b>mcntrl_ps_pio
* Date:2015-01-27 * @file mcntrl_ps_pio.v
* Author: Andrey Filippov * @date 2015-01-27
* Description: Read/write channels to DDR3 memory with software-programmable * @author Andrey Filippov
*
* @brief Read/write channels to DDR3 memory with software-programmable
* command sequence * command sequence
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_ps_pio.v is free software; you can redistribute it and/or modify * mcntrl_ps_pio.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
`undef DEBUG_FIFO `undef DEBUG_FIFO
......
/******************************************************************************* /*!
* Module: mcntrl_tiled_rw * <b>Module:</b>mcntrl_tiled_rw
* Date:2015-02-03 * @file mcntrl_tiled_rw.v
* Author: Andrey Filippov * @date 2015-02-03
* Description: Organize paged R/W from DDR3 memory in tiled order * @author Andrey Filippov
*
* @brief Organize paged R/W from DDR3 memory in tiled order
* with window support * with window support
* Tiles spreading over two different frames is not yet supported (needed for * Tiles spreading over two different frames is not yet supported (needed for
* line-scan mode in JPEG (JP4 - OK) * line-scan mode in JPEG (JP4 - OK)
* *
* Copyright (c) 2015 Elphel, Inc. * @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* mcntrl_tiled_rw.v is free software; you can redistribute it and/or modify * mcntrl_tiled_rw.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -33,7 +38,7 @@ ...@@ -33,7 +38,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module mcntrl_tiled_rw#( module mcntrl_tiled_rw#(
......
/******************************************************************************* /*!
* Module: memctrl16 * <b>Module:</b>memctrl16
* Date:2015-01-10 * @file memctrl16.v
* Author: Andrey Filippov * @date 2015-01-10
* Description: 16-channel memory controller * @author Andrey Filippov
*
* @brief 16-channel memory controller
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2015 Elphel, Inc.
* memctrl16.v is free software; you can redistribute it and/or modify * memctrl16.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
//`define use200Mhz 1 //`define use200Mhz 1
......
/******************************************************************************* /*!
* Module: byte_lane * <b>Module:</b>byte_lane
* Date:2014-04-26 * @file byte_lane.v
* Author: Andrey Filippov * @date 2014-04-26
* Description: DDR3 byte lane, including DQS I/O, 8xDQ I/O and DM output * @author Andrey Filippov
*
* @brief DDR3 byte lane, including DQS I/O, 8xDQ I/O and DM output
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* byte_lane.v is free software; you can redistribute it and/or modify * byte_lane.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
`include "system_defines.vh" `include "system_defines.vh"
// minimizing total DQS in delay to match DQ (finedelay stage adds some?) // minimizing total DQS in delay to match DQ (finedelay stage adds some?)
......
/******************************************************************************* /*!
* Module: cmd_addr * <b>Module:</b>cmd_addr
* Date:2014-04-26 * @file cmd_addr.v
* Author: Andrey Filippov * @date 2014-04-26
* Description: DDR3 command/address signals * @author Andrey Filippov
*
* @brief DDR3 command/address signals
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* cmd_addr.v is free software; you can redistribute it and/or modify * cmd_addr.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
/* /*
Currently ddr3_a, ddr3_ba, ddr_cke and ddr_odt do not change inside a 2-clock command cycle, so half register Currently ddr3_a, ddr3_ba, ddr_cke and ddr_odt do not change inside a 2-clock command cycle, so half register
......
/******************************************************************************* /*!
* Module: cmda_single * <b>Module:</b>cmda_single
* Date:2014-04-26 * @file cmda_single.v
* Author: Andrey Filippov * @date 2014-04-26
* Description: Single-bit CMD/address output * @author Andrey Filippov
*
* @brief Single-bit CMD/address output
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* cmda_single.v is free software; you can redistribute it and/or modify * cmda_single.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module cmda_single #( module cmda_single #(
......
/******************************************************************************* /*!
* Module: dm_single * <b>Module:</b>dm_single
* Date:2014-04-26 * @file dm_single.v
* Author: Andrey Filippov * @date 2014-04-26
* Description: Single-bit DDR3 DQ I/O, same used for DM * @author Andrey Filippov
*
* @brief Single-bit DDR3 DQ I/O, same used for DM
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* dm_single.v is free software; you can redistribute it and/or modify * dm_single.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
// ISE 14.7 does not have OBUFT_DCIEN // ISE 14.7 does not have OBUFT_DCIEN
`include "system_defines.vh" `include "system_defines.vh"
......
/******************************************************************************* /*!
* Module: dq_single * <b>Module:</b>dq_single
* Date:2014-04-26 * @file dq_single.v
* Author: Andrey Filippov * @date 2014-04-26
* Description: Single-bit DDR3 DQ I/O, same used for DM * @author Andrey Filippov
*
* @brief Single-bit DDR3 DQ I/O, same used for DM
*
* @copyright Copyright (c) 2014 Elphel, Inc.
*
* <b>License:</b>
* *
* Copyright (c) 2014 Elphel, Inc.
* dq_single.v is free software; you can redistribute it and/or modify * dq_single.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
...@@ -30,7 +35,7 @@ ...@@ -30,7 +35,7 @@
* the combined code. This permission applies to you if the distributed code * the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it * contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs. * with at least one of the Free Software programs.
*******************************************************************************/ */
`timescale 1ns/1ps `timescale 1ns/1ps
module dq_single #( module dq_single #(
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment