diff options
author | Paul Selkirk <paul@psgd.org> | 2015-11-18 18:16:09 -0500 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2015-11-18 18:58:06 -0500 |
commit | d4db655df6eb65d560edb15171c1390e2e28a1d7 (patch) | |
tree | 0683390aa22b074dcc8b514f75a168e8a3e752ac /core_selector/src/rtl/cipher_selector.v | |
parent | dfb268cf925fa97ffa1729975ffb37dd2a37a2bc (diff) |
Move core_selector config script here from core/platform/novena, remove static core_selector modules.
Diffstat (limited to 'core_selector/src/rtl/cipher_selector.v')
-rw-r--r-- | core_selector/src/rtl/cipher_selector.v | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/core_selector/src/rtl/cipher_selector.v b/core_selector/src/rtl/cipher_selector.v deleted file mode 100644 index a8de37e..0000000 --- a/core_selector/src/rtl/cipher_selector.v +++ /dev/null @@ -1,168 +0,0 @@ -//====================================================================== -// -// cipher_selector.v -// ----------------- -// Top level wrapper that creates the Cryptech coretest system. -// The wrapper contains instances of external interface, coretest -// and the core to be tested. And if more than one core is -// present the wrapper also includes address and data muxes. -// -// -// Authors: Joachim Strombergson, Paul Selkirk, Pavel Shatov -// Copyright (c) 2014-2015, NORDUnet A/S All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// - Neither the name of the NORDUnet nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -//====================================================================== - -module cipher_selector - ( - input wire sys_clk, - input wire sys_rst_n, - input wire sys_ena, - - input wire [13: 0] sys_eim_addr, - input wire sys_eim_wr, - input wire sys_eim_rd, - output wire [31 : 0] sys_read_data, - input wire [31 : 0] sys_write_data, - output wire sys_error - ); - - //---------------------------------------------------------------- - // Address Decoder - //---------------------------------------------------------------- - // upper 6 bits specify core being addressed - wire [ 5: 0] addr_core_num = sys_eim_addr[13: 8]; - // lower 8 bits specify register offset in core - wire [ 7: 0] addr_core_reg = sys_eim_addr[ 7: 0]; - - - //---------------------------------------------------------------- - // List of Available Cores - //---------------------------------------------------------------- - // Comment following lines to exclude cores from implementation. - `define USE_CORE_AES - `define USE_CORE_CHACHA - - - //---------------------------------------------------------------- - // Core Address Table - //---------------------------------------------------------------- - localparam CORE_ADDR_AES = 6'd0; - localparam CORE_ADDR_CHACHA = 6'd1; - - - //---------------------------------------------------------------- - // AES - //---------------------------------------------------------------- - `ifdef USE_CORE_AES - wire enable_aes = sys_ena && (addr_core_num == CORE_ADDR_AES); - wire [31: 0] read_data_aes; - wire error_aes; - - aes aes_inst - ( - .clk(sys_clk), - .reset_n(sys_rst_n), - - .cs(enable_aes & (sys_eim_rd | sys_eim_wr)), - .we(sys_eim_wr), - - .address(addr_core_reg), - .write_data(sys_write_data), - .read_data(read_data_aes), - .error(error_aes) - ); - `endif - - - //---------------------------------------------------------------- - // CHACHA - //---------------------------------------------------------------- - `ifdef USE_CORE_CHACHA - wire enable_chacha = sys_ena && (addr_core_num == CORE_ADDR_CHACHA); - wire [31: 0] read_data_chacha; - wire error_chacha; - - chacha chacha_inst - ( - .clk(sys_clk), - .reset_n(sys_rst_n), - - .cs(enable_chacha & (sys_eim_rd | sys_eim_wr)), - .we(sys_eim_wr), - - .address(addr_core_reg), - .write_data(sys_write_data), - .read_data(read_data_chacha), - .error(error_chacha) - ); - `endif - - - //---------------------------------------------------------------- - // Output (Read Data) Multiplexor - //---------------------------------------------------------------- - reg [31: 0] sys_read_data_mux; - assign sys_read_data = sys_read_data_mux; - reg sys_error_mux; - assign sys_error = sys_error_mux; - - always @* - // - case (addr_core_num) - // - `ifdef USE_CORE_AES - CORE_ADDR_AES: - begin - sys_read_data_mux = read_data_aes; - sys_error_mux = error_aes; - end - `endif - `ifdef USE_CORE_CHACHA - CORE_ADDR_CHACHA: - begin - sys_read_data_mux = read_data_chacha; - sys_error_mux = error_chacha; - end - `endif - // - default: - begin - sys_read_data_mux = {32{1'b0}}; - sys_error_mux = 1; - end - // - endcase - - -endmodule - -//====================================================================== -// EOF cipher_selector.v -//====================================================================== |