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
*.bad
*.pyc
*.pickle
*.tmp
py393/dbg*
debug
debug/*
html/*
man/*
includes/x393_cur_params_sim.vh
includes/x393_cur_params_target_*.vh
py393/exp_gpio.py
......
/*******************************************************************************
* Module: axibram_read
* Date:2014-03-18
* Author: Andrey Filippov
* Description: Read block RAM memory over AXI PS Master GP0
/*!
* <b>Module:</b>axibram_read
* @file axibram_read.v
* @date 2014-03-18
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
// Check that this fix did not break anything:
`include "system_defines.vh"
`define USE_SHORT_REN_REGEN
......@@ -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= 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? last_in_burst_1: last_in_burst_0; // faster (unfinished) - more verification
......@@ -250,7 +254,7 @@ module axibram_read #(
// 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))
raddr_i (
raddr_i (
.rst(1'b0),
.clk(aclk),
.sync_rst(arst),
......
/*******************************************************************************
* Module: axibram_write
* Date:2014-03-18
* Author: Andrey Filippov
* Description: Read block RAM memory (or memories?) over AXI PS Master GP0
/*!
* <b>Module:</b>axibram_write
* @file axibram_write.v
* @date 2014-03-18
* @author Andrey Filippov
*
* @brief Read block RAM memory (or memories?) over AXI PS Master GP0
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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_FIFO 1
`include "system_defines.vh"
`ifdef DEBUG_FIFO
......
/*******************************************************************************
* Module: cmprs_afi_mux
* Date:2015-06-26
* Author: Andrey Filippov
* Description: Writes comressor data from up to 4 channels to system memory over AXI_HP
/*!
* <b>Module:</b>cmprs_afi_mux
* @file cmprs_afi_mux.v
* @date 2015-06-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_afi_mux#(
......
/*******************************************************************************
* Module: cmprs_afi_mux_ptr
* Date:2015-06-28
* Author: Andrey Filippov
* Description: Maintain 4-channel chunk pointers (before AXI)
/*!
* <b>Module:</b>cmprs_afi_mux_ptr
* @file cmprs_afi_mux_ptr.v
* @date 2015-06-28
* @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)
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_afi_mux_ptr(
......
/*******************************************************************************
* Module: cmprs_afi_mux_ptr_wresp
* Date:2015-06-28
* Author: Andrey Filippov
* Description: Maintain 4-channel chunk pointers for wrirte response
/*!
* <b>Module:</b>cmprs_afi_mux_ptr_wresp
* @file cmprs_afi_mux_ptr_wresp.v
* @date 2015-06-28
* @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)
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_afi_mux_ptr_wresp(
......
/*******************************************************************************
* Module: cmprs_afi_mux_status
* Date:2015-06-28
* Author: Andrey Filippov
* Description: prepare and send per-channel chunk pointer information as status
/*!
* <b>Module:</b>cmprs_afi_mux_status
* @file cmprs_afi_mux_status.v
* @date 2015-06-28
* @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:
* 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
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -34,7 +39,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_afi_mux_status #(
......
/*******************************************************************************
* Module: histogram_saxi
* Date:2015-06-04
* Author: Andrey Filippov
* Description: Histograms transfer to the system memory over S_AXI
/*!
* <b>Module:</b>histogram_saxi
* @file histogram_saxi.v
* @date 2015-06-04
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
// 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
......
/*
** -----------------------------------------------------------------------------**
** 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
* Date:2015-04-26
* Author: Andrey Filippov
* Description: bi-directional bridge between system and video memory over axi_hp
/*!
* <b>Module:</b>membridge
* @file membridge.v
* @date 2015-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
//`define MEMBRIDGE_DEBUG_READ 1
module membridge#(
......
/*******************************************************************************
* Module: mul_saxi_wr_chn
* Date:2015-07-10
* Author: Andrey Filippov
* Description: One channel of the mult_saxi_wr (read/write common buffer)
/*!
* <b>Module:</b>mul_saxi_wr_chn
* @file mul_saxi_wr_chn.v
* @date 2015-07-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mult_saxi_wr_chn #(
......
/*******************************************************************************
* Module: mult_saxi_wr
* Date:2015-07-08
* Author: Andrey Filippov
* Description: send data from up to 4 sources to the system memory over S_AXI.
/*!
* <b>Module:</b>mult_saxi_wr
* @file mult_saxi_wr.v
* @date 2015-07-08
* @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).
* Buffer should contain at least burst size (4,8,16,32,64 bytes)
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -33,7 +38,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
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];
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_HALF_BRAM (MULT_SAXI_HALF_BRAM),
......
/*******************************************************************************
* Module: mult_saxi_wr_inbuf
* Date:2015-07-11
* Author: Andrey Filippov
* Description: Channel buffer with width conversion to 32 to use with mult_saxi_wr
/*!
* <b>Module:</b>mult_saxi_wr_inbuf
* @file mult_saxi_wr_inbuf.v
* @date 2015-07-11
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mult_saxi_wr_inbuf#(
......
/*******************************************************************************
* Module: mult_saxi_wr_pointers
* Date:2015-07-10
* Author: Andrey Filippov
* Description: Process pointers for mult_saxi_wr
/*!
* <b>Module:</b>mult_saxi_wr_pointers
* @file mult_saxi_wr_pointers.v
* @date 2015-07-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mult_saxi_wr_pointers#(
......
/*******************************************************************************
* Module: cmd_mux
* Date:2015-01-11
* Author: Andrey Filippov
* Description: Command multiplexer between AXI and frame-based command sequencer
/*!
* <b>Module:</b>cmd_mux
* @file cmd_mux.v
* @date 2015-01-11
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_mux #(
......
/*******************************************************************************
* Module: cmd_readback
* Date:2015-05-05
* Author: Andrey Filippov
* Description: Store control register data and readback
/*!
* <b>Module:</b>cmd_readback
* @file cmd_readback.v
* @date 2015-05-05
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_readback#(
......
/*******************************************************************************
* Module: bit_stuffer_27_32
* Date:2015-10-23
* Author: Andrey Filippov
* Description: Aggregate MSB aligned variable-length (1..27) data to 32-bit words
/*!
* <b>Module:</b>bit_stuffer_27_32
* @file bit_stuffer_27_32.v
* @date 2015-10-23
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module bit_stuffer_27_32#(
......
/*******************************************************************************
* Module: bit_stuffer_escape
* Date:2015-10-24
* Author: Andrey Filippov
* Description: Escapes each 0xff with 0x00, 32-bit input and output
/*!
* <b>Module:</b>bit_stuffer_escape
* @file bit_stuffer_escape.v
* @date 2015-10-24
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module bit_stuffer_escape(
......
/*******************************************************************************
* Module: bit_stuffer_metadata
* Date:2015-10-25
* Author: Andrey Filippov
* Description:
/*!
* <b>Module:</b>bit_stuffer_metadata
* @file bit_stuffer_metadata.v
* @date 2015-10-25
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module bit_stuffer_metadata(
......
/*******************************************************************************
* Module: cmprs_buf_average
* Date:2015-06-14
* Author: Andrey Filippov
* Description: Saves Y and C components to buffers, caculates averages
/*!
* <b>Module:</b>cmprs_buf_average
* @file cmprs_buf_average.v
* @date 2015-06-14
* @author Andrey Filippov
*
* @brief Saves Y and C components to buffers, caculates averages
* during write, then subtracts them during read and provides to
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
// TODO:Clean up even more - remove signals that are not related to calculating/subtracting averages
module cmprs_buf_average#(
......
/*******************************************************************************
* Module: cmprs_cmd_decode
* Date:2015-06-23
* Author: Andrey Filippov
* Description: Decode compressor command/modes, reclock some signals
/*!
* <b>Module:</b>cmprs_cmd_decode
* @file cmprs_cmd_decode.v
* @date 2015-06-23
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
//From 353:
// [23] == 1 - set focus mode
......
/*******************************************************************************
* Module: cmprs_frame_sync
* Date:2015-06-23
* Author: Andrey Filippov
* Description: Synchronizes memory channels (sensor and compressor)
/*!
* <b>Module:</b>cmprs_frame_sync
* @file cmprs_frame_sync.v
* @date 2015-06-23
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_frame_sync#(
......
/*******************************************************************************
* Module: cmprs_macroblock_buf_iface
* Date:2015-06-11
* Author: Andrey Filippov
* Description: Communicates with compressor memory buffer, generates pixel
/*!
* <b>Module:</b>cmprs_macroblock_buf_iface
* @file cmprs_macroblock_buf_iface.v
* @date 2015-06-11
* @author Andrey Filippov
*
* @brief Communicates with compressor memory buffer, generates pixel
* 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).
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_macroblock_buf_iface (
......
/*******************************************************************************
* Module: cmprs_out_fifo
* Date:2015-06-25
* Author: Andrey Filippov
* Description: Compressor output FIFO
/*!
* <b>Module:</b>cmprs_out_fifo
* @file cmprs_out_fifo.v
* @date 2015-06-25
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_out_fifo(
......
/*******************************************************************************
* Module: cmprs_out_fifo32
* Date:2015-06-25
* Author: Andrey Filippov
* Description: Compressor output FIFO, modified to use 32-bit input and xclk
/*!
* <b>Module:</b>cmprs_out_fifo32
* @file cmprs_out_fifo32.v
* @date 2015-06-25
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_out_fifo32(
......
/*******************************************************************************
* Module: cmprs_pixel_buf_iface
* Date:2015-06-11
* Author: Andrey Filippov
* Description: Communicates with compressor memory buffer, generates pixel
/*!
* <b>Module:</b>cmprs_pixel_buf_iface
* @file cmprs_pixel_buf_iface.v
* @date 2015-06-11
* @author Andrey Filippov
*
* @brief Communicates with compressor memory buffer, generates pixel
* 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).
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_pixel_buf_iface #(
......
/*******************************************************************************
* Module: cmprs_status
* Date:2015-06-25
* Author: Andrey Filippov
* Description: Generate compressor status word
/*!
* <b>Module:</b>cmprs_status
* @file cmprs_status.v
* @date 2015-06-25
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_status #(
......
/*******************************************************************************
* Module: cmprs_tile_mode2_decode
* Date:2015-06-14
* Author: Andrey Filippov
* Description: Decode mode parameters, registered at pre-start of the macroblock
/*!
* <b>Module:</b>cmprs_tile_mode2_decode
* @file cmprs_tile_mode2_decode.v
* @date 2015-06-14
* @author Andrey Filippov
*
* @brief Decode mode parameters, registered at pre-start of the macroblock
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_tile_mode2_decode #(
......
/*******************************************************************************
* Module: cmprs_tile_mode_decode
* Date:2015-06-14
* Author: Andrey Filippov
* Description: Decode tile/macroblocks parameters from compressor type
/*!
* <b>Module:</b>cmprs_tile_mode_decode
* @file cmprs_tile_mode_decode.v
* @date 2015-06-14
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmprs_tile_mode_decode #(
......
/*******************************************************************************
* Module: compressor393
* Date:2015-07-14
* Author: Andrey Filippov
* Description: Top module containg all compressor channels
/*!
* <b>Module:</b>compressor393
* @file compressor393.v
* @date 2015-07-14
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module compressor393 # (
......
/*******************************************************************************
* Module: csconvert
* Date:2015-06-14
* Author: Andrey Filippov
* Description: Color space convert: combine differnt color modes
/*!
* <b>Module:</b>csconvert
* @file csconvert.v
* @date 2015-06-14
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module csconvert#(
......
/*
** -----------------------------------------------------------------------------**
** csconvert18a.v
**
** Color space converter (bayer-> YCbCr 4:2:1) for JPEG compressor
**
** Copyright (C) 2002-20015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** This file is part of X393
** X393 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>csconvert18a
* @file csconvert18a.v
* @author Andrey Filippov
*
* @brief Color space converter (bayer-> YCbCr 4:2:1) for JPEG compressor.
* Uses 18x18 pixel overlapping macroblocks for color conversion.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* csconvert18a.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.
*/
// 2015: Updating for 393, removing old SRL16 primitives
/*
09/07/2002 Andrey Filippov
......
/*******************************************************************************
* Module: csconvert_jp4
* Date:2015-06-10
* Author: Andrey Filippov
* Description: Color conversion for JP4 mode
/*!
* <b>Module:</b>csconvert_jp4
* @file csconvert_jp4.v
* @date 2015-06-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module csconvert_jp4 (en,
......
/*******************************************************************************
* Module: csconvert_jp4diff
* Date:2015-06-10
* Author: Andrey Filippov
* Description: Color conversion for JP4 differential
/*!
* <b>Module:</b>csconvert_jp4diff
* @file csconvert_jp4diff.v
* @date 2015-06-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module csconvert_jp4diff (en,
......
/*******************************************************************************
* Module: csconvert_mono
* Date:2015-06-10
* Author: Andrey Filippov
* Description: Convert JPEG monochrome
/*!
* <b>Module:</b>csconvert_mono
* @file csconvert_mono.v
* @date 2015-06-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module csconvert_mono (en,
......
/*******************************************************************************
* Module: dcc_sync393
* Date:2015-06-17
* Author: Andrey Filippov
* Description: Synchronises output of DC components
/*!
* <b>Module:</b>dcc_sync393
* @file dcc_sync393.v
* @date 2015-06-17
* @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
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module dcc_sync393(
......
/*
** -----------------------------------------------------------------------------**
** encoderDCAC393.v
**
** RLL encoder for JPEG compressor
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** encoderDCAC393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>encoderDCAC393
* @file encoderDCAC393.v
* @author Andrey Filippov
*
* @brief RLL encoder for JPEG compressor
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* encoderDCAC393.v 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.
*
* encoderDCAC393.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.
*/
// 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
......
/*
** -----------------------------------------------------------------------------**
** focus_sharp393.v
**
** Module to determine focus sharpness on by integrating
** DCT coefficient, multiplied my 8x8 array and squared
**
** Copyright (C) 2008-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** ocus_sharp393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>focus_sharp393
* @file focus_sharp393.v
* @author Andrey Filippov
*
* @brief Module to determine focus sharpness on by integrating
* DCT coefficient, multiplied my 8x8 array and squared
*
* @copyright Copyright (c) 2008-2015 Elphel, Inc.
*
* <b>License:</b>
*
* 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* focus_sharp393.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.
*/
`include "system_defines.vh"
`timescale 1ns/1ps
// TODO: Modify to work with other modes (now only on color)
......
/*
** -----------------------------------------------------------------------------**
** huff_fifo393.v
**
** Part of Huffman encoder for JPEG compressor - FIFO for Huffman encoder
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** huff_fifo393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>huff_fifo393
* @file huff_fifo393.v
* @author Andrey Filippov
*
* @brief Part of Huffman encoder for JPEG compressor - FIFO for Huffman encoder
* based on earlier design that used 2x clock. Superseded by huffman_stuffer_meta.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* huff_fifo393.v 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.
*
* huff_fifo393.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.
*/
module huff_fifo393 (
input xclk, // pixel clock, posedge
......
/*
** -----------------------------------------------------------------------------**
** huffman333.v
**
** Huffman encoder for JPEG compressor
**
** Copyright (C) 2002-20015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** huffman393 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>huffman393
* @file huffman393.v
* @author Andrey Filippov
*
* @brief Huffman encoder for JPEG compressor based on previous design that used
* 2x clock. Superseded by huffman_stuffer_meta module.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* huffman393.v 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.
*
* huffman393.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.
*/
`include "system_defines.vh"
// 01/22/2004 - extended flush until ready (modified stuffer.v too)
module huffman393 (
......
/*******************************************************************************
* Module: huffman_merge_code_literal
* Date:2015-10-22
* Author: Andrey Filippov
* Description: Merge 1-16 bits of Huffman code with 0..11 bits of literal data,
/*!
* <b>Module:</b>huffman_merge_code_literal
* @file huffman_merge_code_literal.v
* @date 2015-10-22
* @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}}
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module huffman_merge_code_literal(
......
/*
** -----------------------------------------------------------------------------**
** huffman_snglclk.v
**
** Huffman encoder for JPEG compressor
**
** Copyright (C) 2002-20015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** huffman_snglclk 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>huffman_snglclk
* @file huffman_snglclk.v
* @author Andrey Filippov
*
* @brief Huffman encoder for JPEG compressor, redesigned to use single rate pixel clock.
*
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* huffman_snglclk.v 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.
*
* huffman_snglclk.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.
*/
`include "system_defines.vh"
module huffman_snglclk (
input xclk, // pixel clock, sync to incoming data
......
/*******************************************************************************
* Module: huffman_stuffer_meta
* Date:2015-10-26
* Author: Andrey Filippov
* Description: Huffman encoder, bit stuffer, inser meta-data
* "New" part of the JPEG/JP4 comressor that used double frequency clock
/*!
* <b>Module:</b>huffman_stuffer_meta
* @file huffman_stuffer_meta.v
* @date 2015-10-26
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +42,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module huffman_stuffer_meta(
......
/*******************************************************************************
* Module: jp_channel
* Date:2015-06-10
* Author: Andrey Filippov
* Description: Top module of JPEG/JP4 compressor channel
/*!
* <b>Module:</b>jp_channel
* @file jp_channel.v
* @date 2015-06-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module jp_channel#(
......
/*
** -----------------------------------------------------------------------------**
** quantizator353.v
**
** Quantizer module for JPEG compressor
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** quantizer393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>quantizer393
* @file quantizer393.v
* @author Andrey Filippov
*
* @brief Quantizer module for JPEG/JP4 compressor
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* quantizer393.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.
*/
`include "system_defines.vh"
`timescale 1ns/1ps
......
/*
** -----------------------------------------------------------------------------**
** stuffer393.v
**etrax_dma
** Bit stuffer for JPEG encoder
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** stuffer393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>stuffer393
* @file stuffer393.v
* @author Andrey Filippov
*
* @brief Bit stuffer for JPEG/JP4 compressor based on earlier design
* Now used for comparison only, functionality is reimplemented in
* bit_stuffer_metadata module.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* stuffer393.v 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.
*
* stuffer393.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.
*/
`define debug_compressor
// 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)
......
/*
** -----------------------------------------------------------------------------**
** varlen_encode393.v
**
** Part of the Huffman encoder for JPEG compressor - variable length encoder
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** varlen_encode393.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>varlen_encode393
* @file varlen_encode393.v
* @author Andrey Filippov
*
* @brief Part of the Huffman encoder for JPEG compressor - variable length encoder.
* 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",
* 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.
* Later implementsed a shortcut - all codes processed in 2 cycles.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* varlen_encode393.v 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.
*
* 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
// 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 (
input clk, // twice frequency - uses negedge inside
input en, // will enable registers. 0 - freeze at once
......
/*
** -----------------------------------------------------------------------------**
** varlen_encode_snglclk.v
**
** Part of the Huffman encoder for JPEG compressor - variable length encoder
**
** Copyright (C) 2002-2015 Elphel, Inc
**
** -----------------------------------------------------------------------------**
** varlen_encode_snglclk.v 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/>.
** -----------------------------------------------------------------------------**
**
*/
/*!
* <b>Module:</b>varlen_encode_snglclk
* @file varlen_encode_snglclk.v
* @author Andrey Filippov
*
* @brief Part of the Huffman encoder for JPEG compressor - variable length encoder.
* Uses single pixel clock rate.
*
* @copyright Copyright (c) 2002-2015 Elphel, Inc.
*
* <b>License:</b>
*
* varlen_encode_snglclk.v 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.
*
* varlen_encode_snglclk.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.
*/
module varlen_encode_snglclk (
input clk, // posedge
......
/*******************************************************************************
* File: fpga_version.vh
* Date:2015-08-26
* Author: Andrey Filippov
* Description: Defining run-time readable FPGA code version
/*!
* @file fpga_version.vh
* @date 2015-08-26
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
parameter FPGA_VERSION = 32'h03930096; // serial, next
// 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%
......
/*******************************************************************************
* Module: tasks_tests_memory
* Date:2015-08-01
* Author: Andrey Filippov
* Description: Top-level tasks for testing memory subsystem functionality
/*!
* @file tasks_tests_memory.vh
* @date 2015-08-01
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
task test_write_levelling; // SuppressThisWarning VEditor - may be unused
begin
......
/*******************************************************************************
* File: x393_cur_params_target.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Memory controller parameters that need adjustment during training
* Target ,pde
* Copyright (c) 2015 Elphel, Inc.
/*!
* @file x393_cur_params_target.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @brief Memory controller parameters that need adjustment during training
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
/*
localparam DLY_LANE0_ODELAY = 80'hd85c1014141814181218;
localparam DLY_LANE0_IDELAY = 72'h2c7a8380897c807b88;
......
/*******************************************************************************
* File: x393_localparams.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Local parameters for simulation of the x393
/*!
* @file x393_localparams.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
// S uppressWarnings VEditor
localparam [1:0] DEFAULT_STATUS_MODE = 3; // auto status on change, increase sequence number
localparam LD_DLY_LANE0_ODELAY = DLY_LD+'h00; // 0x1080
......
/*******************************************************************************
* File: x393_mcontr_encode_cmd.vh
* Date:2015-02-09
* Author: Andrey Filippov
* Description: Functions used to encode memory controller sequences
/*!
* @file x393_mcontr_encode_cmd.vh
* @date 2015-02-09
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
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)
......
/*******************************************************************************
* File: x393_parameters.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Parameters for the x393 (simulation and implementation)
/*!
* @file x393_parameters.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
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
......
/*******************************************************************************
* File: x393_simulation_parameters.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation-specific parameters for the x393
/*!
* @file x393_simulation_parameters.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
, // to continue previous parameter list
parameter integer AXI_RDADDR_LATENCY= 2, // 2, //2, //2,
parameter integer AXI_WRADDR_LATENCY= 1, // 1, //2, //4,
......
/*******************************************************************************
* File: x393_tasks01.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for the x393 (low level)
/*!
* @file x393_tasks01.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
// Low-level tasks
// alternative way to check for empty read queue (without a separate counter)
......
/*******************************************************************************
* File: x393_tasks_afi.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for the AXI_HP (AFI)
/*!
* @file x393_tasks_afi.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
task membridge_setup;
input [28:0] len64; // number of 64-bit words to transfer
......
/*******************************************************************************
* File: x393_tasks_mcntrl_buffers.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for software reading/writing (with test patterns)
/*!
* @file x393_tasks_mcntrl_buffers.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @brief Simulation tasks for software reading/writing (with test patterns)
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +35,7 @@
* 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.
*******************************************************************************/
*/
/*
task write_block_scanline_chn; // S uppressThisWarning VEditor : may be unused
input integer chn; // buffer channel
......
/*******************************************************************************
* File: x393_tasks_mcntrl_en_dis_priority.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for software reading/writing (with test patterns)
/*!
* @file x393_tasks_mcntrl_en_dis_priority.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @brief Simulation tasks for software reading/writing (with test patterns)
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +35,7 @@
* 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.
*******************************************************************************/
*/
task enable_cmda;
input en;
begin
......
/*******************************************************************************
* File: x393_tasks_mcntrl_timing.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for programming I/O delays and other timing
/*!
* @file x393_tasks_mcntrl_timing.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @brief Simulation tasks for programming I/O delays and other timing
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +35,7 @@
* 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.
*******************************************************************************/
*/
task axi_set_same_delays; //SuppressThisWarning VEditor : may be unused
input [7:0] dq_idelay;
......
/*******************************************************************************
* File: x393_tasks_pio_sequences.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for programming memory transaction
/*!
* @file x393_tasks_pio_sequences.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @brief Simulation tasks for programming memory transaction
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +35,7 @@
* 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.
*******************************************************************************/
*/
task enable_reset_ps_pio; // control reset and enable of the PS PIO channel;
input en;
input rst;
......
/*******************************************************************************
* File: x393_tasks_ps_pio.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for mcntrl_ps_pio module (launching software
* - programmed memory transaction sequences)
/*!
* @file x393_tasks_ps_pio.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +35,7 @@
* 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.
*******************************************************************************/
*/
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 [1:0] page; // buffer page number
......
/*******************************************************************************
* File: x393_status.vh
* Date:2015-02-07
* Author: Andrey Filippov
* Description: Simulation tasks for the x393 related to status
/*!
* @file x393_tasks_status.vh
* @date 2015-02-07
* @author Andrey Filippov
*
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +34,7 @@
* 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.
*******************************************************************************/
*/
// CVC bug that is supposed to be already fixed
`ifdef CVC
......
/*******************************************************************************
* Module: buf_xclk_mclk16_393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: move data from xclk to mclk domain
/*!
* <b>Module:</b>buf_xclk_mclk16_393
* @file buf_xclk_mclk16_393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module buf_xclk_mclk16_393(
......
/*******************************************************************************
* Module: event_logger
* Date:2015-07-06
* Author: Andrey Filippov
* Description: top module of the event logger (ported from imu_logger)
/*!
* <b>Module:</b>event_logger
* @file event_logger.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module event_logger#(
......
/*******************************************************************************
* Module: imu_exttime393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: get external timestamp (for image)
/*!
* <b>Module:</b>imu_exttime393
* @file imu_exttime393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
/*
Logs frame synchronization data from other camera (same as frame sync)
......
/*******************************************************************************
* Module: imu_message393
* Date:2015-07-06
* Author: Andrey Filippov
* Description:
/*!
* <b>Module:</b>imu_message393
* @file imu_message393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,16 +40,9 @@
* 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.
*******************************************************************************/
*/
`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 (
input mclk, // system clock, negedge TODO:COnvert to posedge!
input xclk, // half frequency (80 MHz nominal)
......
/*******************************************************************************
* Module: imu_spi393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: SPI interface for the IMU
/*!
* <b>Module:</b>imu_spi393
* @file imu_spi393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module imu_spi393(
......
/*******************************************************************************
* Module: imu_timestamps393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: Acquire timestmps for events
/*!
* <b>Module:</b>imu_timestamps393
* @file imu_timestamps393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module imu_timestamps393(
......
/*******************************************************************************
* Module: logger_arbiter393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: arbiter for the event_logger
/*!
* <b>Module:</b>logger_arbiter393
* @file logger_arbiter393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module logger_arbiter393(
......
/*******************************************************************************
* Module: nmea_decoder393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: Decode some of the NMEA sentences (to compress them)
/*!
* <b>Module:</b>nmea_decoder393
* @file nmea_decoder393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module nmea_decoder393(
......
/*******************************************************************************
* Module: rs232_rcv393
* Date:2015-07-06
* Author: Andrey Filippov
* Description: rs232 receiver
/*!
* <b>Module:</b>rs232_rcv393
* @file rs232_rcv393.v
* @date 2015-07-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module rs232_rcv393(
......
/*******************************************************************************
* Module: cmd_encod_4mux
* Date:2015-02-21
* Author: Andrey Filippov
* Description: 4-to-1 mux to cmbine memory sequences sources
/*!
* <b>Module:</b>cmd_encod_4mux
* @file cmd_encod_4mux.v
* @date 2015-02-21
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_4mux(
......
/*******************************************************************************
* Module: cmd_encod_linear_mux
* Date:2015-01-31
* Author: Andrey Filippov
* Description: Multiplex parameters from multiple channels sharing the same
/*!
* <b>Module:</b>cmd_encod_linear_mux
* @file cmd_encod_linear_mux.v
* @date 2015-01-31
* @author Andrey Filippov
*
* @brief Multiplex parameters from multiple channels sharing the same
* linear command encoders (cmd_encod_linear_rd and cmd_encod_linear_wr)
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
module cmd_encod_linear_mux#(
......
/*******************************************************************************
* Module: cmd_encod_linear_rd
* Date:2015-01-23
* Author: Andrey Filippov
* Description: Command sequencer generator for reading a sequential up to 1KB page
/*!
* <b>Module:</b>cmd_encod_linear_rd
* @file cmd_encod_linear_rd.v
* @date 2015-01-23
* @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
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_linear_rd #(
......
/*******************************************************************************
* Module: cmd_encod_linear_rw
* Date:2015-02-21
* Author: Andrey Filippov
* Description: Combining 2 modules:cmd_encod_linear_rd and cmd_encod_linear_wr
/*!
* <b>Module:</b>cmd_encod_linear_rw
* @file cmd_encod_linear_rw.v
* @date 2015-02-21
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_linear_rw#(
......
/*******************************************************************************
* Module: cmd_encod_linear_wr
* Date:2015-01-23
* Author: Andrey Filippov
* Description: Command sequencer generator for writing a sequential up to 1KB page
/*!
* <b>Module:</b>cmd_encod_linear_wr
* @file cmd_encod_linear_wr.v
* @date 2015-01-23
* @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
*
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_linear_wr #(
......
/*******************************************************************************
* Module: cmd_encod_tiled_32_rd
* Date:2015-02-218
* Author: Andrey Filippov
* Description: Command sequencer generator for reading a tiled area
/*!
* <b>Module:</b>cmd_encod_tiled_32_rd
* @file cmd_encod_tiled_32_rd.v
* @date 2015-02-218
* @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
* and alternating BA (0 to 7). Data will be read in columns 32 bytes wide,
* then proceding to the next column (if >1).
......@@ -10,7 +12,10 @@
* just reading 32 bytes per row instead of the 16 - that eases timing
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -36,7 +41,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
/*
TODO Comments from cmd_encod_tiled_rd, update
......
/*******************************************************************************
* Module: cmd_encod_tiled_32_rw
* Date:2015-02-21
* Author: Andrey Filippov
* Description: Combines cmd_encod_tiled_32_rd and cmd_encod_tiled_32_wr modules
/*!
* <b>Module:</b>cmd_encod_tiled_32_rw
* @file cmd_encod_tiled_32_rw.v
* @date 2015-02-21
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_tiled_32_rw #(
......
/*******************************************************************************
* Module: cmd_encod_tiled_32_wr
* Date:2015-02-19
* Author: Andrey Filippov
* Description: Command sequencer generator for writing a tiled area
/*!
* <b>Module:</b>cmd_encod_tiled_32_wr
* @file cmd_encod_tiled_32_wr.v
* @date 2015-02-19
* @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
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* then proceding to the next column (if >1).
......@@ -10,7 +12,10 @@
* just writing 32 bytes per row instead of the 16 - that eases timing
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -36,7 +41,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
/*
TODO Comments from cmd_encod_tiled_rd, update
......
/*******************************************************************************
* Module: cmd_encod_tiled_mux
* Date:2015-01-31
* Author: Andrey Filippov
* Description: Multiplex parameters from multiple channels sharing the same
/*!
* <b>Module:</b>cmd_encod_tiled_mux
* @file cmd_encod_tiled_mux.v
* @date 2015-01-31
* @author Andrey Filippov
*
* @brief Multiplex parameters from multiple channels sharing the same
* tiled command encoders (cmd_encod_tiled_rd and cmd_encod_tiled_wr)
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -32,7 +37,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
module cmd_encod_tiled_mux #(
......
/*******************************************************************************
* Module: cmd_encod_tiled_rd
* Date:2015-01-23
* Author: Andrey Filippov
* Description: Command sequencer generator for reading a tiled area
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA
/*!
* <b>Module:</b>cmd_encod_tiled_rd
* @file cmd_encod_tiled_rd.v
* @date 2015-01-23
* @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
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* 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,
......@@ -11,8 +15,12 @@
* 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
* 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
* Copyright (c) 2015 Elphel, Inc.
* Seems that actual tile heigt mod 8 should be only 0, 6 or7.
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* 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
* the Free Software Foundation, either version 3 of the License, or
......@@ -38,7 +46,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
/*
Minimal ACTIVATE period =4 Tcm or 10ns, so maximal no-miss rate is Tck=1.25 ns (800 MHz)
......
/*******************************************************************************
* Module: cmd_encod_tiled_rw
* Date:2015-02-21
* Author: Andrey Filippov
* Description: Combines cmd_encod_tiled_rd and cmd_encod_tiled_wr modules
/*!
* <b>Module:</b>cmd_encod_tiled_rw
* @file cmd_encod_tiled_rw.v
* @date 2015-02-21
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmd_encod_tiled_rw #(
......
/*******************************************************************************
* Module: cmd_encod_tiled_wr
* Date:2015-02-19
* Author: Andrey Filippov
* Description: Command sequencer generator for writing a tiled area
* up to 1 kB. Memory is mapped so 8 consecuitive rows have same RA, CA
/*!
* <b>Module:</b>cmd_encod_tiled_wr
* @file cmd_encod_tiled_wr.v
* @date 2015-02-19
* @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
* and alternating BA (0 to 7). Data will be read in columns 16 bytes wide,
* 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,
......@@ -11,8 +15,12 @@
* 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
* 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
* Copyright (c) 2015 Elphel, Inc.
* Seems that actual tile heigt mod 8 should be only 0, 6 or7.
*
* @copyright Copyright (c) 2015 Elphel, Inc.
*
* <b>License:</b>
*
* 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
* the Free Software Foundation, either version 3 of the License, or
......@@ -38,7 +46,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
/*
TODO Comments from cmd_encod_tiled_rd, update
......
/*******************************************************************************
* Module: ddr_refresh
* Date:2014-06-02
* Author: Andrey Filippov
* Description: DDR3 memory refresh request module
/*!
* <b>Module:</b>ddr_refresh
* @file ddr_refresh.v
* @date 2014-06-02
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module ddr_refresh(
......
/*******************************************************************************
* Module: mcntrl393
* Date:2015-01-31
* Author: Andrey Filippov
* Description: Top level memory controller for 393 camera, includes channel buffers
/*!
* <b>Module:</b>mcntrl393
* @file mcntrl393.v
* @date 2015-01-31
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
module mcntrl393 #(
......
/*******************************************************************************
* Module: mcntrl393_test01
* Date:2015-02-06
* Author: Andrey Filippov
* Description: Temporary module to interface mcntrl393 control signals
/*!
* <b>Module:</b>mcntrl393_test01
* @file mcntrl393_test01.v
* @date 2015-02-06
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl393_test01#(
......
/*******************************************************************************
* Module: mcntrl_1kx32r
* Date:2015-02-03
* Author: Andrey Filippov
* Description: Paged buffer for ddr3 controller read channel
/*!
* <b>Module:</b>mcntrl_1kx32r
* @file mcntrl_1kx32r.v
* @date 2015-02-03
* @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller read channel
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl_1kx32r(
......
/*******************************************************************************
* Module: mcntrl_1kx32w
* Date:2015-02-03
* Author: Andrey Filippov
* Description: Paged buffer for ddr3 controller write channel
/*!
* <b>Module:</b>mcntrl_1kx32w
* @file mcntrl_1kx32w.v
* @date 2015-02-03
* @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller write channel
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl_1kx32w(
......
/*******************************************************************************
* Module: mcntrl_buf_rd
* Date:2015-02-03
* Author: Andrey Filippov
* Description: Paged buffer for ddr3 controller read channel
/*!
* <b>Module:</b>mcntrl_buf_rd
* @file mcntrl_buf_rd.v
* @date 2015-02-03
* @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller read channel
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl_buf_rd #(
......
/*******************************************************************************
* Module: mcntrl_buf_wr
* Date:2015-02-03
* Author: Andrey Filippov
* Description: Paged buffer for ddr3 controller write channel
/*!
* <b>Module:</b>mcntrl_buf_wr
* @file mcntrl_buf_wr.v
* @date 2015-02-03
* @author Andrey Filippov
*
* @brief Paged buffer for ddr3 controller write channel
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl_buf_wr #(
......
/*******************************************************************************
* Module: mcntrl_linear_rw
* Date:2015-01-29
* Author: Andrey Filippov
* Description: Organize paged R/W from DDR3 memory in scan-line order
/*!
* <b>Module:</b>mcntrl_linear_rw
* @file mcntrl_linear_rw.v
* @date 2015-01-29
* @author Andrey Filippov
*
* @brief Organize paged R/W from DDR3 memory in scan-line order
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
// TODO: ADD MCNTRL_SCANLINE_FRAME_PAGE_RESET to caller
module mcntrl_linear_rw #(
......
/*******************************************************************************
* Module: mcntrl_ps_pio
* Date:2015-01-27
* Author: Andrey Filippov
* Description: Read/write channels to DDR3 memory with software-programmable
/*!
* <b>Module:</b>mcntrl_ps_pio
* @file mcntrl_ps_pio.v
* @date 2015-01-27
* @author Andrey Filippov
*
* @brief Read/write channels to DDR3 memory with software-programmable
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -31,7 +36,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
`undef DEBUG_FIFO
......
/*******************************************************************************
* Module: mcntrl_tiled_rw
* Date:2015-02-03
* Author: Andrey Filippov
* Description: Organize paged R/W from DDR3 memory in tiled order
/*!
* <b>Module:</b>mcntrl_tiled_rw
* @file mcntrl_tiled_rw.v
* @date 2015-02-03
* @author Andrey Filippov
*
* @brief Organize paged R/W from DDR3 memory in tiled order
* with window support
* Tiles spreading over two different frames is not yet supported (needed for
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -33,7 +38,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module mcntrl_tiled_rw#(
......
/*******************************************************************************
* Module: memctrl16
* Date:2015-01-10
* Author: Andrey Filippov
* Description: 16-channel memory controller
/*!
* <b>Module:</b>memctrl16
* @file memctrl16.v
* @date 2015-01-10
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
//`define use200Mhz 1
......
/*******************************************************************************
* Module: byte_lane
* Date:2014-04-26
* Author: Andrey Filippov
* Description: DDR3 byte lane, including DQS I/O, 8xDQ I/O and DM output
/*!
* <b>Module:</b>byte_lane
* @file byte_lane.v
* @date 2014-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
`include "system_defines.vh"
// minimizing total DQS in delay to match DQ (finedelay stage adds some?)
......
/*******************************************************************************
* Module: cmd_addr
* Date:2014-04-26
* Author: Andrey Filippov
* Description: DDR3 command/address signals
/*!
* <b>Module:</b>cmd_addr
* @file cmd_addr.v
* @date 2014-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`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
......
/*******************************************************************************
* Module: cmda_single
* Date:2014-04-26
* Author: Andrey Filippov
* Description: Single-bit CMD/address output
/*!
* <b>Module:</b>cmda_single
* @file cmda_single.v
* @date 2014-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
module cmda_single #(
......
/*******************************************************************************
* Module: dm_single
* Date:2014-04-26
* Author: Andrey Filippov
* Description: Single-bit DDR3 DQ I/O, same used for DM
/*!
* <b>Module:</b>dm_single
* @file dm_single.v
* @date 2014-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
// ISE 14.7 does not have OBUFT_DCIEN
`include "system_defines.vh"
......
/*******************************************************************************
* Module: dq_single
* Date:2014-04-26
* Author: Andrey Filippov
* Description: Single-bit DDR3 DQ I/O, same used for DM
/*!
* <b>Module:</b>dq_single
* @file dq_single.v
* @date 2014-04-26
* @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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
......@@ -30,7 +35,7 @@
* 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.
*******************************************************************************/
*/
`timescale 1ns/1ps
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