URL
https://opencores.org/ocsvn/openverifla/openverifla/trunk
Subversion Repositories openverifla
Compare Revisions
- This comparison shows the changes necessary to convert path
/openverifla/trunk
- from Rev 41 to Rev 42
- ↔ Reverse comparison
Rev 41 → Rev 42
openverifla_2.3/verilog/verifla/send_capture_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/computer_input_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/computer_input_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/computer_input_of_verifla.v (nonexistent)
@@ -1,90 +0,0 @@
-/*
-file: computer_input_of_verifla.v
-license: GNU GPL
-
-Revision history
-- 20180827-1700
-allow only USERCMD_RUN.
-revision date: 2007/Sep/03; author: Laurentiu DUCA
-- USERCMD_RESET
-
-revision date: 2007/Jul/4; author: Laurentiu DUCA
-- v01
-*/
-
-
-module computer_input_of_verifla (clk, rst_l,
- rec_dataH, rec_readyH, user_run);
-// user commands
-parameter USERCMD_RUN = 8'h01;
-// CI_states
-parameter CI_STATES_BITS=4,
- CI_STATE_IDLE=0,
- CI_STATE_START_OF_NEW_CMD=1;
-
-// input
-input clk, rst_l;
-input rec_readyH;
-input [7:0] rec_dataH;
-// output
-output user_run;
-reg user_run;
-// locals
-reg [CI_STATES_BITS-1:0] ci_state, next_ci_state;
-reg [7:0] ci_indata, next_ci_indata;
-wire ci_new_octet_received;
-
-// T(clk)<
openverifla_2.3/verilog/verifla/computer_input_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/u_rec_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/u_rec_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/u_rec_of_verifla.v (nonexistent)
@@ -1,169 +0,0 @@
-
-/*
-Update: Laurentiu Duca, 20180808_1200:
- - consider baud_clk_posedge
-Update: Laurentiu Duca, 20180724_1550:
- - removed "rdy_o <= 1'b0;" from idle state
- and moved to STA_CHECK_START_BIT.
- - sample in the middle of the data bit
- - correct init values and sizes
-*/
-
-/////////////////////////////////////////////////////////////////////
-//// Author: Zhangfeifei ////
-//// ////
-//// Advance Test Technology Laboratory, ////
-//// Institute of Computing Technology, ////
-//// Chinese Academy of Sciences ////
-//// ////
-//// If you encountered any problem, please contact : ////
-//// Email: zhangfeifei@ict.ac.cn or whitewill@opencores.org ////
-//// Tel: +86-10-6256 5533 ext. 5673 ////
-//// ////
-//// Downloaded from: ////
-//// http://www.opencores.org/pdownloads.cgi/list/ucore ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// Copyright (C) 2005-2006 Zhangfeifei ////
-//// zhangfeifei@ict.ac.cn ////
-//// ////
-//// ////
-//// This source file may be used and distributed freely without ////
-//// restriction provided that this copyright statement is not ////
-//// removed from the file and any derivative work contains the ////
-//// original copyright notice and the associated disclaimer. ////
-//// ////
-//// Please let the author know if it is used ////
-//// for commercial purpose. ////
-//// ////
-//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
-//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
-//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
-//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
-//// 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. ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// ////
-//// Date of Creation: 2005.12.3 ////
-//// ////
-//// Version: 0.0.1 ////
-//// ////
-//// Description: rx module of the uart module,data format is ////
-//// 8bits data,1 bits stop bit,and no parity check ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// Change log: ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-
-module u_rec_of_verifla(
- clk_i,rst_i,//system signal
- baud_clk_posedge,
- rxd_i,//serial data in
- rdy_o,data_o //data ready and parallel data out signal
- );
-
- parameter // state difinition
- STA_IDLE = 0,
- STA_CHECK_START_BIT = 1,
- STA_RECEIVE = 2;
-
- input clk_i;
- input rst_i;
- input baud_clk_posedge;
- input rxd_i;
-
- output rdy_o;
- output [7:0] data_o;
-
- reg rdy_o;
- reg [7:0] data_o;
-
- reg [7:0] rsr;//reciving shift register
- reg [3:0] num_of_rec;
-
- reg [1:0] reg_sta;
-
- //the counter to count the clk in
- reg [3:0] count;
- reg count_c;//the carry of count
-
- always @(posedge clk_i or posedge rst_i)
- begin
- if(rst_i)
- begin
- data_o <= 8'b0;
- rdy_o <= 1'b0;
- rsr <= 8'h0;
- num_of_rec <= 4'b0;
- count <= 4'b0;
- count_c <= 1'b0;
- reg_sta <= STA_IDLE;
- end
- else begin
- if(baud_clk_posedge)
- case (reg_sta)
- STA_IDLE:
- begin
- num_of_rec <= 4'd0;
- count <= 4'd0;
- if(!rxd_i)
- reg_sta <= STA_CHECK_START_BIT;//recive a start bit
- else
- reg_sta <= STA_IDLE;
- end
- STA_CHECK_START_BIT:
- begin
- if(count >= 7)
- begin
- count <= 0;
- if(!rxd_i) begin
- //has passed 8 clk and rxd_i is still zero,then start bit has been confirmed
- rdy_o <= 1'b0;
- reg_sta <= STA_RECEIVE;
- end
- else
- reg_sta <= STA_IDLE;
- end
- else begin
- reg_sta <= STA_CHECK_START_BIT;
- count <= count +1;
- end
- end
- STA_RECEIVE:
- begin
- {count_c,count} <= count +1;
- //has passed 16 clk after the last bit has been checked,sampling a bit
- if(count_c)
- begin
- if(num_of_rec <=4'd7)
- begin //sampling the received bit
- rsr <= {rxd_i,rsr[7:1]};
- num_of_rec <= num_of_rec +1;
- reg_sta <= STA_RECEIVE;
- end
- else begin//sampling the stop bit
- //if(rxd_i)//if stop bit exist
- //begin
- data_o <= rsr;
- rdy_o <= 1'b1;
- //end
- reg_sta <= STA_IDLE;
- end
- end
- end
- endcase
- end
- end
-
-endmodule
openverifla_2.3/verilog/verifla/u_rec_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/common_internal_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/common_internal_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/common_internal_verifla.v (nonexistent)
@@ -1,38 +0,0 @@
-
-// Data input width and indentical samples bits must be multiple of 8.
-parameter LA_DATA_INPUT_WORDLEN_BITS=16;
-
-// Trigger
-parameter LA_TRIGGER_VALUE={LA_DATA_INPUT_WORDLEN_BITS{1'b0}},
- LA_TRIGGER_MASK={{(LA_DATA_INPUT_WORDLEN_BITS - 10){1'b0}}, 2'b11, 8'h00},
- LA_TRACE_MASK={LA_DATA_INPUT_WORDLEN_BITS{1'b1}};
-
-parameter LA_MEM_CLEAN_BEFORE_RUN=0;
-parameter LA_IDENTICAL_SAMPLES_BITS=16;
-parameter LA_MEM_WORDLEN_BITS=(LA_DATA_INPUT_WORDLEN_BITS+LA_IDENTICAL_SAMPLES_BITS);
-parameter LA_MEM_WORDLEN_OCTETS=((LA_MEM_WORDLEN_BITS+7)/8);
-parameter LA_MEM_ADDRESS_BITS=6;
-parameter LA_MEM_FIRST_ADDR=0,
- LA_MEM_LAST_ADDR=((1<> 3),
- LA_MEM_LAST_ADDR_BEFORE_TRIGGER=(LA_TRIGGER_MATCH_MEM_ADDR-1);
-parameter LA_MAX_SAMPLES_AFTER_TRIGGER_BITS=26,
- LA_MAX_SAMPLES_AFTER_TRIGGER={1'b0, {(LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1){1'b1}}};
-
-// Identical samples
-parameter LA_MAX_IDENTICAL_SAMPLES=((1 << LA_IDENTICAL_SAMPLES_BITS) - 2); //{LA_IDENTICAL_SAMPLES_BITS{1'b1}};
-
-/*
-Reserved mem words:
- LA_MEM_EMPTY_SLOT which represents an empty and not used memory slot.
-It has sense if LA_MEM_CLEAN_BEFORE_RUN and
- a) when the trigger event arrives before the filling of the full btqueue.
- b) after the trigger event and after capturing LA_MAX_SAMPLES_AFTER_TRIGGER
-*/
-//`define LA_INIT_MEM_AT_RESET
-parameter LA_MEM_EMPTY_SLOT={LA_MEM_WORDLEN_BITS{1'b0}};
-
-//`define DEBUG_LA
openverifla_2.3/verilog/verifla/common_internal_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/top_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/top_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/top_of_verifla.v (nonexistent)
@@ -1,69 +0,0 @@
-/*
-file: top_of_verifla.v
-license: GNU GPL
-Revision history
-revision date: 2007/Sep/03; author: Laurentiu DUCA
-- sys_run: an internal possible run command
-- combined_reset_low which allows the user to reset the monitor
-
-revision date: 2007/Jul/4; author: Laurentiu DUCA
-- v01
-*/
-
-
-module top_of_verifla(clk, rst_l, sys_run, data_in,
- // Transceiver
- uart_XMIT_dataH, uart_REC_dataH
- );
-
-`include "common_internal_verifla.v"
-
-input clk, rst_l, sys_run;
-input [LA_DATA_INPUT_WORDLEN_BITS-1:0] data_in;
-output uart_XMIT_dataH;
-input uart_REC_dataH;
-
-// App. specific.
-wire [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in, mem_port_B_dout;
-wire [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address, mem_port_B_address;
-wire mem_port_A_wen;
-wire user_run;
-wire sc_run, ack_sc_run, sc_done;
-
-// Transceiver
-wire [7:0] xmit_dataH;
-wire xmit_doneH;
-wire xmitH;
-// Receiver
-wire [7:0] rec_dataH;
-wire rec_readyH;
-// Baud
-wire baud_clk_posedge;
-
-uart_of_verifla iUART (clk, rst_l, baud_clk_posedge,
- // Transmitter
- uart_XMIT_dataH, xmitH, xmit_dataH, xmit_doneH,
- // Receiver
- uart_REC_dataH, rec_dataH, rec_readyH);
-
-memory_of_verifla mi (
- .addra(mem_port_A_address), .addrb(mem_port_B_address),
- .clk(clk), .rst_l(rst_l),
- .dina(mem_port_A_data_in), .doutb(mem_port_B_dout),
- .wea(mem_port_A_wen));
-
-computer_input_of_verifla ci (clk, rst_l,
- rec_dataH, rec_readyH, user_run);
-
-monitor_of_verifla mon (clk, rst_l,
- sys_run, user_run, data_in,
- mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
- ack_sc_run, sc_done, sc_run);
-// send_capture_of_verifla must use the same reset as the uart.
-send_capture_of_verifla sc (clk, rst_l, baud_clk_posedge,
- sc_run, ack_sc_run, sc_done,
- mem_port_B_address, mem_port_B_dout,
- xmit_doneH, xmitH, xmit_dataH);
-
-endmodule
-
openverifla_2.3/verilog/verifla/top_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/u_xmit_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/u_xmit_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/u_xmit_of_verifla.v (nonexistent)
@@ -1,157 +0,0 @@
-/*
-Update: Laurentiu Duca, 20180808_1200:
- - consider baud_clk_posedge
-Update: Laurentiu Duca, 20180724_1550:
- - In state STA_TRANS, put num_of_trans <= 4'd8 instead of 7.
- in order to send stop bit.
- - correct init values and sizes
-*/
-
-
-/////////////////////////////////////////////////////////////////////
-//// Author: Zhangfeifei ////
-//// ////
-//// Advance Test Technology Laboratory, ////
-//// Institute of Computing Technology, ////
-//// Chinese Academy of Sciences ////
-//// ////
-//// If you encountered any problem, please contact : ////
-//// Email: zhangfeifei@ict.ac.cn or whitewill@opencores.org ////
-//// Tel: +86-10-6256 5533 ext. 5673 ////
-//// ////
-//// Downloaded from: ////
-//// http://www.opencores.org/pdownloads.cgi/list/ucore ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// Copyright (C) 2005-2006 Zhangfeifei ////
-//// zhangfeifei@ict.ac.cn ////
-//// ////
-//// ////
-//// This source file may be used and distributed freely without ////
-//// restriction provided that this copyright statement is not ////
-//// removed from the file and any derivative work contains the ////
-//// original copyright notice and the associated disclaimer. ////
-//// ////
-//// Please let the author know if it is used ////
-//// for commercial purpose. ////
-//// ////
-//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
-//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
-//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
-//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
-//// 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. ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// ////
-//// Date of Creation: 2005.12.3 ////
-//// ////
-//// Version: 0.0.1 ////
-//// ////
-//// Description: tx module of the uart module,data format is ////
-//// 8bits data,1 bits stop bit,and no parity check ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-//// ////
-//// Change log: ////
-//// ////
-/////////////////////////////////////////////////////////////////////
-
-module u_xmit_of_verifla(
- clk_i,rst_i,//system signal
- baud_clk_posedge,
- data_i,wen_i,//parallel data in and enable signal
- txd_o,//serial data out
- tre_o// ready to transmit flag
- );
-
- parameter // state difinition
- STA_IDLE = 0,
- STA_TRANS = 1,
- STA_FINISH = 2;
-
- input clk_i;
- input rst_i;
- input baud_clk_posedge;
- input [7:0] data_i;
- input wen_i;
-
- output txd_o;
- output tre_o;
-
- reg txd_o;
- reg tre_o;
-
- reg [7:0] tsr;//transmitting shift register
- reg [3:0] num_of_trans;
-
- reg [1:0] reg_sta;
-
- //the counter to count the clk in
- reg [3:0] count;
- reg count_c;//the carry of count
-
- always @(posedge clk_i or posedge rst_i)
- begin
- if(rst_i)
- begin
- tsr <= 8'b0;
- txd_o <= 1'b1;
- tre_o <= 1'b1;
- num_of_trans <= 4'b0;
- count_c <= 1'b0;
- count <= 4'b0;
- reg_sta <= STA_IDLE;
- end
- else begin
- if(baud_clk_posedge)
- case(reg_sta)
- STA_IDLE:
- begin
- num_of_trans <= 4'd0;
- count <= 4'd0;
- count_c <= 1'b0;
- if(wen_i)
- begin
- tsr <= data_i;
- tre_o <= 1'b0;
- txd_o <= 1'b0;// transmit the start bit
- reg_sta <= STA_TRANS;
- end
- else
- reg_sta <= STA_IDLE;
- end
- STA_TRANS:
- begin
- {count_c,count} <= count + 1;
-
- if(count_c)
- begin
- if(num_of_trans <=4'd8)
- begin
- //note ,when num_of_trans==8 ,we transmit the stop bit
- tsr <= {1'b1,tsr[7:1]};
- txd_o <= tsr[0];
- num_of_trans <= num_of_trans+1;
- reg_sta <= STA_TRANS;
- end
- else begin
- txd_o <= 1'b1;
- tre_o <= 1'b1;
- reg_sta <= STA_IDLE;
- end
- end
- end
- endcase
- end
- end
-
-endmodule
openverifla_2.3/verilog/verifla/u_xmit_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/monitor_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/monitor_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/monitor_of_verifla.v (nonexistent)
@@ -1,299 +0,0 @@
-/*
-file: monitor_of_verifla.v
-license: GNU GPL
-Revision history
-20181016-1225
-- LA_TRACE_MASK
-20180827-1700
-- broke mon_run in sys_run and user_run
-- clean memory at user_run
-20180823-1435
-- mon_run_reg
-20180814-1600
-- LA_MEM_CLEAN_BEFORE_RUN is parameter now
-20180808-1700
-- ifdef LA_MEM_CLEAN_BEFORE_RUN
-revision date: 20180730-1500; Laurentiu Duca
-- redesign of mem struct
-- the bt_queue_tail_address is wrote at the end of capture.
-revision date: 2007/Sep/03; author: Laurentiu DUCA
-- the bt_queue_head_address is wrote at the end of capture.
-- zero all memory at a mon_run (if LA_MEM_CLEAN_BEFORE_RUN).
-- note that _at_ means after trigger event and _bt_ means before trigger event
-
-revision date: 2007/Jul/4; author: Laurentiu DUCA
-- v01
-*/
-
-
-module monitor_of_verifla (clk, rst_l,
- sys_run, user_run, data_in,
- mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
- ack_sc_run, sc_done, sc_run);
-
-`include "common_internal_verifla.v"
-
-// MON_states
-parameter
- MON_STATES_BITS=4,
- MON_STATE_IDLE=0,
- MON_STATE_DO_MEM_CLEAN=1,
- MON_STATE_PREPARE_RUN=2,
- MON_STATE_WAIT_TRIGGER_MATCH=3,
- MON_STATE_AFTER_TRIGGER=4,
- MON_STATE_DATA_CAPTURED=5,
- MON_STATE_SC_RUN=6,
- MON_STATE_WAIT_SC_DONE=7;
-
-// input
-input clk, rst_l;
-input [LA_DATA_INPUT_WORDLEN_BITS-1:0] data_in;
-input sys_run, user_run, ack_sc_run, sc_done;
-// output
-output [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address;
-output [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in;
-output mem_port_A_wen;
-output sc_run;
-reg [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address;
-reg [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in;
-reg mem_port_A_wen;
-reg sys_run_reg, sc_run, next_sc_run;
-
-// local
-reg [MON_STATES_BITS-1:0] mon_state, next_mon_state;
-reg [LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1:0]
- next_mon_samples_after_trigger, mon_samples_after_trigger;
-reg [LA_MEM_ADDRESS_BITS-1:0] next_mon_write_address, mon_write_address;
-reg [LA_MEM_ADDRESS_BITS-1:0] next_bt_queue_tail_address, bt_queue_tail_address;
-reg [LA_DATA_INPUT_WORDLEN_BITS-1:0] mon_old_data_in,
- mon_current_data_in; //={LA_DATA_INPUT_WORDLEN_BITS{1'b0}};
-reg [LA_IDENTICAL_SAMPLES_BITS-1:0] mon_clones_nr, next_mon_clones_nr;
-
-
-// Register the input data
-// such that mon_current_data_in is constant the full clock period.
-always @(posedge clk or negedge rst_l)
-begin
- if(~rst_l)
- begin
- mon_old_data_in <= 0;
- mon_current_data_in <= 0;
- sys_run_reg <= 0;
- end
- else begin
- mon_old_data_in <= mon_current_data_in;
- mon_current_data_in <= data_in;
- sys_run_reg <= sys_run;
- end
-end
-
-// set new values
-always @(posedge clk or negedge rst_l)
-begin
- if(~rst_l)
- begin
- mon_state <= MON_STATE_IDLE;
- sc_run <= 0;
- mon_write_address <= LA_MEM_FIRST_ADDR;
- bt_queue_tail_address <= 0;
- mon_samples_after_trigger <= 0;
- mon_clones_nr <= 1;
- end
- else begin
- mon_state <= next_mon_state;
- sc_run <= next_sc_run;
- mon_write_address <= next_mon_write_address;
- bt_queue_tail_address <= next_bt_queue_tail_address;
- mon_samples_after_trigger <= next_mon_samples_after_trigger;
- mon_clones_nr <= next_mon_clones_nr;
- end
-end
-
-
-// continuous assignments
-wire [LA_MEM_ADDRESS_BITS-1:0] one_plus_mon_write_address = (mon_write_address+1);
-wire [LA_IDENTICAL_SAMPLES_BITS-1:0] oneplus_mon_clones_nr = (mon_clones_nr+1);
-wire data_in_changed = ((mon_current_data_in & LA_TRACE_MASK) != (mon_old_data_in & LA_TRACE_MASK));
-wire last_mem_addr_before_trigger = (mon_write_address == LA_MEM_LAST_ADDR_BEFORE_TRIGGER);
-wire not_maximum_mon_clones_nr = (mon_clones_nr < LA_MAX_IDENTICAL_SAMPLES);
-
-
-// mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
-task mon_prepare_run;
-begin
- // we share the same clock as memory.
- mem_port_A_address=LA_MEM_FIRST_ADDR;
- mem_port_A_data_in={{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
- mem_port_A_wen=1;
- next_mon_write_address=LA_MEM_FIRST_ADDR;
- next_mon_clones_nr=2;
- next_mon_state = MON_STATE_WAIT_TRIGGER_MATCH;
-end
-endtask
-
-
-// state machine
-always @(*)
-/*
- mon_state or sys_run_reg
- or ack_sc_run or sc_done or sc_run
- // eliminate warnings
- or mon_write_address or bt_queue_tail_address or mon_samples_after_trigger
- or mon_current_data_in or mon_old_data_in or mon_clones_nr
- or data_in_changed or oneplus_mon_clones_nr or one_plus_mon_write_address
- or not_maximum_mon_clones_nr
- or last_mem_addr_before_trigger)
-*/
-begin
- // implicit
- next_mon_state=mon_state;
- next_sc_run=sc_run;
- next_mon_write_address=mon_write_address;
- next_bt_queue_tail_address=bt_queue_tail_address;
- next_mon_samples_after_trigger=mon_samples_after_trigger;
- next_mon_clones_nr = mon_clones_nr;
- mem_port_A_address=0;
- mem_port_A_data_in=0;
- mem_port_A_wen=0;
-
- // state dependent
- case(mon_state)
- MON_STATE_IDLE:
- begin
- if(sys_run_reg || user_run)
- begin
- if(LA_MEM_CLEAN_BEFORE_RUN || user_run) begin
- next_mon_write_address=LA_MEM_FIRST_ADDR;
- next_mon_state=MON_STATE_DO_MEM_CLEAN;
- end else
- mon_prepare_run;
- end
- else
- next_mon_state=MON_STATE_IDLE;
- end
-
- MON_STATE_DO_MEM_CLEAN:
- begin
- mem_port_A_address=mon_write_address;
- mem_port_A_data_in=LA_MEM_EMPTY_SLOT;
- mem_port_A_wen=1;
- if(mon_write_address < LA_MEM_LAST_ADDR)
- begin
- next_mon_write_address=mon_write_address+1;
- next_mon_state = MON_STATE_DO_MEM_CLEAN;
- end
- else
- // at the new posedge clock, will clean memory at its last address
- next_mon_state = MON_STATE_PREPARE_RUN;
- end
-
- MON_STATE_PREPARE_RUN:
- begin
- mon_prepare_run;
- end
-
- MON_STATE_WAIT_TRIGGER_MATCH:
- begin
- // circular queue
- if((mon_current_data_in & LA_TRIGGER_MASK) !=
- (LA_TRIGGER_VALUE & LA_TRIGGER_MASK))
- begin
- next_mon_state = MON_STATE_WAIT_TRIGGER_MATCH;
- mem_port_A_wen = 1;
- mem_port_A_address = data_in_changed ?
- (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address) :
- (not_maximum_mon_clones_nr ? mon_write_address :
- (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address));
- mem_port_A_data_in = data_in_changed ?
- {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
- (not_maximum_mon_clones_nr ? {mon_clones_nr, mon_current_data_in} :
- {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
- next_mon_clones_nr = data_in_changed ? 2 :
- (not_maximum_mon_clones_nr ? oneplus_mon_clones_nr : 2);
- next_mon_write_address = data_in_changed ?
- (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR: one_plus_mon_write_address) :
- (not_maximum_mon_clones_nr ? mon_write_address :
- (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address));
- end
- else begin
- // trigger matched
- next_mon_state=MON_STATE_AFTER_TRIGGER;
- mem_port_A_address=LA_TRIGGER_MATCH_MEM_ADDR;
- mem_port_A_data_in = {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, mon_current_data_in};
- mem_port_A_wen=1;
- next_mon_write_address=LA_TRIGGER_MATCH_MEM_ADDR;
- next_mon_clones_nr=2;
- next_bt_queue_tail_address = mon_write_address;
- next_mon_samples_after_trigger=1;
- end
- end
-
- MON_STATE_AFTER_TRIGGER:
- begin
- if((mon_samples_after_trigger < LA_MAX_SAMPLES_AFTER_TRIGGER) &&
- (mon_write_address < LA_MEM_LAST_ADDR))
- begin
- mem_port_A_wen = 1;
- mem_port_A_address = data_in_changed ? one_plus_mon_write_address :
- (not_maximum_mon_clones_nr ? mon_write_address : one_plus_mon_write_address);
- mem_port_A_data_in = data_in_changed ? {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
- (not_maximum_mon_clones_nr ? {mon_clones_nr, mon_current_data_in} :
- {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
- next_mon_clones_nr = data_in_changed ? 2 :
- (not_maximum_mon_clones_nr ? oneplus_mon_clones_nr : 2);
- next_mon_write_address = data_in_changed ? one_plus_mon_write_address :
- (not_maximum_mon_clones_nr ? mon_write_address : one_plus_mon_write_address);
- next_mon_samples_after_trigger=mon_samples_after_trigger+1;
- next_mon_state=MON_STATE_AFTER_TRIGGER;
- end
- else begin
- mem_port_A_wen=0;
- next_mon_state=MON_STATE_DATA_CAPTURED;
- end
- end
-
- MON_STATE_DATA_CAPTURED:
- begin
- // Save bt_queue_tail_address
- mem_port_A_address = LA_BT_QUEUE_TAIL_ADDRESS;
- mem_port_A_data_in =
- {{(LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS){1'b0}},
- bt_queue_tail_address};
- mem_port_A_wen = 1;
- next_mon_state=MON_STATE_SC_RUN;
- end
-
- MON_STATE_SC_RUN:
- begin
- next_mon_state=MON_STATE_WAIT_SC_DONE;
- next_sc_run=1;
- end
- MON_STATE_WAIT_SC_DONE:
- begin
- // sc_run must already be 1, when entering state MON_STATE_SEND_CAPTURE.
- if(ack_sc_run)
- next_sc_run=0;
- if((sc_run == 0) && (sc_done))
- next_mon_state=MON_STATE_IDLE;
- else
- next_mon_state=MON_STATE_WAIT_SC_DONE;
- end
-
-
- default: // should never get here
- begin
- next_mon_state=4'bxxxx;
- next_sc_run=1'bx;
- next_mon_write_address={LA_MEM_ADDRESS_BITS{1'bx}};
- next_bt_queue_tail_address={(LA_MEM_ADDRESS_BITS){1'bx}};
- next_mon_samples_after_trigger={LA_MAX_SAMPLES_AFTER_TRIGGER_BITS{1'bx}};
- next_mon_clones_nr={LA_IDENTICAL_SAMPLES_BITS{1'bx}};
- mem_port_A_address={LA_MEM_ADDRESS_BITS{1'bx}};
- mem_port_A_data_in={LA_MEM_WORDLEN_BITS{1'bx}};
- mem_port_A_wen=1'bx;
- end
- endcase
-end
-
-
-endmodule
openverifla_2.3/verilog/verifla/monitor_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/memory_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/memory_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/memory_of_verifla.v (nonexistent)
@@ -1,69 +0,0 @@
-/*
-20180814-1600
-- LA_MEM_CLEAN_BEFORE_RUN is not used here anymore;
-LA_INIT_MEM_AT_RESET is used instead.
-20180808-1700
-- ifdef LA_MEM_CLEAN_BEFORE_RUN
-Author: Laurentiu Duca
-License: GNU GPL
-*/
-
-module memory_of_verifla (
- clk, rst_l, //clkb,
- addra, wea, dina, addrb, doutb
-);
-
-`include "common_internal_verifla.v"
-
-input rst_l;
-input clk;
-//input clkb;
-input wea;
-input [LA_MEM_ADDRESS_BITS-1:0] addra;
-input [LA_MEM_ADDRESS_BITS-1:0] addrb;
-output [LA_MEM_WORDLEN_BITS-1:0] doutb;
-input [LA_MEM_WORDLEN_BITS-1:0] dina;
-
-reg [LA_MEM_WORDLEN_BITS-1:0] mem[LA_MEM_LAST_ADDR:0];
-
-//assign doutb = mem[addrb];
-// This works too as a consequence of send_capture_of_verifla architecture.
-reg [LA_MEM_WORDLEN_BITS-1:0] doutb;
-always @(posedge clk or negedge rst_l)
-if(~rst_l)
- doutb <= LA_MEM_EMPTY_SLOT;
-else
- doutb <= mem[addrb];
-
-`ifndef LA_INIT_MEM_AT_RESET
-always @(posedge clk)
-begin
- if(wea) begin
- mem[addra] <= dina;
- end
-end
-`else
-//reg [LA_MEM_WORDLEN_BITS-1:0] i;
-always @(posedge clk or negedge rst_l)
-begin
- if(~rst_l) begin:RESET_SECTON
- integer i;
- for(i=0; i<=LA_MEM_LAST_ADDR; i=i+1)
- mem[i] <= LA_MEM_EMPTY_SLOT;
- end else begin
- if(wea) begin
- mem[addra] <= dina;
- end
- end
-end
-`endif
-
-initial begin:INIT_SECTION
- integer i;
- for(i=0; i<=LA_MEM_LAST_ADDR; i=i+1)
- mem[i] <= LA_MEM_EMPTY_SLOT;
- //$readmemh("mem2018-2.mif", mem);
-end
-
-endmodule
-
openverifla_2.3/verilog/verifla/memory_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/single_pulse_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/single_pulse_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/single_pulse_of_verifla.v (nonexistent)
@@ -1,83 +0,0 @@
-// Update: 20180814_1555, author: Laurentiu Duca
-// User readable form.
-// Create Date: 16:17:26 02/23/2007
-// Additional Comments: single pulse from a multi-periods-contiguos pulse
-// Author: Laurentiu Duca
-// License: GNU GPL
-
-`timescale 1ns / 1ps
-
-module single_pulse_of_verifla(clk, rst_l, ub, ubsing);
-input clk, rst_l;
-input ub;
-output ubsing;
-
-
-reg next_state, state;
-reg ubsing_reg, next_ubsing_reg;
-
-assign ubsing = ubsing_reg;
-
-always @(posedge clk or negedge rst_l)
-begin
- if (~rst_l) begin
- state <= 0;
- ubsing_reg <= 0;
- end else begin
- state <= next_state;
- ubsing_reg <= next_ubsing_reg;
- end
-end
-
-always @(*)
-begin
- next_state <= state;
- next_ubsing_reg <= 0;
- case (state)
- 0: if (ub == 1) begin
- next_state <= 1;
- next_ubsing_reg <= 1;
- end
- 1: if (ub == 0)
- next_state <= 0;
- endcase
-end
-
-
-/*
-Truth table
-====
-before (posedge clk) | after (posedge clk)
-ub / state(q1q0) | state(q1q0) / ubsing
-0 / 00 | 00 / 0
-1 / 00 | 01 / 1
-x / 01 | 10 / 0
-0 / 10 | 00 / 0
-1 / 10 | 10 / 0
-
-Notes:
-- works only if the (posedge ub) comes 2 clk periods after the prevoius (negedge ub).
-- after rst_l, ub can be either 0 or 1.
-*/
-
-/*
-reg [1:0] q;
-assign ubsing = q[0];
-
-always @ (posedge clk or negedge rst_l)
-begin
-
-if(~rst_l)
-begin
- q[0] <= 0;
- q[1] <= 0;
-end
-else
-begin
- q[0] <= ~q[0] && ub && ~q[1];
- q[1] <= q[0] || (~q[0] && ub && q[1]);
-end
-end
-*/
-
-endmodule
openverifla_2.3/verilog/verifla/single_pulse_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/inc_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/inc_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/inc_of_verifla.v (nonexistent)
@@ -1,17 +0,0 @@
-parameter CLOCK_FREQUENCY = 50000000;
-// If CLOCK_FREQUENCY < 50 MHz then BAUDRATE must be < 115200 bps (for example 9600).
-parameter BAUDRATE = 115200;
-
-parameter T2_div_T1_div_2 = CLOCK_FREQUENCY / (BAUDRATE * 16 * 2);
-// Assert: BAUD_COUNTER_SIZE >= log2(T2_div_T1_div_2) bits
-parameter BAUD_COUNTER_SIZE = 15;
-//`define DEBUG
-/*
-1s ... 50000000 T1
-1bit ... 16 T2
-1s .. 115200 bits
-=>
-1s .. 115200 * 16 T2
-
-T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
-*/
openverifla_2.3/verilog/verifla/inc_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/baud_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/baud_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/baud_of_verifla.v (nonexistent)
@@ -1,45 +0,0 @@
-
-module baud_of_verifla(
- sys_clk,
- sys_rst_l,
- baud_clk_posedge
- );
-
-
-`include "inc_of_verifla.v"
-
-
-input sys_clk;
-input sys_rst_l;
-output baud_clk_posedge;
-reg baud_clk;
-reg baud_clk_posedge;
-
-reg [BAUD_COUNTER_SIZE-1:0] counter=0; //{BAUD_COUNTER_SIZE{1'b0}};
-
-always @(posedge sys_clk or negedge sys_rst_l)
-begin
- if(~sys_rst_l) begin
- baud_clk <= 0;
- baud_clk_posedge <= 0;
- counter <= 0;
- end else if (counter < T2_div_T1_div_2) begin
- counter <= counter + 1;
- baud_clk <= baud_clk;
- baud_clk_posedge <= 0;
- end else begin
- if(~baud_clk) // baud_clk will become 1
- baud_clk_posedge <= 1;
- counter <= 0;
- baud_clk <= ~baud_clk;
- end
-end
-
-/*
-reg [2:0] baud_vec=3'b000;
-always @(posedge clk) baud_vec = {baud_vec[1:0], baud_clk};
-wire baud_clk_posedge=(baud_vec[2:1]=2'b01;
-wire baud_clk_negedge=(baud_vec[2:1]=2'b10;
-*/
-
-endmodule
openverifla_2.3/verilog/verifla/baud_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/verifla/uart_of_verifla.v
===================================================================
--- openverifla_2.3/verilog/verifla/uart_of_verifla.v (revision 41)
+++ openverifla_2.3/verilog/verifla/uart_of_verifla.v (nonexistent)
@@ -1,101 +0,0 @@
-/*
-Update: Laurentiu Duca, 20180808_1200:
- - consider baud_clk_posedge
-*/
-module uart_of_verifla ( sys_clk,
- sys_rst_l,
- baud_clk_posedge,
-
- // Transmitter
- uart_XMIT_dataH,
- xmitH,
- xmit_dataH,
- xmit_doneH,
-
- // Receiver
- uart_REC_dataH,
- rec_dataH,
- rec_readyH
- );
-
-input sys_clk;
-input sys_rst_l;
-output baud_clk_posedge;
-
-// Trasmitter
-output uart_XMIT_dataH;
-input xmitH;
-input [7:0] xmit_dataH;
-output xmit_doneH;
-
-// Receiver
-input uart_REC_dataH;
-output [7:0] rec_dataH;
-output rec_readyH;
-
-wire baud_clk_posedge;
-wire [7:0] rec_dataH;
-wire rec_readyH;
-
-
-
-// Instantiate the Transmitter
-u_xmit_of_verifla txd1 (
- .clk_i(sys_clk),
- .rst_i(!sys_rst_l),
- .baud_clk_posedge(baud_clk_posedge),
- .data_i(xmit_dataH),
- .wen_i(xmitH),
- .txd_o(uart_XMIT_dataH),
- .tre_o(xmit_doneH)
- );
-/*
-u_xmit iXMIT( .sys_clk(baud_clk),
- .sys_rst_l(sys_rst_l),
-
- .uart_xmitH(uart_XMIT_dataH),
- .xmitH(xmitH),
- .xmit_dataH(xmit_dataH),
- .xmit_doneH(xmit_doneH)
- );
-*/
-
-// Instantiate the Receiver
-u_rec_of_verifla rxd1(
- .clk_i(sys_clk),
- .rst_i(!sys_rst_l),//system signal
- .baud_clk_posedge(baud_clk_posedge),
- .rxd_i(uart_REC_dataH),//serial data in
- .rdy_o (rec_readyH), .data_o(rec_dataH) //data ready and parallel data out signal
- );
-/*
-u_rec iRECEIVER (// system connections
- .sys_rst_l(sys_rst_l),
- .sys_clk(baud_clk),
- // uart
- .uart_dataH(uart_REC_dataH),
- .rec_dataH(rec_dataH),
- .rec_readyH(rec_readyH)
- );
-*/
-
-// Instantiate the Baud Rate Generator
-
-baud_of_verifla baud1( .sys_clk(sys_clk),
- .sys_rst_l(sys_rst_l),
- .baud_clk_posedge(baud_clk_posedge)
- );
-
-/*
-reg [2:0] baud_clk_vec=0;
-always @(posedge sys_clk or negedge sys_rst_l)
-begin
- if(~sys_rst_l)
- baud_clk_vec = 0;
- else
- baud_clk_vec = {baud_clk_vec[1:0], baud_clk};
-end
-wire baud_clk_posedge;
-assign baud_clk_posedge=baud_clk_vec[2:1]==2'b01;
-*/
-endmodule
openverifla_2.3/verilog/verifla/uart_of_verifla.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/keyboard-driver/keyboard_driver_test.v
===================================================================
--- openverifla_2.3/verilog/keyboard-driver/keyboard_driver_test.v (revision 41)
+++ openverifla_2.3/verilog/keyboard-driver/keyboard_driver_test.v (nonexistent)
@@ -1,90 +0,0 @@
-`timescale 1ns / 1ps
-module keyboard_driver_test(kbd_key);
-
-`include "../verifla/common_internal_verifla.v"
-
-// This test module is wrote
-// in the following scenario: the driver is on the FPGA and the keyboard
-// is attached to the FPGA development board
-
-// Declaration
-output [7:0] kbd_key;
-wire [7:0] kbd_key;
-// This signals must explicitly added to the simulation.
-// For debugging purposes, also add the register named "i" from the keyboard driver
-reg reset, clk;
-reg kbd_clk, kbd_data_line;
-wire uart_XMIT_dataH;
-reg uart_REC_dataH=1;
-
-reg [64:0] i;
-
-keyboard kd (kbd_data_line, kbd_clk, kbd_key,
- clk, reset,
- //top_of_verifla transceiver
- uart_XMIT_dataH, uart_REC_dataH
-);
-
-always begin
- clk = 0;
- #5;
- clk = 1;
- #5;
-end
-
-// Reset the driver by using the reset button of the FPGA board.
-initial begin
- $dumpfile("kbd.vcd");
- $dumpvars;
- reset = 0;
- #10;
- reset = 1;
- #10;
- reset = 0;
-end
-
-// Now, simulate the keyboard.
-// Consider the keyboard clock period to be about 10 units.
-initial begin
- // At the begining, the line is idle for some periods.
- kbd_clk=1; kbd_data_line=1; #2050; #2050;
-
- // When a key is pressed, the keyboard sends its scan code
- // on the data line. For the 'a' key, the scan code is 1Ch=00011100b.
- // The order is LSb first, so the bits are sent in the following order: 00111000.
- // Simulate pressing the 'a' key.
- // Send start bit.
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- // Send the scan code
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
- // Send the parity bit which is '1' for the 'a' key.
- kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
- // Send the stop bit.
- kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
- // Put the line idle for two periods.
- kbd_clk=1; kbd_data_line=1; #2050; #2050;
- #1000;
- // When the 'a' key - that is now pressed,
- // will be released, then the keyboard will send F0h, 1Ch.
- // We do not simulate this because the process is similar.
-
-`ifdef DEBUG_LA
- //$display("value: %b", {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, {LA_DATA_INPUT_WORDLEN_BITS{1'b0}}});
- for(i = 0; i <= LA_MEM_LAST_ADDR; i = i + 1) begin
- //$display("i=%d m2[i]=%d m1[i]=%b", i, kd.verifla.mi.m2[i], kd.verifla.mi.m1[i]);
- $display("%d %h %h %h %h", i, kd.verifla.mi.mem[i][31:24], kd.verifla.mi.mem[i][22:16],
- kd.verifla.mi.mem[i][15:8], kd.verifla.mi.mem[i][7:0]);
- end
- //$display("m[%d]=%d", LA_MEM_LAST_ADDR, kd.verifla.mi.mem[LA_MEM_LAST_ADDR]);
-`endif
- $stop;
-end
-
-endmodule
openverifla_2.3/verilog/keyboard-driver/keyboard_driver_test.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/keyboard-driver/keyboard.v
===================================================================
--- openverifla_2.3/verilog/keyboard-driver/keyboard.v (revision 41)
+++ openverifla_2.3/verilog/keyboard-driver/keyboard.v (nonexistent)
@@ -1,81 +0,0 @@
-module keyboard(kbd_data_line, kbd_clk, kbd_key,
- clk, reset,
- //top_of_verifla transceiver
- uart_XMIT_dataH, uart_REC_dataH
-);
-
-
-input clk, reset;
-//top_of_verifla transceiver
-input uart_REC_dataH;
-output uart_XMIT_dataH;
-
-// App. specific
-input kbd_data_line, kbd_clk;
-output [7:0] kbd_key; // register for storing keyboard data
-
-reg [7:0] kbd_key;
-reg [3:0] i; // initial value needs to be not equal to 0 through 7. set initial to 10.
-
-wire negedge_kbd_clk;
-
-
-// This is the keyboard driver logic (fsm).
-always @ (posedge clk or posedge reset)
-begin
- if(reset)
- begin
- i=10;
- kbd_key=8'h0; //{8'b00010010};//8'h0;
- end
- else begin
- if(negedge_kbd_clk)
- begin
- if ((i >= 0) && (i <= 7))
- // If i is pointing to a bit of data let us keep it.
- begin
- kbd_key = {kbd_data_line, kbd_key[7:1]};
- i = i + 1;
- end
- else if ((i == 8) || (i == 9))
- // Otherwise if i is pointing to the parity bit or the stop bit let us ignore it.
- begin
- i = i + 1;
- end
- else // Else we have a start bit
- begin
- i = 0;
- end
- end
- end
-end
-
-
-reg [2:0] kbd_clk_buf=3'b000;
-always @ (posedge clk) kbd_clk_buf={kbd_clk_buf[1:0], kbd_clk};
-assign negedge_kbd_clk = kbd_clk_buf[2:1]==2'b10;
-
-
-// Simple counter
-reg [5:0] cnt=0;
-always @(posedge clk or posedge reset)
-begin
- if(reset)
- cnt = 0;
- else
- if(negedge_kbd_clk)
- cnt = cnt+1;
-end
-
-// VeriFLA
-top_of_verifla verifla (.clk(clk), .rst_l(!reset), .sys_run(1'b1),
- .data_in({cnt, kbd_data_line, kbd_clk, kbd_key}),
- //{6'b0, kbd_data_line, kbd_clk, kbd_key},
- // Transceiver
- .uart_XMIT_dataH(uart_XMIT_dataH), .uart_REC_dataH(uart_REC_dataH));
-
-endmodule
-
-// Local Variables:
-// verilog-library-directories:(".", "../verifla")
-// End:
openverifla_2.3/verilog/keyboard-driver/keyboard.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/verilog/keyboard-driver/keyboard.ucf
===================================================================
--- openverifla_2.3/verilog/keyboard-driver/keyboard.ucf (revision 41)
+++ openverifla_2.3/verilog/keyboard-driver/keyboard.ucf (nonexistent)
@@ -1,28 +0,0 @@
-#NET "switch[0]" LOC="L13";
-#NET "switch[1]" LOC="L14";
-#NET "switch[2]" LOC="H18";
-#NET "switch[3]" LOC="N17";
-
-NET "clk" LOC = "C9";
-NET "reset" LOC = "L13";
-
-NET "kbd_data_line" LOC = "G13";
-NET "kbd_clk" LOC = "G14";
-
-#NET "J1_0" LOC = "N15";
-#NET "J1_1" LOC = "N14";
-#NET "J1_2" LOC = "E15";
-#NET "J1_3" LOC = "V7";
-
-#leds
-NET "kbd_key[0]" LOC="D4";
-NET "kbd_key[1]" LOC="C3";
-NET "kbd_key[2]" LOC="D6";
-NET "kbd_key[3]" LOC="E6";
-NET "kbd_key[4]" LOC="D13";
-NET "kbd_key[5]" LOC="A7";
-NET "kbd_key[6]" LOC="G9";
-NET "kbd_key[7]" LOC="A8";
-
-NET "uart_REC_dataH" LOC = "R13";
-NET "uart_XMIT_dataH" LOC = "P13";
openverifla_2.3/verilog/keyboard-driver/keyboard.ucf
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/baud_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/baud_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/baud_of_verifla.vhd (nonexistent)
@@ -1,67 +0,0 @@
--- 20180816-1450
--- baud rate generator
--- author: Laurentiu Duca
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
-use ieee.std_logic_unsigned.all;
-use work.inc_of_verifla.all;
-
------------------------------------------------------
-
-entity baud_of_verifla is
-port( sys_clk, sys_rst_l:in std_logic;
- baud_clk_posedge: out std_logic
-);
-end baud_of_verifla;
-
------------------------------------------------------
-
-architecture baud_of_verifla_arch of baud_of_verifla is
-
- -- This were moved to inc_of_verifla.vhd
- --constant CLOCK_FREQUENCY: integer := 50000000;
- --constant BPS: integer := 115200;
- -- 1s ... 50000000 T1
- -- 1bit ... 16 T2
- -- 1s .. 115200 bits
- -- =>
- -- 1s .. 115200 * 16 T2
- --
- -- T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
- --constant T2_div_T1_div_2: integer := (CLOCK_FREQUENCY / (BPS * 16 * 2));
- -- COUNTER_SIZE = log2(T2_T1_div_2) bits
- --constant BAUD_COUNTER_SIZE: integer := 15;
-
- signal counter: std_logic_vector((BAUD_COUNTER_SIZE-1) downto 0);
- signal baud_clk, baud_clk_posedge_reg: std_logic;
-
-begin
-
- baud_clk_posedge <= baud_clk_posedge_reg;
-
- state_reg: process(sys_clk, sys_rst_l)
- begin
- if (sys_rst_l='0') then
- baud_clk <= '0';
- baud_clk_posedge_reg <= '0';
- counter <= std_logic_vector(to_unsigned(0, BAUD_COUNTER_SIZE)); --x"00000000";
- elsif (rising_edge(sys_clk)) then
- if (counter < std_logic_vector(to_unsigned(T2_div_T1_div_2, BAUD_COUNTER_SIZE))) then
- counter <= counter + std_logic_vector(to_unsigned(1, BAUD_COUNTER_SIZE));
- baud_clk <= baud_clk;
- baud_clk_posedge_reg <= '0';
- else
- if (baud_clk = '0') then
- baud_clk_posedge_reg <= '1';
- end if;
- counter <= std_logic_vector(to_unsigned(0, BAUD_COUNTER_SIZE));
- baud_clk <= not(baud_clk);
- end if;
- end if;
- end process;
-
-end baud_of_verifla_arch;
\ No newline at end of file
openverifla_2.3/vhdl/verifla/baud_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/uart_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/uart_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/uart_of_verifla.vhd (nonexistent)
@@ -1,50 +0,0 @@
--- uart_of_verifla
--- date: 20180816_1740
--- author: Laurentiu Duca
--- license: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
------------------------------------------------------
-
-entity uart_of_verifla is
-port( sys_clk, sys_rst_l: in std_logic;
- baud_clk_posedge: out std_logic;
- uart_XMIT_dataH: out std_logic;
- xmitH: in std_logic;
- xmit_dataH: in std_logic_vector(7 downto 0);
- xmit_doneH: out std_logic;
- uart_REC_dataH: in std_logic;
- rec_dataH: out std_logic_vector(7 downto 0);
- rec_readyH: out std_logic
-);
-end uart_of_verifla;
-
------------------------------------------------------
-
-architecture uart_of_verifla_arch of uart_of_verifla is
-
- signal sys_rst: std_logic;
- signal baud_clk_posedge_wire: std_logic;
-
-begin
- sys_rst <= not sys_rst_l;
- baud_clk_posedge <= baud_clk_posedge_wire;
-
- txd1: entity work.u_xmit_of_verifla(u_xmit_of_verifla_arch)
- port map(clk_i => sys_clk, rst_i =>sys_rst, baud_clk_posedge => baud_clk_posedge_wire,
- data_i => xmit_dataH, wen_i => xmitH, txd_o => uart_XMIT_dataH, tre_o => xmit_doneH);
-
- rxd1: entity work.u_rec_of_verifla(u_rec_of_verifla_arch)
- port map(clk_i => sys_clk, rst_i => sys_rst, baud_clk_posedge => baud_clk_posedge_wire,
- rxd_i => uart_REC_dataH, rdy_o => rec_readyH, data_o => rec_dataH);
-
- baud1: entity work.baud_of_verifla(baud_of_verifla_arch)
- port map(sys_clk => sys_clk, sys_rst_l => sys_rst_l, baud_clk_posedge => baud_clk_posedge_wire);
-
-end uart_of_verifla_arch;
openverifla_2.3/vhdl/verifla/uart_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/send_capture_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/send_capture_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/send_capture_of_verifla.vhd (nonexistent)
@@ -1,130 +0,0 @@
--- 20180820-1740
--- Author: Laurentiu Duca
--- License: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-use work.common_internal_verifla.all;
-
------------------------------------------------------
-
-entity send_capture_of_verifla is
- port (clk, rst_l, baud_clk_posedge: in std_logic;
- sc_run: in std_logic;
- ack_sc_run, sc_done: out std_logic;
- mem_port_B_address: out std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- mem_port_B_dout: in std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
- xmit_doneH: in std_logic;
- xmitH: out std_logic;
- xmit_dataH: out std_logic_vector(7 downto 0));
-end send_capture_of_verifla;
-
------------------------------------------------------
-
-architecture send_capture_of_verifla_arch of send_capture_of_verifla is
-
- constant LA_MEM_LAST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR, LA_MEM_ADDRESS_BITS));
- constant USERCMD_RESET: std_logic_vector(7 downto 0) :=x"00";
- constant USERCMD_RUN: std_logic_vector(7 downto 0) :=x"01";
- type state_type is (SC_STATE_IDLE, SC_STATE_ACK_SC_RUN,
- SC_STATE_SET_MEMADDR_TO_READ_FROM, SC_STATE_GET_MEM_OUTPUT_DATA,
- SC_STATE_SEND_OCTET, SC_STATE_WAIT_OCTET_SENT, SC_STATE_WORD_SENT);
-
- signal sc_state, next_sc_state: state_type;
- signal sc_current_address, next_sc_current_address: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- signal sc_octet_id, next_sc_octet_id:std_logic_vector(LA_MEM_WORDLEN_OCTETS-1 downto 0);
- signal sc_word_bits, next_sc_word_bits: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
-
-begin
-
- -- set up next value
- state_reg: process(clk, rst_l)
- begin
- if (rst_l='0') then
- sc_state<=SC_STATE_IDLE;
- sc_current_address<=(others => '0');
- sc_word_bits<=(others => '0');
- sc_octet_id<= (others => '0');
- elsif (rising_edge(clk)) then
- if (baud_clk_posedge = '1') then
- sc_state <= next_sc_state;
- sc_current_address <= next_sc_current_address;
- sc_word_bits <= next_sc_word_bits;
- sc_octet_id <= next_sc_octet_id;
- end if;
- end if;
- end process;
-
- -- state machine
- comb_logic: process(sc_state, sc_run, xmit_doneH,
- sc_current_address, sc_word_bits, sc_octet_id, mem_port_B_dout)
- begin
- -- implicit
- next_sc_state<=sc_state;
- ack_sc_run<='0';
- sc_done<='0';
- xmit_dataH<=(others => '0');
- xmitH<='0';
- mem_port_B_address<=sc_current_address;
- next_sc_current_address<=sc_current_address;
- next_sc_word_bits<=sc_word_bits;
- next_sc_octet_id<=sc_octet_id;
- case sc_state is
- when SC_STATE_IDLE =>
- if(sc_run = '1') then
- next_sc_state <= SC_STATE_ACK_SC_RUN;
- next_sc_current_address <= LA_MEM_LAST_ADDR_SLV;
- else
- next_sc_state <= SC_STATE_IDLE;
- end if;
- when SC_STATE_ACK_SC_RUN =>
- ack_sc_run <= '1';
- next_sc_state <= SC_STATE_SET_MEMADDR_TO_READ_FROM;
- when SC_STATE_SET_MEMADDR_TO_READ_FROM =>
- mem_port_B_address <= sc_current_address;
- -- next clock cycle we have memory dout of our read.
- next_sc_state <= SC_STATE_GET_MEM_OUTPUT_DATA;
- when SC_STATE_GET_MEM_OUTPUT_DATA =>
- next_sc_word_bits <= mem_port_B_dout;
- -- LSB first
- next_sc_octet_id <= (others => '0');
- next_sc_state <= SC_STATE_SEND_OCTET;
- when SC_STATE_SEND_OCTET =>
- xmit_dataH <= sc_word_bits(7 downto 0);
- next_sc_word_bits <= x"00" & sc_word_bits(LA_MEM_WORDLEN_BITS-1 downto 8);
- -- shift_right(unsigned(sc_word_bits),8);
- xmitH <= '1';
- next_sc_octet_id <= std_logic_vector(to_unsigned(
- to_integer(unsigned(sc_octet_id))+1, LA_MEM_WORDLEN_OCTETS));
- next_sc_state <= SC_STATE_WAIT_OCTET_SENT;
- when SC_STATE_WAIT_OCTET_SENT =>
- if(xmit_doneH = '1') then
- if(to_integer(unsigned(sc_octet_id)) < LA_MEM_WORDLEN_OCTETS) then
- next_sc_state <= SC_STATE_SEND_OCTET;
- else
- next_sc_state <= SC_STATE_WORD_SENT;
- end if;
- else
- next_sc_state <= SC_STATE_WAIT_OCTET_SENT;
- end if;
- when SC_STATE_WORD_SENT =>
- if(to_integer(unsigned(sc_current_address)) > LA_MEM_FIRST_ADDR) then
- next_sc_current_address <= std_logic_vector(to_unsigned(
- to_integer(unsigned(sc_current_address))-1, LA_MEM_ADDRESS_BITS));
- next_sc_state <= SC_STATE_SET_MEMADDR_TO_READ_FROM;
- else
- -- done sending all captured data
- sc_done <= '1';
- next_sc_state <= SC_STATE_IDLE;
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- end case;
- end process;
-
-end send_capture_of_verifla_arch;
openverifla_2.3/vhdl/verifla/send_capture_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/computer_input_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/computer_input_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/computer_input_of_verifla.vhd (nonexistent)
@@ -1,79 +0,0 @@
--- 20180820-1740
--- Author: Laurentiu Duca
--- License: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
-use ieee.std_logic_unsigned.all;
-use work.common_internal_verifla.all;
-
------------------------------------------------------
-
-entity computer_input_of_verifla is
- port (clk, rst_l: in std_logic;
- rec_dataH: in std_logic_vector(7 downto 0);
- rec_readyH: in std_logic;
- user_run: out std_logic);
-end computer_input_of_verifla;
-
------------------------------------------------------
-
-architecture computer_input_of_verifla_arch of computer_input_of_verifla is
-
---constant USERCMD_RESET: std_logic_vector(7 downto 0) :=x"00";
-constant USERCMD_RUN: std_logic_vector(7 downto 0) :=x"01";
-type state_type is (CI_STATE_IDLE, CI_STATE_START_OF_NEW_CMD);
-signal ci_state, next_ci_state: state_type;
-signal ci_indata, next_ci_indata: std_logic_vector(7 downto 0);
-signal ci_new_octet_received:std_logic;
-signal next_user_run: std_logic;
-
-begin
-
- -- T(clk)<clk, rst_l=>rst_l, ub=>rec_readyH, ubsing=>ci_new_octet_received);
-
- -- set up next value
- state_reg: process(clk, rst_l)
- begin
- if (rst_l='0') then
- ci_state<=CI_STATE_IDLE;
- ci_indata<=x"00";
- user_run <= '0';
- elsif (rising_edge(clk)) then
- ci_state<=next_ci_state;
- ci_indata<=next_ci_indata;
- user_run <= next_user_run;
- end if;
- end process;
-
- -- state machine
- comb_logic: process(ci_new_octet_received, rec_dataH, ci_state, ci_indata)
- begin
- -- implicit
- next_ci_state <= ci_state;
- next_ci_indata <= x"00";
- next_user_run <= '0';
- case ci_state is
- when CI_STATE_IDLE =>
- if(ci_new_octet_received = '1') then
- next_ci_indata <= rec_dataH;
- next_ci_state <= CI_STATE_START_OF_NEW_CMD;
- else
- next_ci_state<=CI_STATE_IDLE;
- end if;
- when CI_STATE_START_OF_NEW_CMD =>
- next_ci_state<=CI_STATE_IDLE;
- if (ci_indata = USERCMD_RUN) then
- next_user_run<='1';
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- end case;
- end process;
-
-end computer_input_of_verifla_arch;
openverifla_2.3/vhdl/verifla/computer_input_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/u_rec_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/u_rec_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/u_rec_of_verifla.vhd (nonexistent)
@@ -1,98 +0,0 @@
--- date: 20180816_1740
--- author: Laurentiu Duca
--- license: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
------------------------------------------------------
-
-
-entity u_rec_of_verifla is
-port( clk_i, rst_i, baud_clk_posedge: in std_logic;
- rxd_i: in std_logic; -- serial data in
- rdy_o: out std_logic;
- data_o:out std_logic_vector(7 downto 0)
-);
-end u_rec_of_verifla;
-
------------------------------------------------------
-
-architecture u_rec_of_verifla_arch of u_rec_of_verifla is
-
- type state_type is (STA_IDLE, STA_CHECK_START_BIT, STA_RECEIVE);
- signal rdy_o_reg: std_logic;
- signal data_o_reg: std_logic_vector(7 downto 0);
- signal rsr: std_logic_vector(7 downto 0); -- receiving shift reg
- signal num_of_rec: std_logic_vector(3 downto 0);
- signal reg_sta: state_type;
- signal count: std_logic_vector(4 downto 0); -- the counter to count the clk in
- --signal count_c: std_logic; -- the carry of count
-
-begin
-
- rdy_o <= rdy_o_reg;
- data_o <= data_o_reg;
-
- state_reg: process(clk_i, rst_i)
- begin
- if (rst_i='1') then
- data_o_reg <= x"00";
- rdy_o_reg <= '0';
- rsr <= x"00";
- num_of_rec <= "0000";
- count <= "00000";
- --count_c <= '0';
- reg_sta <= STA_IDLE;
- elsif (rising_edge(clk_i)) then
- if(baud_clk_posedge = '1') then
- case reg_sta is
- when STA_IDLE =>
- num_of_rec <= x"0";
- count <= "00000";
- if(rxd_i = '0') then
- reg_sta <= STA_CHECK_START_BIT;
- else
- reg_sta <= STA_IDLE;
- end if;
- when STA_CHECK_START_BIT =>
- if(count >= "00111") then
- count <= "00000";
- if(rxd_i = '0') then
- -- has passed 8 clk and rxd_i is still zero,then start bit has been confirmed
- rdy_o_reg <= '0';
- reg_sta <= STA_RECEIVE;
- else
- reg_sta <= STA_IDLE;
- end if;
- else
- reg_sta <= STA_CHECK_START_BIT;
- count <= std_logic_vector(unsigned(count)+"00001");
- end if;
- when STA_RECEIVE =>
- count <= std_logic_vector(unsigned('0' & count(3 downto 0))+"00001");
- if(count(4) = '1') then
- -- has passed 16 clk after the last bit has been checked,sampling a bit
- if(num_of_rec <= x"7") then
- -- sampling the received bit
- rsr <= rxd_i & rsr(7 downto 1);
- num_of_rec <= std_logic_vector(unsigned(num_of_rec)+"0001");
- reg_sta <= STA_RECEIVE;
- else
- -- sample the stop bit
- data_o_reg <= rsr;
- rdy_o_reg <= '1';
- reg_sta <= STA_IDLE;
- end if;
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- end case;
- end if;
- end if;
- end process;
-end u_rec_of_verifla_arch;
openverifla_2.3/vhdl/verifla/u_rec_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/common_internal_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/common_internal_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/common_internal_verifla.vhd (nonexistent)
@@ -1,55 +0,0 @@
--- date: 20180821-1530
--- author: Laurentiu Duca
----------------------------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
----------------------------------------------------------------------------
-
-package common_internal_verifla is
-
--- Data input width and indentical samples bits must be multiple of 8.
-constant LA_DATA_INPUT_WORDLEN_BITS: integer :=16;
-
--- Trigger
-constant LA_TRIGGER_VALUE: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
- :=(others => '0');
-constant LA_TRIGGER_MASK: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
- :=(LA_DATA_INPUT_WORDLEN_BITS-7 downto LA_DATA_INPUT_WORDLEN_BITS-8 => '1',
- others => '0');
-constant LA_TRACE_MASK: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
- :=(others => '1');
-
-constant LA_MEM_CLEAN_BEFORE_RUN: integer :=1;
-constant LA_IDENTICAL_SAMPLES_BITS: integer :=16;
-constant LA_MEM_WORDLEN_BITS: integer :=(LA_DATA_INPUT_WORDLEN_BITS+LA_IDENTICAL_SAMPLES_BITS);
-constant LA_MEM_WORDLEN_OCTETS: integer :=((LA_MEM_WORDLEN_BITS+7)/8);
-constant LA_MEM_ADDRESS_BITS: integer :=6;
-constant LA_MEM_FIRST_ADDR: integer := 0;
-constant LA_MEM_LAST_ADDR: integer := 2 ** LA_MEM_ADDRESS_BITS - 1;
-
-constant LA_BT_QUEUE_TAIL_ADDRESS: integer :=LA_MEM_LAST_ADDR;
--- constraint: (LA_MEM_FIRST_ADDR + 4) <= LA_TRIGGER_MATCH_MEM_ADDR <= (LA_MEM_LAST_ADDR - 4)
-constant LA_TRIGGER_MATCH_MEM_ADDR: integer := 2 ** (LA_MEM_ADDRESS_BITS - 3);
-constant LA_MEM_LAST_ADDR_BEFORE_TRIGGER: integer := LA_TRIGGER_MATCH_MEM_ADDR - 1;
-constant LA_MAX_SAMPLES_AFTER_TRIGGER_BITS: integer :=26;
-constant LA_MAX_SAMPLES_AFTER_TRIGGER: integer := 2 ** (LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1) - 1;
-
--- Identical samples
-constant LA_MAX_IDENTICAL_SAMPLES: integer := 2 ** LA_IDENTICAL_SAMPLES_BITS - 2;
-
---Reserved mem words
--- LA_MEM_EMPTY_SLOT which represents an empty and not used memory slot.
---It has sense if LA_MEM_CLEAN_BEFORE_RUN and
--- a) when the trigger event arrives before the filling of the full btqueue.
--- b) after the trigger event and after capturing LA_MAX_SAMPLES_AFTER_TRIGGER
-
---`define LA_INIT_MEM_AT_RESET: instead of this verilog define we have two architectures for memory.
-constant LA_MEM_EMPTY_SLOT: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0)
- := (others => '0');
-
-end common_internal_verifla;
openverifla_2.3/vhdl/verifla/common_internal_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/top_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/top_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/top_of_verifla.vhd (nonexistent)
@@ -1,71 +0,0 @@
--- 20180820-1740
--- Author: Laurentiu Duca
--- License: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
-use ieee.std_logic_unsigned.all;
-use work.common_internal_verifla.all;
-
------------------------------------------------------
-
-entity top_of_verifla is
- port (clk, rst_l, sys_run: in std_logic;
- data_in: in std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
- -- Transceiver
- uart_XMIT_dataH: out std_logic;
- uart_REC_dataH: in std_logic);
-end top_of_verifla;
-
------------------------------------------------------
-
-architecture top_of_verifla_arch of top_of_verifla is
-
- signal mem_port_A_data_in, mem_port_B_dout: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
- signal mem_port_A_address, mem_port_B_address: std_logic_vector (LA_MEM_ADDRESS_BITS-1 downto 0) ;
- signal mem_port_A_wen: std_logic;
- signal user_run: std_logic;
- signal sc_run, ack_sc_run, sc_done: std_logic;
- -- Transmitter
- signal xmit_dataH: std_logic_vector(7 downto 0);
- signal xmit_doneH, xmitH: std_logic;
- -- Receiver
- signal rec_dataH: std_logic_vector(7 downto 0);
- signal rec_readyH: std_logic;
- -- Baud
- signal baud_clk_posedge: std_logic;
-
-begin
- iUART: entity work.uart_of_verifla(uart_of_verifla_arch)
- port map(clk, rst_l, baud_clk_posedge,
- -- Transmitter
- uart_XMIT_dataH, xmitH, xmit_dataH, xmit_doneH,
- -- Receiver
- uart_REC_dataH, rec_dataH, rec_readyH);
- mi: entity work.memory_of_verifla(memory_of_verifla_arch)
- port map (addra => mem_port_A_address, addrb => mem_port_B_address,
- clk=>clk, rst_l=>rst_l,
- dina=>mem_port_A_data_in, doutb=>mem_port_B_dout,
- wea=>mem_port_A_wen);
-
- ci: entity work.computer_input_of_verifla(computer_input_of_verifla_arch)
- port map (clk, rst_l, rec_dataH, rec_readyH, user_run);
-
- mon: entity work.monitor_of_verifla(monitor_of_verifla_arch)
- port map (clk, rst_l,
- sys_run, user_run, data_in,
- mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
- ack_sc_run, sc_done, sc_run);
-
- -- send_capture_of_verifla must use the same reset as the uart.
- sc: entity work.send_capture_of_verifla(send_capture_of_verifla_arch)
- port map (clk, rst_l, baud_clk_posedge,
- sc_run, ack_sc_run, sc_done,
- mem_port_B_address, mem_port_B_dout,
- xmit_doneH, xmitH, xmit_dataH);
-
-end top_of_verifla_arch;
-
openverifla_2.3/vhdl/verifla/top_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/u_xmit_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/u_xmit_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/u_xmit_of_verifla.vhd (nonexistent)
@@ -1,87 +0,0 @@
--- 20180816-1600
--- author: Laurentiu Duca
--- license: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
------------------------------------------------------
-
-
-entity u_xmit_of_verifla is
-port( clk_i, rst_i, baud_clk_posedge: in std_logic;
- data_i:in std_logic_vector(7 downto 0);
- wen_i: in std_logic;
- txd_o, tre_o: out std_logic
-);
-end u_xmit_of_verifla;
-
------------------------------------------------------
-
-architecture u_xmit_of_verifla_arch of u_xmit_of_verifla is
-
- type state_type is (STA_IDLE, STA_TRANS, STA_FINISH);
- signal txd_o_reg, tre_o_reg: std_logic;
- signal tsr: std_logic_vector(7 downto 0); -- transmitting shift register
- signal num_of_trans: std_logic_vector(3 downto 0);
- signal reg_sta: state_type;
- signal count: std_logic_vector(4 downto 0); -- the counter to count the clk in
- --signal count_c: std_logic; -- the carry of count
-
-begin
-
- txd_o <= txd_o_reg;
- tre_o <= tre_o_reg;
-
- state_reg: process(clk_i, rst_i)
- begin
- if (rst_i='1') then
- tsr <= x"00";
- txd_o_reg <= '1';
- tre_o_reg <= '1';
- num_of_trans <= "0000";
- --count_c <= '0';
- count <= "00000";
- reg_sta <= STA_IDLE;
- elsif (rising_edge(clk_i)) then
- if(baud_clk_posedge = '1') then
- case reg_sta is
- when STA_IDLE =>
- num_of_trans <= "0000";
- count <= "00000";
- --count_c <= '0';
- if (wen_i = '1') then
- tsr <= data_i;
- tre_o_reg <= '0';
- txd_o_reg <= '0';
- reg_sta <= STA_TRANS;
- else
- reg_sta <= STA_IDLE;
- end if;
- when STA_TRANS =>
- count <= std_logic_vector(unsigned('0' & count(3 downto 0)) + "00001");
- if(count(4) = '1') then
- if(num_of_trans <= x"8") then
- -- note ,when num_of_trans==8 ,we transmit the stop bit
- tsr <= '1' & tsr(7 downto 1);
- txd_o_reg <= tsr(0);
- num_of_trans <= std_logic_vector(unsigned(num_of_trans) + "0001");
- reg_sta <= STA_TRANS;
- else
- txd_o_reg <= '1';
- tre_o_reg <= '1';
- reg_sta <= STA_IDLE;
- end if;
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- end case;
- end if;
- end if;
- end process;
-
-end u_xmit_of_verifla_arch;
\ No newline at end of file
openverifla_2.3/vhdl/verifla/u_xmit_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/monitor_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/monitor_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/monitor_of_verifla.vhd (nonexistent)
@@ -1,337 +0,0 @@
--- Author: Laurentiu Duca
--- License: GNU GPL
--- 20181016-1225
--- LA_TRACE_MASK
--- 20180826-1740
--- split mon_run in sys_run and user_run
--- 20180820-1500
--- first source
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-use work.common_internal_verifla.all;
-
------------------------------------------------------
-
-entity monitor_of_verifla is
- port (clk, rst_l: in std_logic;
- sys_run, user_run: in std_logic;
- data_in: in std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
- mem_port_A_address: out std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- mem_port_A_data_in: out std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
- mem_port_A_wen: out std_logic;
- ack_sc_run, sc_done: in std_logic;
- sc_run: out std_logic);
-end monitor_of_verifla;
-
------------------------------------------------------
-
-architecture monitor_of_verifla_arch of monitor_of_verifla is
-
- constant LA_MEM_FIRST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := std_logic_vector(to_unsigned(LA_MEM_FIRST_ADDR, LA_MEM_ADDRESS_BITS));
- constant LA_MEM_LAST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR, LA_MEM_ADDRESS_BITS));
- constant LA_BT_QUEUE_TAIL_ADDRESS_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := LA_MEM_LAST_ADDR_SLV;
- constant LA_TRIGGER_MATCH_MEM_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := std_logic_vector(to_unsigned(LA_TRIGGER_MATCH_MEM_ADDR, LA_MEM_ADDRESS_BITS));
- constant LA_MEM_LAST_ADDR_BEFORE_TRIGGER_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
- := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR_BEFORE_TRIGGER, LA_MEM_ADDRESS_BITS));
-
- --type state_type is (MON_STATE_IDLE, MON_STATE_DO_MEM_CLEAN, MON_STATE_PREPARE_RUN,
- --MON_STATE_WAIT_TRIGGER_MATCH, MON_STATE_AFTER_TRIGGER, MON_STATE_DATA_CAPTURED,
- --MON_STATE_SC_RUN, MON_STATE_WAIT_SC_DONE);
- -- This way, at reset we can set any start state.
- constant MON_STATE_IDLE: integer :=0;
- constant MON_STATE_DO_MEM_CLEAN: integer :=1;
- constant MON_STATE_PREPARE_RUN: integer :=2;
- constant MON_STATE_WAIT_TRIGGER_MATCH: integer :=3;
- constant MON_STATE_AFTER_TRIGGER: integer :=4;
- constant MON_STATE_DATA_CAPTURED: integer :=5;
- constant MON_STATE_SC_RUN: integer :=6;
- constant MON_STATE_WAIT_SC_DONE: integer :=7;
-
- signal sys_run_reg: std_logic;
- signal sc_run_aux, next_sc_run_aux: std_logic;
- signal mon_state, next_mon_state: integer; -- state_type;
- signal next_mon_samples_after_trigger, mon_samples_after_trigger:
- std_logic_vector(LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1 downto 0);
- signal next_mon_write_address, mon_write_address:
- std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- signal next_bt_queue_tail_address, bt_queue_tail_address: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- signal mon_old_data_in, mon_current_data_in: std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
- signal mon_clones_nr, next_mon_clones_nr: std_logic_vector(LA_IDENTICAL_SAMPLES_BITS-1 downto 0);
- signal one_plus_mon_write_address:std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- signal oneplus_mon_clones_nr:std_logic_vector(LA_IDENTICAL_SAMPLES_BITS-1 downto 0);
- signal data_in_changed: std_logic;
- signal last_mem_addr_before_trigger: std_logic;
- signal not_maximum_mon_clones_nr: std_logic;
-
-begin
-
- -- Register the input data
- -- such that mon_current_data_in is constant the full clock period.
- register_input_data: process(clk, rst_l)
- begin
- if (rst_l='0') then
- mon_old_data_in <= (others => '0');
- mon_current_data_in <= (others => '0');
- sys_run_reg <= '0';
- elsif (rising_edge(clk)) then
- mon_old_data_in <= mon_current_data_in;
- mon_current_data_in <= data_in;
- sys_run_reg <= sys_run;
- end if;
- end process;
-
- -- set new values
- state_reg: process(clk, rst_l)
- begin
- if (rst_l='0') then
- mon_state <= MON_STATE_IDLE;
- sc_run_aux <= '0';
- mon_write_address <= std_logic_vector(to_unsigned(LA_MEM_FIRST_ADDR, LA_MEM_ADDRESS_BITS));
- bt_queue_tail_address <= (others => '0');
- mon_samples_after_trigger <= (others => '0');
- mon_clones_nr <= ((LA_IDENTICAL_SAMPLES_BITS-1) downto 1 => '0', others => '1');
- elsif (rising_edge(clk)) then
- mon_state <= next_mon_state;
- sc_run_aux <= next_sc_run_aux;
- mon_write_address <= next_mon_write_address;
- bt_queue_tail_address <= next_bt_queue_tail_address;
- mon_samples_after_trigger <= next_mon_samples_after_trigger;
- mon_clones_nr <= next_mon_clones_nr;
- end if;
- end process;
-
- -- continuous assignments
- one_plus_mon_write_address <=
- std_logic_vector(to_unsigned(to_integer(unsigned(mon_write_address)) + 1, LA_MEM_ADDRESS_BITS));
- oneplus_mon_clones_nr <=
- std_logic_vector(to_unsigned(to_integer(unsigned(mon_clones_nr)) + 1, LA_IDENTICAL_SAMPLES_BITS));
- data_in_changed <= '1' when ((mon_current_data_in and LA_TRACE_MASK) /= (mon_old_data_in and LA_TRACE_MASK)) else '0';
- last_mem_addr_before_trigger <=
- '1' when (to_integer(unsigned(mon_write_address)) = LA_MEM_LAST_ADDR_BEFORE_TRIGGER) else '0';
- not_maximum_mon_clones_nr <=
- '1' when (to_integer(unsigned(mon_clones_nr)) < LA_MAX_IDENTICAL_SAMPLES) else '0';
- sc_run <= sc_run_aux;
-
- -- state machine
- comb_logic: process(mon_state, sys_run_reg, user_run, ack_sc_run, sc_done, sc_run_aux,
- mon_write_address, bt_queue_tail_address, mon_samples_after_trigger,
- mon_current_data_in, mon_old_data_in, mon_clones_nr,
- data_in_changed, oneplus_mon_clones_nr, one_plus_mon_write_address,
- not_maximum_mon_clones_nr, last_mem_addr_before_trigger)
- begin
- -- implicit
- next_mon_state <= mon_state;
- next_sc_run_aux <= sc_run_aux;
- next_mon_write_address <= mon_write_address;
- next_bt_queue_tail_address <= bt_queue_tail_address;
- next_mon_samples_after_trigger <= mon_samples_after_trigger;
- next_mon_clones_nr <= mon_clones_nr;
- mem_port_A_address <= (others => '0');
- mem_port_A_data_in <= (others => '0');
- mem_port_A_wen <= '0';
- case mon_state is
- when MON_STATE_IDLE =>
- if((sys_run_reg = '1') or (user_run = '1')) then
- if((LA_MEM_CLEAN_BEFORE_RUN = 1) or (user_run = '1')) then
- next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
- next_mon_state <= MON_STATE_DO_MEM_CLEAN;
- else
- -- mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
- -- we share the same clock as memory.
- mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
- mem_port_A_wen <= '1';
- next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
- end if;
- else
- next_mon_state <= MON_STATE_IDLE;
- end if;
- when MON_STATE_DO_MEM_CLEAN =>
- mem_port_A_address <= mon_write_address;
- mem_port_A_data_in <= LA_MEM_EMPTY_SLOT;
- mem_port_A_wen <= '1';
- if(to_integer(unsigned(mon_write_address)) < LA_MEM_LAST_ADDR) then
- next_mon_write_address <= std_logic_vector(to_unsigned(to_integer(unsigned(mon_write_address)) + 1,
- LA_MEM_ADDRESS_BITS));
- next_mon_state <= MON_STATE_DO_MEM_CLEAN;
- else
- -- at the new posedge clock, will clean memory at its last address
- next_mon_state <= MON_STATE_PREPARE_RUN;
- end if;
- when MON_STATE_PREPARE_RUN =>
- -- mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
- -- we share the same clock as memory.
- mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
- mem_port_A_wen <= '1';
- next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
- when MON_STATE_WAIT_TRIGGER_MATCH =>
- -- circular queue
- if((mon_current_data_in and LA_TRIGGER_MASK) /= (LA_TRIGGER_VALUE and LA_TRIGGER_MASK)) then
- next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
- mem_port_A_wen <= '1';
- if(data_in_changed = '1') then
- if(last_mem_addr_before_trigger = '1') then
- mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
- else
- mem_port_A_address <= one_plus_mon_write_address;
- end if;
- else
- if(not_maximum_mon_clones_nr = '1') then
- mem_port_A_address <= mon_write_address;
- else
- if(last_mem_addr_before_trigger = '1') then
- mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
- else
- mem_port_A_address <= one_plus_mon_write_address;
- end if;
- end if;
- end if;
- if(data_in_changed = '1') then
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in}
- else
- if(not_maximum_mon_clones_nr = '1') then
- mem_port_A_data_in <= mon_clones_nr & mon_current_data_in;
- else
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- -- {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in}
- end if;
- end if;
- if(data_in_changed = '1') then
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- else
- if(not_maximum_mon_clones_nr = '1') then
- next_mon_clones_nr <= oneplus_mon_clones_nr;
- else
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- end if;
- end if;
- if(data_in_changed = '1') then
- if(last_mem_addr_before_trigger = '1') then
- next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
- else
- next_mon_write_address <= one_plus_mon_write_address;
- end if;
- else
- if(not_maximum_mon_clones_nr = '1') then
- next_mon_write_address <= mon_write_address;
- else
- if(last_mem_addr_before_trigger = '1') then
- next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
- else
- next_mon_write_address <= one_plus_mon_write_address;
- end if;
- end if;
- end if;
- else
- -- trigger matched
- next_mon_state <= MON_STATE_AFTER_TRIGGER;
- mem_port_A_address <= LA_TRIGGER_MATCH_MEM_ADDR_SLV;
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- -- {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, mon_current_data_in};
- mem_port_A_wen <= '1';
- next_mon_write_address <= LA_TRIGGER_MATCH_MEM_ADDR_SLV;
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- next_bt_queue_tail_address <= mon_write_address;
- next_mon_samples_after_trigger <= std_logic_vector(to_unsigned(1, LA_MAX_SAMPLES_AFTER_TRIGGER_BITS));
- end if;
- when MON_STATE_AFTER_TRIGGER =>
- if((to_integer(unsigned(mon_samples_after_trigger)) < LA_MAX_SAMPLES_AFTER_TRIGGER) and
- (to_integer(unsigned(mon_write_address)) < LA_MEM_LAST_ADDR)) then
- mem_port_A_wen <= '1';
- if(data_in_changed = '1') then
- mem_port_A_address <= one_plus_mon_write_address;
- else
- if(not_maximum_mon_clones_nr = '1') then
- mem_port_A_address <= mon_write_address;
- else
- mem_port_A_address <= one_plus_mon_write_address;
- end if;
- end if;
- if(data_in_changed = '1') then
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
- else
- if(not_maximum_mon_clones_nr = '1') then
- mem_port_A_data_in <= mon_clones_nr & mon_current_data_in;
- else
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
- --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
- end if;
- end if;
- if(data_in_changed = '1') then
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- else
- if(not_maximum_mon_clones_nr = '1') then
- next_mon_clones_nr <= oneplus_mon_clones_nr;
- else
- next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
- end if;
- end if;
- if(data_in_changed = '1') then
- next_mon_write_address <= one_plus_mon_write_address;
- else
- if(not_maximum_mon_clones_nr = '1') then
- next_mon_write_address <= mon_write_address;
- else
- next_mon_write_address <= one_plus_mon_write_address;
- end if;
- end if;
- next_mon_samples_after_trigger <=
- std_logic_vector(to_unsigned(to_integer(unsigned(mon_samples_after_trigger)+1),
- LA_MAX_SAMPLES_AFTER_TRIGGER_BITS));
- next_mon_state <= MON_STATE_AFTER_TRIGGER;
- else
- mem_port_A_wen <= '0';
- next_mon_state <= MON_STATE_DATA_CAPTURED;
- end if;
- when MON_STATE_DATA_CAPTURED =>
- -- Save bt_queue_tail_address
- mem_port_A_address <= LA_BT_QUEUE_TAIL_ADDRESS_SLV;
- mem_port_A_data_in <=
- std_logic_vector(to_unsigned(0, LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS)) & bt_queue_tail_address;
- -- {{(LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS){1'b0}}, bt_queue_tail_address};
- mem_port_A_wen <= '1';
- next_mon_state <= MON_STATE_SC_RUN;
- when MON_STATE_SC_RUN =>
- next_mon_state <= MON_STATE_WAIT_SC_DONE;
- next_sc_run_aux <= '1';
- when MON_STATE_WAIT_SC_DONE =>
- -- sc_run must already be 1.
- if(ack_sc_run = '1') then
- next_sc_run_aux <= '0';
- end if;
- if((sc_run_aux = '0') and (sc_done = '1')) then
- next_mon_state <= MON_STATE_IDLE;
- else
- next_mon_state <= MON_STATE_WAIT_SC_DONE;
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- end case;
- end process;
-
-end monitor_of_verifla_arch;
openverifla_2.3/vhdl/verifla/monitor_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/memory_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/memory_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/memory_of_verifla.vhd (nonexistent)
@@ -1,96 +0,0 @@
--- 20180820-1740
--- Author: Laurentiu Duca
--- License: GNU GPL
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
-use ieee.std_logic_unsigned.all;
-use work.common_internal_verifla.all;
-
------------------------------------------------------
-
-entity memory_of_verifla is port(
- clk, rst_l: in std_logic;
- addra: in std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- wea: in std_logic;
- dina: in std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
- addrb: in std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
- doutb: out std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0)
-);
-end memory_of_verifla;
------------------------------------------------------
-
-architecture memory_of_verifla_arch of memory_of_verifla is
-
-type reg_array is array (0 to LA_MEM_LAST_ADDR) of std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
-
-impure function init_mem(n: in integer) return reg_array is
- variable temp_mem : reg_array;
-begin
- for i in reg_array'range loop
- temp_mem(i) := LA_MEM_EMPTY_SLOT; --std_logic_vector(to_unsigned(0, LA_MEM_WORDLEN_BITS));
- end loop;
- return temp_mem;
-end function;
-
-signal mem: reg_array := init_mem(0);
-
-begin
- -- doutb <= mem(to_integer(unsigned(addrb)));
- -- This works too as a consequence of send_capture_of_verifla architecture.
- p0: process(clk, rst_l)
- begin
- if(rst_l = '0') then
- doutb <= LA_MEM_EMPTY_SLOT;
- elsif(rising_edge(clk)) then
- doutb <= mem(to_integer(unsigned(addrb)));
- end if;
- end process;
-
- p1: process(clk)
- begin
- if(rising_edge(clk)) then
- if(wea = '1') then
- mem(to_integer(unsigned(addra))) <= dina;
- end if;
- end if;
- end process;
-
-end memory_of_verifla_arch;
------------------------------------------------------
-
-architecture memory_of_verifla_clean_at_reset_arch of memory_of_verifla is
-
-type reg_array is array (0 to LA_MEM_LAST_ADDR) of std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
-signal mem: reg_array;
---signal i: integer;
-
-begin
- -- doutb <= mem(to_integer(unsigned(addrb)));
- -- This works too as a consequence of send_capture_of_verifla architecture.
- p0: process(clk, rst_l)
- begin
- if(rst_l = '0') then
- doutb <= LA_MEM_EMPTY_SLOT;
- elsif(rising_edge(clk)) then
- doutb <= mem(to_integer(unsigned(addrb)));
- end if;
- end process;
-
- p1: process(clk, rst_l)
- begin
- if(rst_l = '0') then
- for i in 0 to LA_MEM_LAST_ADDR loop
- mem(i) <= LA_MEM_EMPTY_SLOT;
- end loop;
- elsif(rising_edge(clk)) then
- if(wea = '1') then
- mem(to_integer(unsigned(addra))) <= dina;
- end if;
- end if;
- end process;
-
-end memory_of_verifla_clean_at_reset_arch;
openverifla_2.3/vhdl/verifla/memory_of_verifla.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/verifla/inc_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/inc_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/inc_of_verifla.vhd (nonexistent)
@@ -1,30 +0,0 @@
---library IEEE;
---use IEEE.STD_LOGIC_1164.ALL;
---use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
----------------------------------------------------------------------------
-
-package inc_of_verifla is
-
-constant CLOCK_FREQUENCY: integer := 50000000;
-constant BAUDRATE: integer := 115200;
-
-constant T2_div_T1_div_2: integer := (CLOCK_FREQUENCY / (BAUDRATE * 16 * 2));
--- Assert: BAUD_COUNTER_SIZE >= log2(T2_div_T1_div_2) bits
-constant BAUD_COUNTER_SIZE: integer := 15;
-
--- 1s ... 50000000 T1
--- 1bit ... 16 T2
--- 1s .. 115200 bits
--- =>
--- 1s .. 115200 * 16 T2
---
--- T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
-
-end inc_of_verifla;
-
-package body inc_of_verifla is
-
-end inc_of_verifla;
Index: openverifla_2.3/vhdl/verifla/single_pulse_of_verifla.vhd
===================================================================
--- openverifla_2.3/vhdl/verifla/single_pulse_of_verifla.vhd (revision 41)
+++ openverifla_2.3/vhdl/verifla/single_pulse_of_verifla.vhd (nonexistent)
@@ -1,66 +0,0 @@
------------------------------------------------------
--- single pulse from a multi-periods-contiguous pulse
--- date: 20180820-1700
--- author: Laurentiu Duca
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
------------------------------------------------------
-
-entity single_pulse_of_verifla is
-port( clk, rst_l: in std_logic;
- ub: in std_logic;
- ubsing: out std_logic
-);
-end single_pulse_of_verifla;
-
------------------------------------------------------
-
-architecture single_pulse_of_verifla_arch of single_pulse_of_verifla is
-
- signal next_state, state: std_logic;
- signal ubsing_reg, next_ubsing_reg: std_logic;
-
-begin
- ubsing <= ubsing_reg;
-
- state_reg: process(clk, rst_l)
- begin
- if (rst_l='0') then
- state <= '0';
- ubsing_reg <= '0';
- elsif (rising_edge(clk)) then
- state <= next_state;
- ubsing_reg <= next_ubsing_reg;
- end if;
- end process;
-
- comb_logic: process(state, ub)
- begin
- next_state <= state;
- next_ubsing_reg <= '0';
- case state is
- when '0' =>
- if (ub = '1') then
- next_state <= '1';
- next_ubsing_reg <= '1';
- end if;
- when '1' =>
- if (ub = '0') then
- next_state <= '0';
- end if;
- when others =>
- -- this is forced by the vhdl compiler
- --next_state <= '0';
- --next_ubsing_reg <= '0';
- end case;
- end process;
-
-end single_pulse_of_verifla_arch;
-
------------------------------------------------------
Index: openverifla_2.3/vhdl/keyboard/keyboard.vhd
===================================================================
--- openverifla_2.3/vhdl/keyboard/keyboard.vhd (revision 41)
+++ openverifla_2.3/vhdl/keyboard/keyboard.vhd (nonexistent)
@@ -1,84 +0,0 @@
--- keyboad driver
------------------------------------------------------
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.NUMERIC_STD.ALL;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-
------------------------------------------------------
-
-entity keyboard is
-port( kbd_data_line, kbd_clk: in std_logic;
- kbd_key: out std_logic_vector(7 downto 0);
- clk, reset: in std_logic;
- uart_XMIT_dataH: out std_logic;
- uart_REC_dataH: in std_logic
-);
-end keyboard;
-
------------------------------------------------------
-
-architecture keyboard_arch of keyboard is
-
- -- define the states of keyboard_arch model
- signal i: std_logic_vector(3 downto 0);
- signal kbd_clk_buf: std_logic_vector(2 downto 0) :="000";
- signal negedge_kbd_clk: std_logic :='0';
- signal kbd_key_reg: std_logic_vector(7 downto 0);
- signal cnt: std_logic_vector(5 downto 0);
- signal verifla_data_in : std_logic_vector(15 downto 0);
-begin
-
- p1: process(clk) begin
- if(rising_edge(clk)) then
- kbd_clk_buf <= kbd_clk_buf(1 downto 0) & kbd_clk;
- end if;
- end process;
- negedge_kbd_clk <= '1' when (kbd_clk_buf(2 downto 1) = "10") else '0';
-
- -- process: state registers
- state_reg: process(clk, reset)
- begin
- if (reset='1') then
- i <= "1010";
- kbd_key_reg <= x"00";
- elsif (rising_edge(clk)) then
- if (negedge_kbd_clk = '1') then
- if ((i >= x"0") and (i <= x"7")) then
- kbd_key_reg <= kbd_data_line & kbd_key_reg(7 downto 1);
- i <= std_logic_vector((unsigned(i)+"0001"));
- elsif ((i = x"8") or (i = x"9")) then
- i <= std_logic_vector((unsigned(i)+"0001"));
- else
- i <= x"0";
- end if;
- end if;
- end if;
- end process;
- kbd_key <= kbd_key_reg;
-
- -- Simple counter
- state_reg_cnt: process(clk, reset)
- begin
- if (reset='1') then
- cnt <= "000000";
- elsif (rising_edge(clk)) then
- if(negedge_kbd_clk = '1') then
- cnt <= std_logic_vector(unsigned(cnt)+"000001");
- end if;
- end if;
- end process;
-
- -- openVeriFLA
- verifla_data_in <= cnt & kbd_data_line & kbd_clk & kbd_key_reg;
- --(15 downto 10 => '0') & kbd_data_line & kbd_clk & kbd_key_reg;
- verifla: entity work.top_of_verifla(top_of_verifla_arch)
- port map (clk=>clk, rst_l=>not(reset), sys_run=>'1',
- data_in=>verifla_data_in,
- -- Transceiver
- uart_XMIT_dataH => uart_XMIT_dataH,
- uart_REC_dataH => uart_REC_dataH);
-
-end keyboard_arch;
Index: openverifla_2.3/vhdl/keyboard/keyboard_driver_test.vhd
===================================================================
--- openverifla_2.3/vhdl/keyboard/keyboard_driver_test.vhd (revision 41)
+++ openverifla_2.3/vhdl/keyboard/keyboard_driver_test.vhd (nonexistent)
@@ -1,103 +0,0 @@
------------------------------------------------------------------
--- Booth algorithm for multiplication
--- author: Laurentiu Duca
------------------------------------------------------------------
-
-library ieee;
---use ieee.std_logic_arith.all;
---use ieee.std_logic_unsigned.all;
-use ieee.std_logic_1164.all;
-
-entity keyboard_driver_test is -- entity declaration
-end keyboard_driver_test;
-
------------------------------------------------------------------
-
-architecture keyboard_driver_test_arch of keyboard_driver_test is
-
--- This test module is wrote
--- in the following scenario: the driver is on the FPGA and the keyboard
--- is attached to the FPGA development board
-
- signal kbd_key:std_logic_vector(7 downto 0);
--- This signals must explicitly added to the simulation.
--- For debugging purposes, also add the register named "i" from the keyboard driver
- signal reset, clk: std_logic;
- signal kbd_clk, kbd_data_line: std_logic;
- signal uart_XMIT_dataH: std_logic;
- signal uart_REC_dataH: std_logic :='1';
- --signal i: std_logic_vector(64 downto 0);
-
- signal stop_simulation: std_logic := '0';
-
-begin
-
- keyboard1: entity work.keyboard(keyboard_arch)
- port map(kbd_data_line=>kbd_data_line, kbd_clk=>kbd_clk, kbd_key=>kbd_key,
- clk=>clk, reset=>reset,
- --top_of_verifla transceiver
- uart_XMIT_dataH=>uart_XMIT_dataH, uart_REC_dataH=>uart_REC_dataH);
-
- process
- begin
- if stop_simulation = '0' then
- clk <= '1'; -- clock cycle 10 ns
- wait for 5 ns;
- clk <= '0';
- wait for 5 ns;
- else
- wait;
- end if;
- end process;
-
- -- Reset the driver by using the reset button of the FPGA board.
- process
- begin
- reset <= '1';
- wait for 10 ns;
- reset <= '0';
- wait for 10 ns;
- wait;
- end process;
-
- -- Now, simulate the keyboard.
- -- Consider the keyboard clock period to be about 10 units.
- process
- begin
- -- At the begining, the line is idle for some periods.
- kbd_clk<='1'; kbd_data_line<='1'; wait for 2050 ns; wait for 2050 ns;
-
- -- When a key is pressed, the keyboard sends its scan code
- -- on the data line. For the 'a' key, the scan code is 1Ch=00011100b.
- -- The order is LSb first, so the bits are sent in the following order: 00111000.
- -- Simulate pressing the 'a' key.
- -- Send start bit.
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- -- Send the scan code
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- -- Send the parity bit which is '1' for the 'a' key.
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- -- Send the stop bit.
- kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
- -- Put the line idle for some periods.
- kbd_clk<='1'; kbd_data_line<='1'; wait for 2050 ns; wait for 2050 ns;
- wait for 1000 ns;
- -- When the 'a' key - that is now pressed,
- -- will be released, then the keyboard will send F0h, 1Ch.
- -- We do not simulate this because the process is similar.
-
- -- stop simulation.
- -- assert false report "end of simulation" severity failure;
- stop_simulation <= '1';
- wait;
-
- end process;
-
-end keyboard_driver_test_arch;
openverifla_2.3/vhdl/keyboard/keyboard_driver_test.vhd
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/vhdl/keyboard/keyboard.ucf
===================================================================
--- openverifla_2.3/vhdl/keyboard/keyboard.ucf (revision 41)
+++ openverifla_2.3/vhdl/keyboard/keyboard.ucf (nonexistent)
@@ -1,28 +0,0 @@
-#NET "switch[0]" LOC="L13";
-#NET "switch[1]" LOC="L14";
-#NET "switch[2]" LOC="H18";
-#NET "switch[3]" LOC="N17";
-
-NET "clk" LOC = "C9";
-NET "reset" LOC = "L13";
-
-NET "kbd_data_line" LOC = "G13";
-NET "kbd_clk" LOC = "G14";
-
-#NET "J1_0" LOC = "N15";
-#NET "J1_1" LOC = "N14";
-#NET "J1_2" LOC = "E15";
-#NET "J1_3" LOC = "V7";
-
-#leds
-NET "kbd_key[0]" LOC="D4";
-NET "kbd_key[1]" LOC="C3";
-NET "kbd_key[2]" LOC="D6";
-NET "kbd_key[3]" LOC="E6";
-NET "kbd_key[4]" LOC="D13";
-NET "kbd_key[5]" LOC="A7";
-NET "kbd_key[6]" LOC="G9";
-NET "kbd_key[7]" LOC="A8";
-
-NET "uart_REC_dataH" LOC = "R13";
-NET "uart_XMIT_dataH" LOC = "P13";
openverifla_2.3/vhdl/keyboard/keyboard.ucf
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/verifla_properties_keyboard.txt
===================================================================
--- openverifla_2.3/java/verifla_properties_keyboard.txt (revision 41)
+++ openverifla_2.3/java/verifla_properties_keyboard.txt (nonexistent)
@@ -1,46 +0,0 @@
-# VeriFLA Logic Analyzer Project File
-
-# Serial port
-# On Windows this would be COM5 or similar
-#/dev/ttyUSB0
-LA.portName=/dev/ttyUSB0
-LA.baudRate=115200
-
-# Memory
-# ====
-LA.memWords=64
-# Data input width and indentical samples bits (clones) must be multiple of 8.
-LA.dataWordLenBits=16
-LA.clonesWordLenBits=16
-LA.triggerMatchMemAddr=8
-
-
-# Generated verilog
-# ====
-LA.timescaleUnit=1ns
-LA.timescalePrecision=10ps
-# clockPeriod expressed in [timescaleUnit]
-LA.clockPeriod=20
-
-# User data signals
-LA.totalSignals=16
-# Big endian (1) or Little endian (0).
-LA.signalGroups=4
-# Group 0
-LA.groupName.0=KBD_KEY
-LA.groupSize.0=8
-LA.groupEndian.0=0
-# Group 1
-LA.groupName.1=kbd_clk_line
-LA.groupSize.1=1
-LA.groupEndian.1=0
-# Group 2
-LA.groupName.2=kbd_data_line
-LA.groupSize.2=1
-LA.groupEndian.2=0
-# Group 3
-LA.groupName.3=not_used
-LA.groupSize.3=6
-LA.groupEndian.3=0
-
-
openverifla_2.3/java/verifla_properties_keyboard.txt
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/VeriFLA.java
===================================================================
--- openverifla_2.3/java/VeriFLA.java (revision 41)
+++ openverifla_2.3/java/VeriFLA.java (nonexistent)
@@ -1,695 +0,0 @@
-/*
-VeriFLA.java
-License: GNU GPL
-
-Revision history:
-revistion date: 2018/07/20; author: Laurentiu Duca
-- port of SerialPort jssc instead of rxtx
-- redesign of memory contents implied modification in the java source
-revision date: 2007/Sep/03; author: Laurentiu Duca
-- sendRunCommand feature
-- consider that the bt_queue_head_address is wrote at the end of the data capture.
-- use HOUR_OF_DAY (0..23)
-
-revision date: 2007/Jul/4; author: Laurentiu DUCA
-- v01
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.BufferedReader;
-import java.util.Properties;
-import java.util.Enumeration;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.StringTokenizer;
-
-import jssc.SerialPort;
-import jssc.SerialPortException;
-
-public class VeriFLA extends Object {
-
- // Data members are declared at the end.
-
- /**
- * Creates a new object.
- *
- */
- public VeriFLA() {
- this.serialPort = null;
- this.properties = new Properties();
- }
-
- /**
- * Attaches the given serial serialPort to the device object.
- * The method will try to open the serialPort.
- */
- public boolean attach(String portName) {
- serialPort = new SerialPort(portName);
- try {
- int baudrate=Integer.parseInt(strBaudRate);
- //strBaudRate.equals("115200")?SerialPort.BAUDRATE_115200:
- //strBaudRate.equals("38400")?SerialPort.BAUDRATE_38400:SerialPort.BAUDRATE_9600;
- serialPort.openPort();//Open serial port
- serialPort.setParams(baudrate,
- SerialPort.DATABITS_8,
- SerialPort.STOPBITS_1,
- SerialPort.PARITY_NONE);
- //Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
- //serialPort.writeBytes("This is a test string".getBytes());//Write data to port
- } catch (SerialPortException ex) {
- ex.printStackTrace(System.out);
- return false;
- }
-
- return true;
- }
-
- /**
- * Detaches the currently attached serialPort, if one exists.
- * This will close the serial port.
- *
- */
- public void detach() {
- if (serialPort != null) {
- try {
- serialPort.closePort();
- } catch (SerialPortException ex) {
- ex.printStackTrace(System.out);
- }
- }
- }
-
- public void run() throws IOException, SerialPortException {
- byte rawByte[]=new byte[1];
-
- if(sendRunCommand == 1) {
- // Send USERCMD_RESET command
- //rawByte[0]=USERCMD_RESET;
- //System.out.println("Sending USERCMD_RESET command");
- //serialPort.writeBytes(rawByte);
- //System.out.println("Done sending USERCMD_RESET command.");
-
- // Send USERCMD_RUN command
- rawByte[0]=USERCMD_RUN;
- System.out.println("Sending user_run command..");
- serialPort.writeBytes(rawByte);
- System.out.println("Done sending user_run command.");
- }
-
- // Read Captured data
- System.out.println("Waiting for data capture:");
- int i,j,ret;
- rawByte = new byte[memWords * octetsPerWord];
- rawByte = serialPort.readBytes(memWords * octetsPerWord);
- for(i=0; i=0; j--)
- System.out.printf("%02x ", memoryLineBytes[i][j]);
- System.out.println();
- }
-
- //System.exit(1);
- }
-
- public void getCapturedData(String portName)
- {
- boolean found;
- found = attach(portName);
- if(!found) {
- System.out.println("Port " + portName + " not found.\n"+
- "\tPlease update the properties file.\n");
- System.exit(0);
- }
- try {
- run();
- } catch (Exception ex) {
- ex.printStackTrace(System.out);
- }
- detach();
- }
-
- public void saveCapturedData() throws IOException
- {
- // Create a new file with the name "capture_timestamp.v".
- String strTime=getTime();
- String outputFileName, moduleName;
- moduleName="capture_"+strTime;
- outputFileName = moduleName+".v";
- File outputFile = new File(outputFileName);
- if (!outputFile.createNewFile()) {
- System.out.println("Error: Can not create file: " + outputFileName);
- System.exit(-1);
- }
- OutputStream stream = new FileOutputStream(outputFile);
-
-
- // Write the timescale directive.
- String strLine;
- int i,j,k;
- strLine = "`timescale " + strTimescaleUnit + " / " + strTimescalePrecision + "\n\n";
- stream.write(strLine.getBytes());
-
-
- // Write the module name and output params.
- strLine = "module " + moduleName + "(clk_of_verifla, la_trigger_matched, ";
- for (i = 0; i < signalGroups; i++) {
- strLine += groupName[i];
- if(i != (signalGroups - 1))
- strLine += ", ";
- }
- strLine += ", memory_line_id";
- strLine += ");\n\n";
- stream.write(strLine.getBytes());
-
-
- // Write the declaration of signals
- strLine = "output clk_of_verifla;\n" + "output la_trigger_matched;\n" + "output ["+(memWords/4)+":0] memory_line_id;\n";
- stream.write(strLine.getBytes());
- for (k = 0; k < 2; k++) {
- for (i = 0; i < signalGroups; i++) {
- if(k == 0)
- strLine = "output ";
- else
- strLine = "reg ";
- if(groupSize[i] > 1) {
- if(groupEndian[i] != 0)
- strLine += "[0:"+(groupSize[i]-1)+"] ";
- else
- strLine += "["+(groupSize[i]-1)+":0] ";
- }
- strLine += groupName[i] + ";\n";
- stream.write(strLine.getBytes());
- }
- }
- strLine =
- "reg ["+(memWords/4)+":0] memory_line_id;\n" +
- "reg la_trigger_matched;\n" +
- "reg clk_of_verifla;" + "\n\n" +
- "parameter PERIOD = " + clockPeriod + ";" + "\n";
- stream.write(strLine.getBytes());
-
-
- // Write the clock task.
- strLine =
- "initial // Clock process for clk_of_verifla" + "\n" +
- "begin" + "\n" +
- " forever" + "\n" +
- " begin" + "\n" +
- " clk_of_verifla = 1'b0;" + "\n" +
- " #("+ (int)(clockPeriod / 2) + "); clk_of_verifla = 1'b1;" + "\n" +
- " #("+ (int)(clockPeriod / 2) + ");" + "\n" +
- " end" + "\n" +
- "end" + "\n\n" ;
- stream.write(strLine.getBytes());
-
-
- // Write captured data
- strLine = "initial begin\n";
- strLine += "#("+ (int)(clockPeriod / 2) + ");\n";
- strLine += "la_trigger_matched = 0;\n";
- stream.write(strLine.getBytes());
-
- // Compute the name of the signals
- String signalsToken;
- signalsToken = "{";
- for (i = signalGroups-1; i >= 0 ; i--) {
- signalsToken += groupName[i];
- if (i > 0)
- signalsToken += ",";
- }
- signalsToken += "} = ";
-
- // Write name of the signals, values and delays in the verilog file.
- String strWord;
- int currentTime=(clockPeriod / 2), delay;
-
- // compute the oldest wrote-info before trigger event
- int bt_queue_head_address=0, bt_queue_tail_address=0;
- // the word at address (memWords-1) represents bt_queue_tail_address.
- for(j = 0; j < (octetsPerWord-1); j++) {
- bt_queue_tail_address += ((0x000000FF) & (int) memoryLineBytes[memWords-1][j]) << (8*j);
- }
- System.out.println("bt_queue_tail_address=" + bt_queue_tail_address);
- // Find the first
- // before the trigger event (not an memory word).
- if(bt_queue_tail_address == (triggerMatchMemAddr - 1))
- bt_queue_head_address = 0;
- else
- bt_queue_head_address = bt_queue_tail_address + 1;
- boolean before_trigger=true;
- boolean foundAnEffectiveCaptureWord=false, wentBack=false;
- i = bt_queue_head_address;
- do
- {
- for(j = 0; j < (octetsPerWord-1); j++) {
- if(memoryLineBytes[i][j] != 0)
- foundAnEffectiveCaptureWord = true;
- }
- if(foundAnEffectiveCaptureWord)
- break;
- i++;
- if(i >= triggerMatchMemAddr)
- if(!foundAnEffectiveCaptureWord && !wentBack) {
- i = 0;
- wentBack = true;
- }
- } while (i <= triggerMatchMemAddr);
- if(!foundAnEffectiveCaptureWord)
- fatalError("Could not find the first efffective capture before trigger match");
- if(i >= triggerMatchMemAddr)
- before_trigger=false;
-
- // Walk through the captured data and write it to capture.v
- do {
- // Check if this is an empty line
- boolean allMemoryLineIsZero=true;
- for(j=octetsPerWord-1; j>=0; j--) {
- if(memoryLineBytes[i][j] != 0) {
- allMemoryLineIsZero = false;
- break;
- }
- }
- if(allMemoryLineIsZero) {
- if(debugVeriFLA) {
- strLine = "// info: line "+i+" is empty.\n";
- System.out.println(strLine);
- stream.write(strLine.getBytes());
- }
- } else {
- // Write memory line index.
- strLine = "memory_line_id=" + i + ";\n";
- stream.write(strLine.getBytes());
- // Data capture
- strWord = totalSignals + "'b";
- for(j=octetsPerWord-1; j>=0; j--) {
- if((j * 8) < dataWordLenBits)
- for(k=7; k>=0; k--) {
- if((j*8+k) < totalSignals) {
- strWord += (memoryLineBytes[i][j] >> k) & 1;
- }
- }
- }
- strWord += ';';
- strLine = signalsToken + strWord + "\n";
- if(i == triggerMatchMemAddr)
- strLine += "la_trigger_matched = 1;\n";
- //strLine += "#" + clockPeriod + ";\n";
- // Write to file
- //System.out.println(strLine);
- stream.write(strLine.getBytes());
-
-
- // Time interval in which data is constant.
- delay=0;
- for(j = 0; j < octetsPerWord; j++) {
- if((j * 8) >= dataWordLenBits)
- delay += ((0x000000FF) & (int) memoryLineBytes[i][j]) << (8*j - dataWordLenBits);
- }
- currentTime += delay * clockPeriod;
- strLine = "#" + (delay * clockPeriod) + ";\n";
- // Write to file
- //System.out.println(strLine);
- stream.write(strLine.getBytes());
- // Also write the time stamp
- strLine = "// ------------- Current Time: " + currentTime + "*(" + strTimescaleUnit + ") "+"\n";
- stream.write(strLine.getBytes());
- }
-
- // Compute the new value of i
- if(before_trigger) {
- i = (i+1) % triggerMatchMemAddr;
- if(i == bt_queue_head_address) {
- before_trigger = false;
- i = triggerMatchMemAddr;
- }
- }
- else
- i = i + 1;
- } while (i < (memWords-1));
-
- strLine = "$stop;\nend\nendmodule\n";
- stream.write(strLine.getBytes());
-
- // Write raw memory information.
- strLine = "/*\n"+STR_ORIGINAL_CAPTURE_DUMP+"\n";
- for(i=0; i=0; j--) {
- //strLine += "["+j+"]"+" " + Integer.toHexString(memoryLineBytes[i][j]) + " ";
- if((0x000000FF & (int) memoryLineBytes[i][j]) <= 0x0F)
- strLine += "0";
- strLine += Integer.toHexString(
- 0x000000FF & (int) memoryLineBytes[i][j]).toUpperCase() + " ";
- }
- strLine += "\n";
- }
-/*
- for(i=0; i=0; j--) {
- if((0x000000FF & (int) memoryLineBytes[i][j]) <= 0x0F)
- strLine += "0";
- strLine += Integer.toHexString(
- 0x000000FF & (int) memoryLineBytes[i][j]).toUpperCase() + " ";
- }
- strLine += "\n";
- stream.write(strLine.getBytes());
- }
-*/
- strLine += "*/\n";
- stream.write(strLine.getBytes());
-
- stream.close();
- System.out.println("Job done. Please simulate " + outputFileName);
- }
-
- private void allocateMemory()
- {
- // Allocate memory
- int i,j;
- memoryLineBytes = new byte[memWords][];
- for(i=0; i=0; j--) {
- memoryLineBytes[i][j] = (byte) Integer.parseInt(st.nextToken(), 16);
- }
- i++;
- if(i >= memWords)
- allMemoryRead = true;
- //}
- //else
- //if (line.startsWith(STR_ORIGINAL_CAPTURE_DUMP)) {
- // startOfMemory=true;
- // i = 0;
- //}
- } while (!allMemoryRead);
- } catch (Exception e) {
- e.printStackTrace();
- fatalError("rebuildCapturedDataFromFile exception");
- }
- }
-
- public void job(String propertiesFileName, String strRebuildFileName)
- {
- getProperties(propertiesFileName);
- allocateMemory();
- if(strRebuildFileName == null)
- getCapturedData(portName);
- else
- rebuildCapturedDataFromFile(strRebuildFileName);
- try {
- saveCapturedData();
- } catch (IOException e) {
- e.printStackTrace();
- fatalError("Error saving Captured Data");
- }
- }
-
- public static void fatalError(String errorName)
- {
- System.out.println("Fatal error: " + errorName);
- System.exit(-1);
- }
-
- public void getProperties(String fileName)
- {
- File f;
- f = new File(fileName);
- if (!f.isFile()) {
- System.out.println("Error: File does not exist: " + fileName);
- System.exit(-1);
- }
-
- InputStream stream;
- try {
- stream = new FileInputStream(f);
- try {
- properties.load(stream);
- } catch (IOException e) {
- fatalError("IOException " + fileName);
- }
- } catch (FileNotFoundException e) {
- fatalError("FileNotFoundException "+ fileName);
- }
-
- String strVal;
- portName = properties.getProperty(NAME + ".portName");
- if(portName == null)
- fatalError("Properties: missing portName");
- strBaudRate = properties.getProperty(NAME + ".baudRate");
- if(strBaudRate == null)
- fatalError("Properties: missing baudRate");
- //if(!strBaudRate.equals("115200") && !strBaudRate.equals("38400") && !strBaudRate.equals("9600"))
- //fatalError("Invalid baudRate (must be 115200 or 38400 or 9600)");
-
- // time units
- strTimescaleUnit=properties.getProperty(NAME + ".timescaleUnit");
- strTimescalePrecision=properties.getProperty(NAME + ".timescalePrecision");
- if(strTimescaleUnit == null || strTimescalePrecision == null)
- fatalError("Properties: Not found timescale - unit or precision");
- // clockPeriod
- strVal=properties.getProperty(NAME + ".clockPeriod");
- if(strVal != null)
- clockPeriod=Integer.parseInt(strVal);
- else
- fatalError("Properties: clockPeriod not found");
-
- // User signals
- strVal=properties.getProperty(NAME + ".totalSignals");
- if(strVal != null)
- totalSignals=Integer.parseInt(strVal);
- else
- fatalError("Properties: endian not found");
- // Groups of signals
- strVal=properties.getProperty(NAME + ".signalGroups");
- if(strVal != null)
- signalGroups=Integer.parseInt(strVal);
- else
- fatalError("Properties: signalGroups not found");
- groupName=new String[signalGroups];
- groupSize=new int[signalGroups];
- groupEndian=new int[signalGroups];
- int i;
- int sumOfSignals=0;
- for (i=0; i < signalGroups; i++)
- {
- String strGroupName, strGroupSize, strGroupEndian;
- strGroupName=properties.getProperty(NAME + ".groupName."+i);
- strGroupSize=properties.getProperty(NAME + ".groupSize."+i);
- strGroupEndian=properties.getProperty(NAME + ".groupEndian."+i);
- if(strGroupName == null || strGroupSize == null || strGroupEndian == null)
- fatalError("Properties: group " + i + " not found groupName or groupSize or groupEndian");
- else {
- groupName[i]=strGroupName;
- groupSize[i]=Integer.parseInt(strGroupSize);
- sumOfSignals += groupSize[i];
- groupEndian[i]=Integer.parseInt(strGroupEndian);
- }
- }
- if(sumOfSignals != totalSignals)
- fatalError("Properties: totalSignals != sum of all group sizes: " + totalSignals + " != "+sumOfSignals);
-
-
- // Memory
- strVal=properties.getProperty(NAME + ".memWords");
- if(strVal != null)
- memWords=Integer.parseInt(strVal);
- else
- fatalError("Properties: memWords not found");
- strVal=properties.getProperty(NAME + ".dataWordLenBits");
- if(strVal != null)
- dataWordLenBits=Integer.parseInt(strVal);
- else
- fatalError("Properties: dataWordLenBits not found");
- if((dataWordLenBits % 8) != 0)
- fatalError("Properties: dataWordLenBits is not multiple of 8");
- if(dataWordLenBits != totalSignals)
- fatalError("Properties: totalSignals != dataWordLenBits: " + totalSignals + " != "+dataWordLenBits);
- strVal=properties.getProperty(NAME + ".clonesWordLenBits");
- if(strVal != null)
- clonesWordLenBits=Integer.parseInt(strVal);
- else
- fatalError("Properties: clonesWordLenBits not found");
- if((clonesWordLenBits % 8) != 0)
- fatalError("Properties: clonesWordLenBits is not multiple of 8");
- memWordLenBits = dataWordLenBits + clonesWordLenBits;
- // Compute sizes
- // octetsPerWord
- octetsPerWord = memWordLenBits / 8;
- if (memWordLenBits % 8 > 0)
- octetsPerWord++;
- totalmemoryDataBytes = memWords*octetsPerWord;
- // Trigger
- strVal=properties.getProperty(NAME + ".triggerMatchMemAddr");
- if(strVal != null)
- triggerMatchMemAddr=Integer.parseInt(strVal);
- else
- fatalError("Properties: triggerMatchMemAddr not found");
-/*
- strVal=properties.getProperty(NAME + ".maxSamplesAfterTrigger");
- if(strVal != null)
- maxSamplesAfterTrigger=Integer.parseInt(strVal);
- else
- fatalError("Properties: maxSamplesAfterTrigger not found");
-
- // triggerLastValue
- strVal=properties.getProperty(NAME + ".triggerLastValue");
- if(strVal != null) {
- StringTokenizer st;
- int j, tNo;
- st = new StringTokenizer(strVal," ");
- tNo= st.countTokens();
- if(tNo != octetsPerWord)
- fatalError("triggerLastValue " + " tNo != octetsPerWord: " + tNo + " != " + octetsPerWord);
- triggerLastValue = new int[octetsPerWord];
- for(j=octetsPerWord-1; j>=0; j--) {
- triggerLastValue[j] = (byte) Integer.parseInt(st.nextToken(), 16);
- }
- }
- else
- fatalError("Properties: triggerLastValue not found");
-*/
- }
-
- public String getTime()
- {
- Calendar calendar=new GregorianCalendar();
- String strTime;
- int field;
- strTime = "" + calendar.get(Calendar.YEAR);
- field = 1 + calendar.get(Calendar.MONTH);
- if(field < 10)
- strTime += "0";
- strTime += field;
- if(calendar.get(Calendar.DAY_OF_MONTH) < 10)
- strTime += "0";
- strTime += calendar.get(Calendar.DAY_OF_MONTH) + "_" ;
- if(calendar.get(Calendar.HOUR_OF_DAY) < 10)
- strTime += "0";
- strTime += calendar.get(Calendar.HOUR_OF_DAY);
- if(calendar.get(Calendar.MINUTE) < 10)
- strTime += "0";
- strTime += calendar.get(Calendar.MINUTE) + "_";
- if(calendar.get(Calendar.SECOND) < 10)
- strTime += "0";
- strTime += calendar.get(Calendar.SECOND) ;
- System.out.println("date and time: "+strTime);
- return strTime;
- }
-
- public static void main(String[] args) throws Exception
- {
- if(args.length < 1)
- VeriFLA.fatalError("Too few arguments: "+args.length+
- "\nSintax is:\n\tjava VeriFLA [=0/1 (default 0)] [sourceToRebuild_capture]\n"+
- "Examples:\n1. Wait for FPGA to send capture:\n\tjava VeriFLA verifla_properties_keyboard.txt\n"+
- "2. Send to the monitor the run command and wait for FPGA to send capture:\n\tjava VeriFLA verifla_properties_keyboard.txt 1\n"
- );
- // 1st arg.
- System.out.println("propertiesFileName = " + args[0]);
- // 2nd arg.
- sendRunCommand = 0;
- if(args.length >= 2) {
- System.out.println(" sendRunCommand = " + args[1]);
- sendRunCommand = Integer.parseInt(args[1]);
- }
- // 3rd arg.
- String sourceToRebuildCaptureFile=null;
- if(args.length >= 3) {
- System.out.println(" sourceToRebuild_capture = " + args[2]);
- sourceToRebuildCaptureFile = args[2];
- }
- VeriFLA verifla;
- verifla = new VeriFLA();
- verifla.job(args[0], sourceToRebuildCaptureFile);
- }
-
- // This java app. data members
- boolean debugVeriFLA=true;
-
- String propertiesFileName;
- Properties properties;
- SerialPort serialPort;
- String strBaudRate;
- final static String NAME = "LA";
- final static String STR_ORIGINAL_CAPTURE_DUMP = "ORIGINAL CAPTURE DUMP";
- final static int USERCMD_RESET=0x00, USERCMD_RUN = 0x01;
- byte [][] memoryLineBytes;
- int octetsPerWord, totalmemoryDataBytes;
- int totalSignals;
- public static int sendRunCommand=0;
- int clockPeriod;
-
- // Properties file members
- String portName;
- int memWords, memWordLenBits, dataWordLenBits, clonesWordLenBits,
- triggerMatchMemAddr, maxSamplesAfterTrigger;
- //int [] triggerLastValue;
- String strTimescaleUnit, strTimescalePrecision;
- int signalGroups;
- String [] groupName;
- int [] groupSize, groupEndian;
-}
openverifla_2.3/java/VeriFLA.java
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/UARTSendReceive.java
===================================================================
--- openverifla_2.3/java/UARTSendReceive.java (revision 41)
+++ openverifla_2.3/java/UARTSendReceive.java (nonexistent)
@@ -1,156 +0,0 @@
-/*
-UARTSendReceive.java
-License: GNU GPL
-
-Revision history:
-revistion date: 2018/07/20; author: Laurentiu Duca
-- port of SerialPort jssc instead of rxtx
-revision date: 2007/Sep/03; author: Laurentiu Duca
-- captureOnly feature
-- consider that the bt_queue_head_address is wrote at the end of the data capture.
-- use HOUR_OF_DAY (0..23)
-
-revision date: 2007/Jul/4; author: Laurentiu DUCA
-- v01
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.BufferedReader;
-import java.util.Properties;
-import java.util.Enumeration;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.StringTokenizer;
-
-import jssc.SerialPort;
-import jssc.SerialPortException;
-
-public class UARTSendReceive extends Object {
-
- // Data members are declared at the end.
-
- /**
- * Creates a new object.
- *
- */
- public UARTSendReceive() {
- this.serialPort = null;
- //this.properties = new Properties();
- }
-
- /**
- * Attaches the given serial serialPort to the device object.
- * The method will try to open the serialPort.
- */
- public boolean attach(String portName, String strBaudRate, String parity) {
- serialPort = new SerialPort(portName);
-
- byte pb[]=parity.getBytes();
- int b=pb[0]=='1'?SerialPort.PARITY_ODD:SerialPort.PARITY_NONE;
- System.out.println("parity="+b);
- try {
- serialPort.openPort();//Open serial port
- int baudrate=Integer.parseInt(strBaudRate);
- //strBaudRate.equals("115200")?SerialPort.BAUDRATE_115200:
- //strBaudRate.equals("38400")?SerialPort.BAUDRATE_38400:SerialPort.BAUDRATE_9600;
- serialPort.setParams(baudrate,
- SerialPort.DATABITS_8,
- SerialPort.STOPBITS_1,
- b); //SerialPort.PARITY_NONE);
- //Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
- //serialPort.writeBytes("This is a test string".getBytes());//Write data to port
- } catch (SerialPortException ex) {
- ex.printStackTrace(System.out);
- return false;
- }
-
- return true;
- }
-
- /**
- * Detaches the currently attached serialPort, if one exists.
- * This will close the serial port.
- *
- */
- public void detach() {
- if (serialPort != null) {
- try {
- serialPort.closePort();
- } catch (SerialPortException ex) {
- ex.printStackTrace(System.out);
- }
- }
- }
-
- public void sendReceive(String msg) throws IOException, SerialPortException {
- byte rawByte[]=new byte[1];
- rawByte = msg.getBytes();
-
- System.out.println("Sending...");
- serialPort.writeBytes(rawByte);
- System.out.println("Done sending.");
-
- // Read Captured data
- System.out.println("Reading");
- byte readByte[] = serialPort.readBytes(1);
- System.out.printf("Read: '%c'=0x%x\n", (char) readByte[0], (int) readByte[0]);
- }
-
- public void getCapturedData(String portName, String strBaudRate, String parity, String msg)
- {
- boolean found;
- found = attach(portName, strBaudRate, parity);
- if(!found) {
- System.out.println("Port " + portName + " not found.\n");
- System.exit(0);
- }
- try {
- sendReceive(msg);
- } catch (Exception ex) {
- ex.printStackTrace(System.out);
- }
- detach();
- }
-
-
- public static void fatalError(String errorName)
- {
- System.out.println("Fatal error: " + errorName);
- System.exit(-1);
- }
-
-
- public static void main(String[] args) throws Exception
- {
- if(args.length != 4)
- UARTSendReceive.fatalError("Number of arguments is not 4; is "+args.length+"\n"+
- "Sintax is:\njava UARTSendReceive \n"+
- "Examples:\n"+
- "java UARTSendReceive COM5 9600 0 a\n"+
- "java UARTSendReceive /dev/ttyUSB0 115200 0 a\n");
- // 1st arg.
- System.out.println("port = " + args[0]);
- System.out.println("baudrate = " + args[1]);
- //if(!args[1].equals("115200") && !args[1].equals("38400") && !args[1].equals("9600"))
- // fatalError("Invalid baudrate");
- System.out.println("parity = " + args[2]);
- System.out.println("char = " + args[3]);
- UARTSendReceive usr;
- usr = new UARTSendReceive();
- usr.getCapturedData(args[0], args[1], args[2], args[3]);
- }
-
- SerialPort serialPort;
- byte [][] memoryDataWords;
- int octetsPerWord, idOfTypeBitInLastOctet, totalmemoryDataBytes;
- // Properties file members
- String portName;
-}
openverifla_2.3/java/UARTSendReceive.java
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/run.bat
===================================================================
--- openverifla_2.3/java/run.bat (revision 41)
+++ openverifla_2.3/java/run.bat (nonexistent)
@@ -1,2 +0,0 @@
-set CLASSPATH=jssc.jar;.
-java %1 %2 %3 %4 %5
Index: openverifla_2.3/java/capture_20181016_1230_58.v
===================================================================
--- openverifla_2.3/java/capture_20181016_1230_58.v (revision 41)
+++ openverifla_2.3/java/capture_20181016_1230_58.v (nonexistent)
@@ -1,356 +0,0 @@
-`timescale 1ns / 10ps
-
-module capture_20181016_1230_58(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
-
-output clk_of_verifla;
-output la_trigger_matched;
-output [16:0] memory_line_id;
-output [7:0] KBD_KEY;
-output kbd_clk_line;
-output kbd_data_line;
-output [5:0] not_used;
-reg [7:0] KBD_KEY;
-reg kbd_clk_line;
-reg kbd_data_line;
-reg [5:0] not_used;
-reg [16:0] memory_line_id;
-reg la_trigger_matched;
-reg clk_of_verifla;
-
-parameter PERIOD = 20;
-initial // Clock process for clk_of_verifla
-begin
- forever
- begin
- clk_of_verifla = 1'b0;
- #(10); clk_of_verifla = 1'b1;
- #(10);
- end
-end
-
-initial begin
-#(10);
-la_trigger_matched = 0;
-memory_line_id=6;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 1310670*(1ns)
-memory_line_id=7;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 2621330*(1ns)
-memory_line_id=0;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 3931990*(1ns)
-memory_line_id=1;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 5242650*(1ns)
-memory_line_id=2;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 6553310*(1ns)
-memory_line_id=3;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 7863970*(1ns)
-memory_line_id=4;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1198240;
-// ------------- Current Time: 9062210*(1ns)
-memory_line_id=5;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
-#11540;
-// ------------- Current Time: 9073750*(1ns)
-memory_line_id=8;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
-la_trigger_matched = 1;
-#60;
-// ------------- Current Time: 9073810*(1ns)
-memory_line_id=9;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#44180;
-// ------------- Current Time: 9117990*(1ns)
-memory_line_id=10;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
-#34280;
-// ------------- Current Time: 9152270*(1ns)
-memory_line_id=11;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#60;
-// ------------- Current Time: 9152330*(1ns)
-memory_line_id=12;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#43140;
-// ------------- Current Time: 9195470*(1ns)
-memory_line_id=13;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
-#34280;
-// ------------- Current Time: 9229750*(1ns)
-memory_line_id=14;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#60;
-// ------------- Current Time: 9229810*(1ns)
-memory_line_id=15;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
-#43140;
-// ------------- Current Time: 9272950*(1ns)
-memory_line_id=16;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
-#11460;
-// ------------- Current Time: 9284410*(1ns)
-memory_line_id=17;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
-#24900;
-// ------------- Current Time: 9309310*(1ns)
-memory_line_id=18;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
-#60;
-// ------------- Current Time: 9309370*(1ns)
-memory_line_id=19;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#43100;
-// ------------- Current Time: 9352470*(1ns)
-memory_line_id=20;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
-#36400;
-// ------------- Current Time: 9388870*(1ns)
-memory_line_id=21;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#60;
-// ------------- Current Time: 9388930*(1ns)
-memory_line_id=22;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#43100;
-// ------------- Current Time: 9432030*(1ns)
-memory_line_id=23;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
-#36400;
-// ------------- Current Time: 9468430*(1ns)
-memory_line_id=24;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#60;
-// ------------- Current Time: 9468490*(1ns)
-memory_line_id=25;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
-#43100;
-// ------------- Current Time: 9511590*(1ns)
-memory_line_id=26;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
-#12340;
-// ------------- Current Time: 9523930*(1ns)
-memory_line_id=27;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
-#22000;
-// ------------- Current Time: 9545930*(1ns)
-memory_line_id=28;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
-#60;
-// ------------- Current Time: 9545990*(1ns)
-memory_line_id=29;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#43140;
-// ------------- Current Time: 9589130*(1ns)
-memory_line_id=30;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
-#34260;
-// ------------- Current Time: 9623390*(1ns)
-memory_line_id=31;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#60;
-// ------------- Current Time: 9623450*(1ns)
-memory_line_id=32;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#43140;
-// ------------- Current Time: 9666590*(1ns)
-memory_line_id=33;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
-#34280;
-// ------------- Current Time: 9700870*(1ns)
-memory_line_id=34;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#60;
-// ------------- Current Time: 9700930*(1ns)
-memory_line_id=35;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#44180;
-// ------------- Current Time: 9745110*(1ns)
-memory_line_id=36;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
-#41600;
-// ------------- Current Time: 9786710*(1ns)
-memory_line_id=37;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#60;
-// ------------- Current Time: 9786770*(1ns)
-memory_line_id=38;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
-#43140;
-// ------------- Current Time: 9829910*(1ns)
-memory_line_id=39;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
-#11460;
-// ------------- Current Time: 9841370*(1ns)
-memory_line_id=40;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
-#30120;
-// ------------- Current Time: 9871490*(1ns)
-memory_line_id=41;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
-#60;
-// ------------- Current Time: 9871550*(1ns)
-memory_line_id=42;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
-#49380;
-// ------------- Current Time: 9920930*(1ns)
-memory_line_id=43;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 11231590*(1ns)
-memory_line_id=44;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 12542250*(1ns)
-memory_line_id=45;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 13852910*(1ns)
-memory_line_id=46;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 15163570*(1ns)
-memory_line_id=47;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 16474230*(1ns)
-memory_line_id=48;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 17784890*(1ns)
-memory_line_id=49;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 19095550*(1ns)
-memory_line_id=50;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 20406210*(1ns)
-memory_line_id=51;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 21716870*(1ns)
-memory_line_id=52;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 23027530*(1ns)
-memory_line_id=53;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 24338190*(1ns)
-memory_line_id=54;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 25648850*(1ns)
-memory_line_id=55;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 26959510*(1ns)
-memory_line_id=56;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 28270170*(1ns)
-memory_line_id=57;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 29580830*(1ns)
-memory_line_id=58;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 30891490*(1ns)
-memory_line_id=59;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 32202150*(1ns)
-memory_line_id=60;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 33512810*(1ns)
-memory_line_id=61;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 34823470*(1ns)
-memory_line_id=62;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 36134130*(1ns)
-$stop;
-end
-endmodule
-/*
-ORIGINAL CAPTURE DUMP
-memory_line_id=0: FF FD 03 00
-memory_line_id=1: FF FD 03 00
-memory_line_id=2: FF FD 03 00
-memory_line_id=3: FF FD 03 00
-memory_line_id=4: EA 08 03 00
-memory_line_id=5: 02 41 01 00
-memory_line_id=6: FF FD 03 00
-memory_line_id=7: FF FD 03 00
-memory_line_id=8: 00 03 00 00
-memory_line_id=9: 08 A1 04 00
-memory_line_id=10: 06 B2 05 00
-memory_line_id=11: 00 03 04 00
-memory_line_id=12: 08 6D 08 00
-memory_line_id=13: 06 B2 09 00
-memory_line_id=14: 00 03 08 00
-memory_line_id=15: 08 6D 0C 00
-memory_line_id=16: 02 3D 0D 00
-memory_line_id=17: 04 DD 0F 00
-memory_line_id=18: 00 03 0E 00
-memory_line_id=19: 08 6B 12 80
-memory_line_id=20: 07 1C 13 80
-memory_line_id=21: 00 03 12 80
-memory_line_id=22: 08 6B 16 C0
-memory_line_id=23: 07 1C 17 C0
-memory_line_id=24: 00 03 16 C0
-memory_line_id=25: 08 6B 1A E0
-memory_line_id=26: 02 69 1B E0
-memory_line_id=27: 04 4C 19 E0
-memory_line_id=28: 00 03 18 E0
-memory_line_id=29: 08 6D 1C 70
-memory_line_id=30: 06 B1 1D 70
-memory_line_id=31: 00 03 1C 70
-memory_line_id=32: 08 6D 20 38
-memory_line_id=33: 06 B2 21 38
-memory_line_id=34: 00 03 20 38
-memory_line_id=35: 08 A1 24 1C
-memory_line_id=36: 08 20 25 1C
-memory_line_id=37: 00 03 24 1C
-memory_line_id=38: 08 6D 28 1C
-memory_line_id=39: 02 3D 29 1C
-memory_line_id=40: 05 E2 2B 1C
-memory_line_id=41: 00 03 2A 1C
-memory_line_id=42: 09 A5 2E 1C
-memory_line_id=43: FF FD 2F 1C
-memory_line_id=44: FF FD 2F 1C
-memory_line_id=45: FF FD 2F 1C
-memory_line_id=46: FF FD 2F 1C
-memory_line_id=47: FF FD 2F 1C
-memory_line_id=48: FF FD 2F 1C
-memory_line_id=49: FF FD 2F 1C
-memory_line_id=50: FF FD 2F 1C
-memory_line_id=51: FF FD 2F 1C
-memory_line_id=52: FF FD 2F 1C
-memory_line_id=53: FF FD 2F 1C
-memory_line_id=54: FF FD 2F 1C
-memory_line_id=55: FF FD 2F 1C
-memory_line_id=56: FF FD 2F 1C
-memory_line_id=57: FF FD 2F 1C
-memory_line_id=58: FF FD 2F 1C
-memory_line_id=59: FF FD 2F 1C
-memory_line_id=60: FF FD 2F 1C
-memory_line_id=61: FF FD 2F 1C
-memory_line_id=62: FF FD 2F 1C
-memory_line_id=63: 00 00 00 05
-*/
Index: openverifla_2.3/java/capture_20181016_1235_36.v
===================================================================
--- openverifla_2.3/java/capture_20181016_1235_36.v (revision 41)
+++ openverifla_2.3/java/capture_20181016_1235_36.v (nonexistent)
@@ -1,356 +0,0 @@
-`timescale 1ns / 10ps
-
-module capture_20181016_1235_36(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
-
-output clk_of_verifla;
-output la_trigger_matched;
-output [16:0] memory_line_id;
-output [7:0] KBD_KEY;
-output kbd_clk_line;
-output kbd_data_line;
-output [5:0] not_used;
-reg [7:0] KBD_KEY;
-reg kbd_clk_line;
-reg kbd_data_line;
-reg [5:0] not_used;
-reg [16:0] memory_line_id;
-reg la_trigger_matched;
-reg clk_of_verifla;
-
-parameter PERIOD = 20;
-initial // Clock process for clk_of_verifla
-begin
- forever
- begin
- clk_of_verifla = 1'b0;
- #(10); clk_of_verifla = 1'b1;
- #(10);
- end
-end
-
-initial begin
-#(10);
-la_trigger_matched = 0;
-memory_line_id=4;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 1310670*(1ns)
-memory_line_id=5;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 2621330*(1ns)
-memory_line_id=6;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 3931990*(1ns)
-memory_line_id=7;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 5242650*(1ns)
-memory_line_id=0;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 6553310*(1ns)
-memory_line_id=1;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 7863970*(1ns)
-memory_line_id=2;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1029400;
-// ------------- Current Time: 8893370*(1ns)
-memory_line_id=3;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
-#11540;
-// ------------- Current Time: 8904910*(1ns)
-memory_line_id=8;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
-la_trigger_matched = 1;
-#60;
-// ------------- Current Time: 8904970*(1ns)
-memory_line_id=9;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#44180;
-// ------------- Current Time: 8949150*(1ns)
-memory_line_id=10;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
-#34300;
-// ------------- Current Time: 8983450*(1ns)
-memory_line_id=11;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#60;
-// ------------- Current Time: 8983510*(1ns)
-memory_line_id=12;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#43140;
-// ------------- Current Time: 9026650*(1ns)
-memory_line_id=13;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
-#34280;
-// ------------- Current Time: 9060930*(1ns)
-memory_line_id=14;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#60;
-// ------------- Current Time: 9060990*(1ns)
-memory_line_id=15;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
-#43160;
-// ------------- Current Time: 9104150*(1ns)
-memory_line_id=16;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
-#11460;
-// ------------- Current Time: 9115610*(1ns)
-memory_line_id=17;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
-#24900;
-// ------------- Current Time: 9140510*(1ns)
-memory_line_id=18;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
-#60;
-// ------------- Current Time: 9140570*(1ns)
-memory_line_id=19;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#43100;
-// ------------- Current Time: 9183670*(1ns)
-memory_line_id=20;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
-#36400;
-// ------------- Current Time: 9220070*(1ns)
-memory_line_id=21;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#60;
-// ------------- Current Time: 9220130*(1ns)
-memory_line_id=22;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#43120;
-// ------------- Current Time: 9263250*(1ns)
-memory_line_id=23;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
-#36400;
-// ------------- Current Time: 9299650*(1ns)
-memory_line_id=24;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#60;
-// ------------- Current Time: 9299710*(1ns)
-memory_line_id=25;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
-#43120;
-// ------------- Current Time: 9342830*(1ns)
-memory_line_id=26;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
-#12320;
-// ------------- Current Time: 9355150*(1ns)
-memory_line_id=27;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
-#22020;
-// ------------- Current Time: 9377170*(1ns)
-memory_line_id=28;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
-#60;
-// ------------- Current Time: 9377230*(1ns)
-memory_line_id=29;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#43140;
-// ------------- Current Time: 9420370*(1ns)
-memory_line_id=30;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
-#34280;
-// ------------- Current Time: 9454650*(1ns)
-memory_line_id=31;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#60;
-// ------------- Current Time: 9454710*(1ns)
-memory_line_id=32;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#43160;
-// ------------- Current Time: 9497870*(1ns)
-memory_line_id=33;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
-#34280;
-// ------------- Current Time: 9532150*(1ns)
-memory_line_id=34;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#60;
-// ------------- Current Time: 9532210*(1ns)
-memory_line_id=35;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#44180;
-// ------------- Current Time: 9576390*(1ns)
-memory_line_id=36;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
-#41620;
-// ------------- Current Time: 9618010*(1ns)
-memory_line_id=37;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#60;
-// ------------- Current Time: 9618070*(1ns)
-memory_line_id=38;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
-#43140;
-// ------------- Current Time: 9661210*(1ns)
-memory_line_id=39;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
-#11460;
-// ------------- Current Time: 9672670*(1ns)
-memory_line_id=40;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
-#30140;
-// ------------- Current Time: 9702810*(1ns)
-memory_line_id=41;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
-#60;
-// ------------- Current Time: 9702870*(1ns)
-memory_line_id=42;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
-#49380;
-// ------------- Current Time: 9752250*(1ns)
-memory_line_id=43;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 11062910*(1ns)
-memory_line_id=44;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 12373570*(1ns)
-memory_line_id=45;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 13684230*(1ns)
-memory_line_id=46;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 14994890*(1ns)
-memory_line_id=47;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 16305550*(1ns)
-memory_line_id=48;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 17616210*(1ns)
-memory_line_id=49;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 18926870*(1ns)
-memory_line_id=50;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 20237530*(1ns)
-memory_line_id=51;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 21548190*(1ns)
-memory_line_id=52;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 22858850*(1ns)
-memory_line_id=53;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 24169510*(1ns)
-memory_line_id=54;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 25480170*(1ns)
-memory_line_id=55;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 26790830*(1ns)
-memory_line_id=56;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 28101490*(1ns)
-memory_line_id=57;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 29412150*(1ns)
-memory_line_id=58;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 30722810*(1ns)
-memory_line_id=59;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 32033470*(1ns)
-memory_line_id=60;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 33344130*(1ns)
-memory_line_id=61;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 34654790*(1ns)
-memory_line_id=62;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 35965450*(1ns)
-$stop;
-end
-endmodule
-/*
-ORIGINAL CAPTURE DUMP
-memory_line_id=0: FF FD 03 00
-memory_line_id=1: FF FD 03 00
-memory_line_id=2: C9 0E 03 00
-memory_line_id=3: 02 41 01 00
-memory_line_id=4: FF FD 03 00
-memory_line_id=5: FF FD 03 00
-memory_line_id=6: FF FD 03 00
-memory_line_id=7: FF FD 03 00
-memory_line_id=8: 00 03 00 00
-memory_line_id=9: 08 A1 04 00
-memory_line_id=10: 06 B3 05 00
-memory_line_id=11: 00 03 04 00
-memory_line_id=12: 08 6D 08 00
-memory_line_id=13: 06 B2 09 00
-memory_line_id=14: 00 03 08 00
-memory_line_id=15: 08 6E 0C 00
-memory_line_id=16: 02 3D 0D 00
-memory_line_id=17: 04 DD 0F 00
-memory_line_id=18: 00 03 0E 00
-memory_line_id=19: 08 6B 12 80
-memory_line_id=20: 07 1C 13 80
-memory_line_id=21: 00 03 12 80
-memory_line_id=22: 08 6C 16 C0
-memory_line_id=23: 07 1C 17 C0
-memory_line_id=24: 00 03 16 C0
-memory_line_id=25: 08 6C 1A E0
-memory_line_id=26: 02 68 1B E0
-memory_line_id=27: 04 4D 19 E0
-memory_line_id=28: 00 03 18 E0
-memory_line_id=29: 08 6D 1C 70
-memory_line_id=30: 06 B2 1D 70
-memory_line_id=31: 00 03 1C 70
-memory_line_id=32: 08 6E 20 38
-memory_line_id=33: 06 B2 21 38
-memory_line_id=34: 00 03 20 38
-memory_line_id=35: 08 A1 24 1C
-memory_line_id=36: 08 21 25 1C
-memory_line_id=37: 00 03 24 1C
-memory_line_id=38: 08 6D 28 1C
-memory_line_id=39: 02 3D 29 1C
-memory_line_id=40: 05 E3 2B 1C
-memory_line_id=41: 00 03 2A 1C
-memory_line_id=42: 09 A5 2E 1C
-memory_line_id=43: FF FD 2F 1C
-memory_line_id=44: FF FD 2F 1C
-memory_line_id=45: FF FD 2F 1C
-memory_line_id=46: FF FD 2F 1C
-memory_line_id=47: FF FD 2F 1C
-memory_line_id=48: FF FD 2F 1C
-memory_line_id=49: FF FD 2F 1C
-memory_line_id=50: FF FD 2F 1C
-memory_line_id=51: FF FD 2F 1C
-memory_line_id=52: FF FD 2F 1C
-memory_line_id=53: FF FD 2F 1C
-memory_line_id=54: FF FD 2F 1C
-memory_line_id=55: FF FD 2F 1C
-memory_line_id=56: FF FD 2F 1C
-memory_line_id=57: FF FD 2F 1C
-memory_line_id=58: FF FD 2F 1C
-memory_line_id=59: FF FD 2F 1C
-memory_line_id=60: FF FD 2F 1C
-memory_line_id=61: FF FD 2F 1C
-memory_line_id=62: FF FD 2F 1C
-memory_line_id=63: 00 00 00 03
-*/
Index: openverifla_2.3/java/verifla_properties_xenomai_spi.txt
===================================================================
--- openverifla_2.3/java/verifla_properties_xenomai_spi.txt (revision 41)
+++ openverifla_2.3/java/verifla_properties_xenomai_spi.txt (nonexistent)
@@ -1,56 +0,0 @@
-# VeriFLA Logic Analyzer Project File
-
-# Serial port
-# On Windows this would be COM5 or similar
-#/dev/ttyUSB0
-LA.portName=/dev/ttyUSB0
-LA.baudRate=115200
-
-# Memory
-# ====
-LA.memWords=128
-# Data input width and indentical samples bits (clones) must be multiple of 8.
-LA.dataWordLenBits=8
-LA.clonesWordLenBits=8
-LA.triggerMatchMemAddr=8
-
-
-# Generated verilog
-# ====
-LA.timescaleUnit=1ns
-LA.timescalePrecision=10ps
-# clockPeriod expressed in [timescaleUnit]
-LA.clockPeriod=20
-
-# User data signals
-LA.totalSignals=8
-# Big endian (1) or Little endian (0).
-LA.signalGroups=7
-# Group 0
-LA.groupName.0=MISO
-LA.groupSize.0=1
-LA.groupEndian.0=0
-# Group 1
-LA.groupName.1=MOSI
-LA.groupSize.1=1
-LA.groupEndian.1=0
-# Group 2
-LA.groupName.2=SSEL
-LA.groupSize.2=1
-LA.groupEndian.2=0
-# Group 3
-LA.groupName.3=SCK
-LA.groupSize.3=1
-LA.groupEndian.3=0
-# Group 4
-LA.groupName.4=interrupt_ack
-LA.groupSize.4=1
-LA.groupEndian.4=0
-# Group 5
-LA.groupName.5=spi_output_valid_sing
-LA.groupSize.5=1
-LA.groupEndian.5=0
-# Group 6
-LA.groupName.6=int_spi_latency_cnt_9_8
-LA.groupSize.6=2
-LA.groupEndian.6=0
openverifla_2.3/java/verifla_properties_xenomai_spi.txt
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/run.sh
===================================================================
--- openverifla_2.3/java/run.sh (revision 41)
+++ openverifla_2.3/java/run.sh (nonexistent)
@@ -1,3 +0,0 @@
-export CLASSPATH="jssc.jar:."
-echo "CLASSPATH=$CLASSPATH"
-java $1 $2 $3 $4 $5
openverifla_2.3/java/run.sh
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/jssc.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3/java/jssc.jar
===================================================================
--- openverifla_2.3/java/jssc.jar (revision 41)
+++ openverifla_2.3/java/jssc.jar (nonexistent)
openverifla_2.3/java/jssc.jar
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: openverifla_2.3/java/capture_spi_slave_20180824_1626.v
===================================================================
--- openverifla_2.3/java/capture_spi_slave_20180824_1626.v (revision 41)
+++ openverifla_2.3/java/capture_spi_slave_20180824_1626.v (nonexistent)
@@ -1,1322 +0,0 @@
-`timescale 1ns / 10ps
-
-module capture_20180824_1626_23(clk_of_verifla, la_trigger_matched, SCK, SSEL, MOSI, MISO, bitcnt_0, byte_received, byte_data_sent_10, memory_line_id);
-
-output clk_of_verifla;
-output la_trigger_matched;
-output [64:0] memory_line_id;
-output SCK;
-output SSEL;
-output MOSI;
-output MISO;
-output bitcnt_0;
-output byte_received;
-output [1:0] byte_data_sent_10;
-reg SCK;
-reg SSEL;
-reg MOSI;
-reg MISO;
-reg bitcnt_0;
-reg byte_received;
-reg [1:0] byte_data_sent_10;
-reg [64:0] memory_line_id;
-reg la_trigger_matched;
-reg clk_of_verifla;
-
-parameter PERIOD = 20;
-initial // Clock process for clk_of_verifla
-begin
- forever
- begin
- clk_of_verifla = 1'b0;
- #(10); clk_of_verifla = 1'b1;
- #(10);
- end
-end
-
-initial begin
-#(10);
-la_trigger_matched = 0;
-memory_line_id=2;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 5070*(1ns)
-memory_line_id=3;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 10130*(1ns)
-memory_line_id=4;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 15190*(1ns)
-memory_line_id=5;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 20250*(1ns)
-memory_line_id=6;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 25310*(1ns)
-memory_line_id=7;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 30370*(1ns)
-memory_line_id=0;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 35430*(1ns)
-memory_line_id=1;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#2760;
-// ------------- Current Time: 38190*(1ns)
-memory_line_id=8;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-la_trigger_matched = 1;
-#5060;
-// ------------- Current Time: 43250*(1ns)
-memory_line_id=9;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#5060;
-// ------------- Current Time: 48310*(1ns)
-memory_line_id=10;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#3460;
-// ------------- Current Time: 51770*(1ns)
-memory_line_id=11;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 52270*(1ns)
-memory_line_id=12;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 52330*(1ns)
-memory_line_id=13;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 52770*(1ns)
-memory_line_id=14;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 53270*(1ns)
-memory_line_id=15;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 53330*(1ns)
-memory_line_id=16;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 53770*(1ns)
-memory_line_id=17;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 54270*(1ns)
-memory_line_id=18;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 54330*(1ns)
-memory_line_id=19;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 54770*(1ns)
-memory_line_id=20;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 55270*(1ns)
-memory_line_id=21;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 55330*(1ns)
-memory_line_id=22;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 55770*(1ns)
-memory_line_id=23;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 56270*(1ns)
-memory_line_id=24;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 56330*(1ns)
-memory_line_id=25;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 56770*(1ns)
-memory_line_id=26;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 57270*(1ns)
-memory_line_id=27;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 57330*(1ns)
-memory_line_id=28;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 57770*(1ns)
-memory_line_id=29;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 58270*(1ns)
-memory_line_id=30;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 58330*(1ns)
-memory_line_id=31;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 58770*(1ns)
-memory_line_id=32;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 59270*(1ns)
-memory_line_id=33;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 59330*(1ns)
-memory_line_id=34;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100101;
-#440;
-// ------------- Current Time: 59770*(1ns)
-memory_line_id=35;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100000;
-#60;
-// ------------- Current Time: 59830*(1ns)
-memory_line_id=36;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 64890*(1ns)
-memory_line_id=37;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 69950*(1ns)
-memory_line_id=38;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 75010*(1ns)
-memory_line_id=39;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 80070*(1ns)
-memory_line_id=40;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 85130*(1ns)
-memory_line_id=41;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 90190*(1ns)
-memory_line_id=42;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 95250*(1ns)
-memory_line_id=43;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 100310*(1ns)
-memory_line_id=44;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 105370*(1ns)
-memory_line_id=45;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 110430*(1ns)
-memory_line_id=46;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 115490*(1ns)
-memory_line_id=47;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 120550*(1ns)
-memory_line_id=48;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 125610*(1ns)
-memory_line_id=49;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 130670*(1ns)
-memory_line_id=50;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 135730*(1ns)
-memory_line_id=51;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 140790*(1ns)
-memory_line_id=52;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 145850*(1ns)
-memory_line_id=53;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 150910*(1ns)
-memory_line_id=54;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 155970*(1ns)
-memory_line_id=55;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 161030*(1ns)
-memory_line_id=56;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 166090*(1ns)
-memory_line_id=57;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 171150*(1ns)
-memory_line_id=58;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 176210*(1ns)
-memory_line_id=59;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#1340;
-// ------------- Current Time: 177550*(1ns)
-memory_line_id=60;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 182610*(1ns)
-memory_line_id=61;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 187670*(1ns)
-memory_line_id=62;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#680;
-// ------------- Current Time: 188350*(1ns)
-memory_line_id=63;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#60;
-// ------------- Current Time: 188410*(1ns)
-memory_line_id=64;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 193470*(1ns)
-memory_line_id=65;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 198530*(1ns)
-memory_line_id=66;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 203590*(1ns)
-memory_line_id=67;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 208650*(1ns)
-memory_line_id=68;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 213710*(1ns)
-memory_line_id=69;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 218770*(1ns)
-memory_line_id=70;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 223830*(1ns)
-memory_line_id=71;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 228890*(1ns)
-memory_line_id=72;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 233950*(1ns)
-memory_line_id=73;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 239010*(1ns)
-memory_line_id=74;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 244070*(1ns)
-memory_line_id=75;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 249130*(1ns)
-memory_line_id=76;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#2000;
-// ------------- Current Time: 251130*(1ns)
-memory_line_id=77;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100001;
-#60;
-// ------------- Current Time: 251190*(1ns)
-memory_line_id=78;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010001;
-#440;
-// ------------- Current Time: 251630*(1ns)
-memory_line_id=79;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010000;
-#60;
-// ------------- Current Time: 251690*(1ns)
-memory_line_id=80;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 252130*(1ns)
-memory_line_id=81;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 252190*(1ns)
-memory_line_id=82;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 252630*(1ns)
-memory_line_id=83;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
-#60;
-// ------------- Current Time: 252690*(1ns)
-memory_line_id=84;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#440;
-// ------------- Current Time: 253130*(1ns)
-memory_line_id=85;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 253190*(1ns)
-memory_line_id=86;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 253630*(1ns)
-memory_line_id=87;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 254130*(1ns)
-memory_line_id=88;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 254190*(1ns)
-memory_line_id=89;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 254630*(1ns)
-memory_line_id=90;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 255130*(1ns)
-memory_line_id=91;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 255190*(1ns)
-memory_line_id=92;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 255630*(1ns)
-memory_line_id=93;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 256130*(1ns)
-memory_line_id=94;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 256190*(1ns)
-memory_line_id=95;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 256630*(1ns)
-memory_line_id=96;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 257130*(1ns)
-memory_line_id=97;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 257190*(1ns)
-memory_line_id=98;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 257630*(1ns)
-memory_line_id=99;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#60;
-// ------------- Current Time: 257690*(1ns)
-memory_line_id=100;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
-#440;
-// ------------- Current Time: 258130*(1ns)
-memory_line_id=101;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#60;
-// ------------- Current Time: 258190*(1ns)
-memory_line_id=102;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
-#440;
-// ------------- Current Time: 258630*(1ns)
-memory_line_id=103;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 258690*(1ns)
-memory_line_id=104;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#1440;
-// ------------- Current Time: 260130*(1ns)
-memory_line_id=105;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100001;
-#60;
-// ------------- Current Time: 260190*(1ns)
-memory_line_id=106;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010001;
-#440;
-// ------------- Current Time: 260630*(1ns)
-memory_line_id=107;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
-#60;
-// ------------- Current Time: 260690*(1ns)
-memory_line_id=108;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 261130*(1ns)
-memory_line_id=109;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 261190*(1ns)
-memory_line_id=110;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 261630*(1ns)
-memory_line_id=111;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
-#60;
-// ------------- Current Time: 261690*(1ns)
-memory_line_id=112;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#440;
-// ------------- Current Time: 262130*(1ns)
-memory_line_id=113;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 262190*(1ns)
-memory_line_id=114;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 262630*(1ns)
-memory_line_id=115;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 263130*(1ns)
-memory_line_id=116;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 263190*(1ns)
-memory_line_id=117;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 263630*(1ns)
-memory_line_id=118;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 264130*(1ns)
-memory_line_id=119;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 264190*(1ns)
-memory_line_id=120;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 264630*(1ns)
-memory_line_id=121;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 265130*(1ns)
-memory_line_id=122;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 265190*(1ns)
-memory_line_id=123;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 265630*(1ns)
-memory_line_id=124;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#60;
-// ------------- Current Time: 265690*(1ns)
-memory_line_id=125;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001100;
-#440;
-// ------------- Current Time: 266130*(1ns)
-memory_line_id=126;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001101;
-#60;
-// ------------- Current Time: 266190*(1ns)
-memory_line_id=127;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#440;
-// ------------- Current Time: 266630*(1ns)
-memory_line_id=128;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011000;
-#500;
-// ------------- Current Time: 267130*(1ns)
-memory_line_id=129;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
-#60;
-// ------------- Current Time: 267190*(1ns)
-memory_line_id=130;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101001;
-#440;
-// ------------- Current Time: 267630*(1ns)
-memory_line_id=131;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 267690*(1ns)
-memory_line_id=132;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#940;
-// ------------- Current Time: 268630*(1ns)
-memory_line_id=133;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100100;
-#500;
-// ------------- Current Time: 269130*(1ns)
-memory_line_id=134;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100101;
-#60;
-// ------------- Current Time: 269190*(1ns)
-memory_line_id=135;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010101;
-#440;
-// ------------- Current Time: 269630*(1ns)
-memory_line_id=136;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
-#60;
-// ------------- Current Time: 269690*(1ns)
-memory_line_id=137;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 270130*(1ns)
-memory_line_id=138;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 270190*(1ns)
-memory_line_id=139;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 270630*(1ns)
-memory_line_id=140;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000100;
-#60;
-// ------------- Current Time: 270690*(1ns)
-memory_line_id=141;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#440;
-// ------------- Current Time: 271130*(1ns)
-memory_line_id=142;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 271190*(1ns)
-memory_line_id=143;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 271630*(1ns)
-memory_line_id=144;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 272130*(1ns)
-memory_line_id=145;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 272190*(1ns)
-memory_line_id=146;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 272630*(1ns)
-memory_line_id=147;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 273130*(1ns)
-memory_line_id=148;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 273190*(1ns)
-memory_line_id=149;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 273630*(1ns)
-memory_line_id=150;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 274130*(1ns)
-memory_line_id=151;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 274190*(1ns)
-memory_line_id=152;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 274630*(1ns)
-memory_line_id=153;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#60;
-// ------------- Current Time: 274690*(1ns)
-memory_line_id=154;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001000;
-#440;
-// ------------- Current Time: 275130*(1ns)
-memory_line_id=155;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001001;
-#60;
-// ------------- Current Time: 275190*(1ns)
-memory_line_id=156;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
-#440;
-// ------------- Current Time: 275630*(1ns)
-memory_line_id=157;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
-#500;
-// ------------- Current Time: 276130*(1ns)
-memory_line_id=158;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#60;
-// ------------- Current Time: 276190*(1ns)
-memory_line_id=159;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
-#440;
-// ------------- Current Time: 276630*(1ns)
-memory_line_id=160;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 276690*(1ns)
-memory_line_id=161;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#2740;
-// ------------- Current Time: 279430*(1ns)
-memory_line_id=162;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 284490*(1ns)
-memory_line_id=163;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 289550*(1ns)
-memory_line_id=164;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 294610*(1ns)
-memory_line_id=165;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 299670*(1ns)
-memory_line_id=166;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 304730*(1ns)
-memory_line_id=167;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 309790*(1ns)
-memory_line_id=168;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 314850*(1ns)
-memory_line_id=169;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 319910*(1ns)
-memory_line_id=170;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 324970*(1ns)
-memory_line_id=171;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 330030*(1ns)
-memory_line_id=172;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 335090*(1ns)
-memory_line_id=173;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 340150*(1ns)
-memory_line_id=174;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 345210*(1ns)
-memory_line_id=175;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 350270*(1ns)
-memory_line_id=176;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 355330*(1ns)
-memory_line_id=177;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 360390*(1ns)
-memory_line_id=178;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 365450*(1ns)
-memory_line_id=179;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 370510*(1ns)
-memory_line_id=180;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 375570*(1ns)
-memory_line_id=181;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 380630*(1ns)
-memory_line_id=182;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 385690*(1ns)
-memory_line_id=183;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 390750*(1ns)
-memory_line_id=184;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 395810*(1ns)
-memory_line_id=185;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 400870*(1ns)
-memory_line_id=186;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 405930*(1ns)
-memory_line_id=187;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 410990*(1ns)
-memory_line_id=188;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 416050*(1ns)
-memory_line_id=189;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 421110*(1ns)
-memory_line_id=190;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 426170*(1ns)
-memory_line_id=191;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 431230*(1ns)
-memory_line_id=192;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 436290*(1ns)
-memory_line_id=193;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 441350*(1ns)
-memory_line_id=194;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 446410*(1ns)
-memory_line_id=195;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 451470*(1ns)
-memory_line_id=196;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 456530*(1ns)
-memory_line_id=197;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 461590*(1ns)
-memory_line_id=198;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 466650*(1ns)
-memory_line_id=199;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 471710*(1ns)
-memory_line_id=200;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 476770*(1ns)
-memory_line_id=201;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 481830*(1ns)
-memory_line_id=202;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 486890*(1ns)
-memory_line_id=203;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 491950*(1ns)
-memory_line_id=204;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 497010*(1ns)
-memory_line_id=205;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 502070*(1ns)
-memory_line_id=206;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 507130*(1ns)
-memory_line_id=207;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 512190*(1ns)
-memory_line_id=208;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 517250*(1ns)
-memory_line_id=209;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 522310*(1ns)
-memory_line_id=210;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 527370*(1ns)
-memory_line_id=211;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 532430*(1ns)
-memory_line_id=212;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 537490*(1ns)
-memory_line_id=213;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 542550*(1ns)
-memory_line_id=214;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 547610*(1ns)
-memory_line_id=215;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 552670*(1ns)
-memory_line_id=216;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 557730*(1ns)
-memory_line_id=217;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 562790*(1ns)
-memory_line_id=218;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 567850*(1ns)
-memory_line_id=219;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 572910*(1ns)
-memory_line_id=220;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 577970*(1ns)
-memory_line_id=221;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 583030*(1ns)
-memory_line_id=222;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 588090*(1ns)
-memory_line_id=223;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 593150*(1ns)
-memory_line_id=224;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 598210*(1ns)
-memory_line_id=225;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 603270*(1ns)
-memory_line_id=226;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 608330*(1ns)
-memory_line_id=227;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 613390*(1ns)
-memory_line_id=228;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 618450*(1ns)
-memory_line_id=229;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 623510*(1ns)
-memory_line_id=230;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 628570*(1ns)
-memory_line_id=231;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 633630*(1ns)
-memory_line_id=232;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 638690*(1ns)
-memory_line_id=233;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 643750*(1ns)
-memory_line_id=234;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 648810*(1ns)
-memory_line_id=235;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 653870*(1ns)
-memory_line_id=236;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 658930*(1ns)
-memory_line_id=237;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 663990*(1ns)
-memory_line_id=238;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 669050*(1ns)
-memory_line_id=239;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 674110*(1ns)
-memory_line_id=240;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 679170*(1ns)
-memory_line_id=241;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 684230*(1ns)
-memory_line_id=242;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 689290*(1ns)
-memory_line_id=243;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 694350*(1ns)
-memory_line_id=244;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 699410*(1ns)
-memory_line_id=245;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 704470*(1ns)
-memory_line_id=246;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 709530*(1ns)
-memory_line_id=247;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 714590*(1ns)
-memory_line_id=248;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 719650*(1ns)
-memory_line_id=249;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 724710*(1ns)
-memory_line_id=250;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 729770*(1ns)
-memory_line_id=251;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 734830*(1ns)
-memory_line_id=252;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 739890*(1ns)
-memory_line_id=253;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 744950*(1ns)
-memory_line_id=254;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 750010*(1ns)
-$stop;
-end
-endmodule
-/*
-ORIGINAL CAPTURE DUMP
-memory_line_id=0: FD 02
-memory_line_id=1: 8A 02
-memory_line_id=2: FD 02
-memory_line_id=3: FD 02
-memory_line_id=4: FD 02
-memory_line_id=5: FD 02
-memory_line_id=6: FD 02
-memory_line_id=7: FD 02
-memory_line_id=8: FD 00
-memory_line_id=9: FD 00
-memory_line_id=10: AD 00
-memory_line_id=11: 19 04
-memory_line_id=12: 03 05
-memory_line_id=13: 16 15
-memory_line_id=14: 19 10
-memory_line_id=15: 03 11
-memory_line_id=16: 16 01
-memory_line_id=17: 19 00
-memory_line_id=18: 03 01
-memory_line_id=19: 16 11
-memory_line_id=20: 19 14
-memory_line_id=21: 03 15
-memory_line_id=22: 16 05
-memory_line_id=23: 19 04
-memory_line_id=24: 03 05
-memory_line_id=25: 16 15
-memory_line_id=26: 19 14
-memory_line_id=27: 03 15
-memory_line_id=28: 16 05
-memory_line_id=29: 19 04
-memory_line_id=30: 03 05
-memory_line_id=31: 16 15
-memory_line_id=32: 19 14
-memory_line_id=33: 03 15
-memory_line_id=34: 16 25
-memory_line_id=35: 03 20
-memory_line_id=36: FD E0
-memory_line_id=37: FD E0
-memory_line_id=38: FD E0
-memory_line_id=39: FD E0
-memory_line_id=40: FD E0
-memory_line_id=41: FD E0
-memory_line_id=42: FD E0
-memory_line_id=43: FD E0
-memory_line_id=44: FD E0
-memory_line_id=45: FD E0
-memory_line_id=46: FD E0
-memory_line_id=47: FD E0
-memory_line_id=48: FD E0
-memory_line_id=49: FD E0
-memory_line_id=50: FD E0
-memory_line_id=51: FD E0
-memory_line_id=52: FD E0
-memory_line_id=53: FD E0
-memory_line_id=54: FD E0
-memory_line_id=55: FD E0
-memory_line_id=56: FD E0
-memory_line_id=57: FD E0
-memory_line_id=58: FD E0
-memory_line_id=59: 43 E0
-memory_line_id=60: FD E2
-memory_line_id=61: FD E2
-memory_line_id=62: 22 E2
-memory_line_id=63: 03 E0
-memory_line_id=64: FD 60
-memory_line_id=65: FD 60
-memory_line_id=66: FD 60
-memory_line_id=67: FD 60
-memory_line_id=68: FD 60
-memory_line_id=69: FD 60
-memory_line_id=70: FD 60
-memory_line_id=71: FD 60
-memory_line_id=72: FD 60
-memory_line_id=73: FD 60
-memory_line_id=74: FD 60
-memory_line_id=75: FD 60
-memory_line_id=76: 64 60
-memory_line_id=77: 03 61
-memory_line_id=78: 16 51
-memory_line_id=79: 03 50
-memory_line_id=80: 16 90
-memory_line_id=81: 03 91
-memory_line_id=82: 16 81
-memory_line_id=83: 03 80
-memory_line_id=84: 16 00
-memory_line_id=85: 03 01
-memory_line_id=86: 16 11
-memory_line_id=87: 19 10
-memory_line_id=88: 03 11
-memory_line_id=89: 16 01
-memory_line_id=90: 19 04
-memory_line_id=91: 03 05
-memory_line_id=92: 16 15
-memory_line_id=93: 19 10
-memory_line_id=94: 03 11
-memory_line_id=95: 16 01
-memory_line_id=96: 19 04
-memory_line_id=97: 03 05
-memory_line_id=98: 16 15
-memory_line_id=99: 03 14
-memory_line_id=100: 16 1C
-memory_line_id=101: 03 1D
-memory_line_id=102: 16 2D
-memory_line_id=103: 03 28
-memory_line_id=104: 48 E0
-memory_line_id=105: 03 E1
-memory_line_id=106: 16 D1
-memory_line_id=107: 03 D0
-memory_line_id=108: 16 90
-memory_line_id=109: 03 91
-memory_line_id=110: 16 81
-memory_line_id=111: 03 80
-memory_line_id=112: 16 00
-memory_line_id=113: 03 01
-memory_line_id=114: 16 11
-memory_line_id=115: 19 10
-memory_line_id=116: 03 11
-memory_line_id=117: 16 01
-memory_line_id=118: 19 00
-memory_line_id=119: 03 01
-memory_line_id=120: 16 11
-memory_line_id=121: 19 10
-memory_line_id=122: 03 11
-memory_line_id=123: 16 01
-memory_line_id=124: 03 04
-memory_line_id=125: 16 0C
-memory_line_id=126: 03 0D
-memory_line_id=127: 16 1D
-memory_line_id=128: 19 18
-memory_line_id=129: 03 19
-memory_line_id=130: 16 29
-memory_line_id=131: 03 28
-memory_line_id=132: 2F E0
-memory_line_id=133: 19 E4
-memory_line_id=134: 03 E5
-memory_line_id=135: 16 D5
-memory_line_id=136: 03 D0
-memory_line_id=137: 16 90
-memory_line_id=138: 03 91
-memory_line_id=139: 16 81
-memory_line_id=140: 03 84
-memory_line_id=141: 16 04
-memory_line_id=142: 03 05
-memory_line_id=143: 16 15
-memory_line_id=144: 19 14
-memory_line_id=145: 03 15
-memory_line_id=146: 16 05
-memory_line_id=147: 19 00
-memory_line_id=148: 03 01
-memory_line_id=149: 16 11
-memory_line_id=150: 19 14
-memory_line_id=151: 03 15
-memory_line_id=152: 16 05
-memory_line_id=153: 03 00
-memory_line_id=154: 16 08
-memory_line_id=155: 03 09
-memory_line_id=156: 16 19
-memory_line_id=157: 19 1C
-memory_line_id=158: 03 1D
-memory_line_id=159: 16 2D
-memory_line_id=160: 03 28
-memory_line_id=161: 89 E0
-memory_line_id=162: FD E2
-memory_line_id=163: FD E2
-memory_line_id=164: FD E2
-memory_line_id=165: FD E2
-memory_line_id=166: FD E2
-memory_line_id=167: FD E2
-memory_line_id=168: FD E2
-memory_line_id=169: FD E2
-memory_line_id=170: FD E2
-memory_line_id=171: FD E2
-memory_line_id=172: FD E2
-memory_line_id=173: FD E2
-memory_line_id=174: FD E2
-memory_line_id=175: FD E2
-memory_line_id=176: FD E2
-memory_line_id=177: FD E2
-memory_line_id=178: FD E2
-memory_line_id=179: FD E2
-memory_line_id=180: FD E2
-memory_line_id=181: FD E2
-memory_line_id=182: FD E2
-memory_line_id=183: FD E2
-memory_line_id=184: FD E2
-memory_line_id=185: FD E2
-memory_line_id=186: FD E2
-memory_line_id=187: FD E2
-memory_line_id=188: FD E2
-memory_line_id=189: FD E2
-memory_line_id=190: FD E2
-memory_line_id=191: FD E2
-memory_line_id=192: FD E2
-memory_line_id=193: FD E2
-memory_line_id=194: FD E2
-memory_line_id=195: FD E2
-memory_line_id=196: FD E2
-memory_line_id=197: FD E2
-memory_line_id=198: FD E2
-memory_line_id=199: FD E2
-memory_line_id=200: FD E2
-memory_line_id=201: FD E2
-memory_line_id=202: FD E2
-memory_line_id=203: FD E2
-memory_line_id=204: FD E2
-memory_line_id=205: FD E2
-memory_line_id=206: FD E2
-memory_line_id=207: FD E2
-memory_line_id=208: FD E2
-memory_line_id=209: FD E2
-memory_line_id=210: FD E2
-memory_line_id=211: FD E2
-memory_line_id=212: FD E2
-memory_line_id=213: FD E2
-memory_line_id=214: FD E2
-memory_line_id=215: FD E2
-memory_line_id=216: FD E2
-memory_line_id=217: FD E2
-memory_line_id=218: FD E2
-memory_line_id=219: FD E2
-memory_line_id=220: FD E2
-memory_line_id=221: FD E2
-memory_line_id=222: FD E2
-memory_line_id=223: FD E2
-memory_line_id=224: FD E2
-memory_line_id=225: FD E2
-memory_line_id=226: FD E2
-memory_line_id=227: FD E2
-memory_line_id=228: FD E2
-memory_line_id=229: FD E2
-memory_line_id=230: FD E2
-memory_line_id=231: FD E2
-memory_line_id=232: FD E2
-memory_line_id=233: FD E2
-memory_line_id=234: FD E2
-memory_line_id=235: FD E2
-memory_line_id=236: FD E2
-memory_line_id=237: FD E2
-memory_line_id=238: FD E2
-memory_line_id=239: FD E2
-memory_line_id=240: FD E2
-memory_line_id=241: FD E2
-memory_line_id=242: FD E2
-memory_line_id=243: FD E2
-memory_line_id=244: FD E2
-memory_line_id=245: FD E2
-memory_line_id=246: FD E2
-memory_line_id=247: FD E2
-memory_line_id=248: FD E2
-memory_line_id=249: FD E2
-memory_line_id=250: FD E2
-memory_line_id=251: FD E2
-memory_line_id=252: FD E2
-memory_line_id=253: FD E2
-memory_line_id=254: FD E2
-memory_line_id=255: 00 01
-*/
Index: openverifla_2.3/java/verifla_properties_spi_slave.txt
===================================================================
--- openverifla_2.3/java/verifla_properties_spi_slave.txt (revision 41)
+++ openverifla_2.3/java/verifla_properties_spi_slave.txt (nonexistent)
@@ -1,61 +0,0 @@
-# VeriFLA Logic Analyzer Project File
-
-# Serial port
-# On Windows this would be COM5 or similar
-#/dev/ttyUSB0
-LA.portName=/dev/ttyUSB0
-LA.baudRate=115200
-
-# Memory
-# ====
-LA.memWords=256
-# Data input width and indentical samples bits (clones) must be multiple of 8.
-LA.dataWordLenBits=8
-LA.clonesWordLenBits=8
-LA.triggerMatchMemAddr=8
-
-
-# Generated verilog
-# ====
-LA.timescaleUnit=1ns
-LA.timescalePrecision=10ps
-# clockPeriod expressed in [timescaleUnit]
-LA.clockPeriod=20
-
-
-# User data signals
-LA.totalSignals=8
-# Big endian (1) or Little endian (0).
-LA.signalGroups=7
-{byte_data_sent[1:0], byte_received, bitcnt[0], MISO, MOSI, SSEL, SCK}
-# Group 0
-LA.groupName.0=SCK
-LA.groupSize.0=1
-LA.groupEndian.0=0
-# Group 1
-LA.groupName.1=SSEL
-LA.groupSize.1=1
-LA.groupEndian.1=0
-# Group 2
-LA.groupName.2=MOSI
-LA.groupSize.2=1
-LA.groupEndian.2=0
-# Group 3
-LA.groupName.3=MISO
-LA.groupSize.3=1
-LA.groupEndian.3=0
-# Group 4
-LA.groupName.4=bitcnt_0
-LA.groupSize.4=1
-LA.groupEndian.4=0
-# Group 5
-LA.groupName.5=byte_received
-LA.groupSize.5=1
-LA.groupEndian.5=0
-# Group 6
-LA.groupName.6=byte_data_sent_10
-LA.groupSize.6=2
-LA.groupEndian.6=0
-
-
-
openverifla_2.3/java/verifla_properties_spi_slave.txt
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/capture_keyboard_20180823_1508.v
===================================================================
--- openverifla_2.3/java/capture_keyboard_20180823_1508.v (revision 41)
+++ openverifla_2.3/java/capture_keyboard_20180823_1508.v (nonexistent)
@@ -1,356 +0,0 @@
-`timescale 1ns / 10ps
-
-module capture_20180823_1508_56(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
-
-output clk_of_verifla;
-output la_trigger_matched;
-output [16:0] memory_line_id;
-output [7:0] KBD_KEY;
-output kbd_clk_line;
-output kbd_data_line;
-output [5:0] not_used;
-reg [7:0] KBD_KEY;
-reg kbd_clk_line;
-reg kbd_data_line;
-reg [5:0] not_used;
-reg [16:0] memory_line_id;
-reg la_trigger_matched;
-reg clk_of_verifla;
-
-parameter PERIOD = 20;
-initial // Clock process for clk_of_verifla
-begin
- forever
- begin
- clk_of_verifla = 1'b0;
- #(10); clk_of_verifla = 1'b1;
- #(10);
- end
-end
-
-initial begin
-#(10);
-la_trigger_matched = 0;
-memory_line_id=3;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 1310670*(1ns)
-memory_line_id=4;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 2621330*(1ns)
-memory_line_id=5;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 3931990*(1ns)
-memory_line_id=6;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 5242650*(1ns)
-memory_line_id=7;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 6553310*(1ns)
-memory_line_id=0;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#1310660;
-// ------------- Current Time: 7863970*(1ns)
-memory_line_id=1;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
-#767700;
-// ------------- Current Time: 8631670*(1ns)
-memory_line_id=2;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
-#11460;
-// ------------- Current Time: 8643130*(1ns)
-memory_line_id=8;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
-la_trigger_matched = 1;
-#60;
-// ------------- Current Time: 8643190*(1ns)
-memory_line_id=9;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#43880;
-// ------------- Current Time: 8687070*(1ns)
-memory_line_id=10;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
-#34020;
-// ------------- Current Time: 8721090*(1ns)
-memory_line_id=11;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
-#60;
-// ------------- Current Time: 8721150*(1ns)
-memory_line_id=12;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#42860;
-// ------------- Current Time: 8764010*(1ns)
-memory_line_id=13;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
-#34020;
-// ------------- Current Time: 8798030*(1ns)
-memory_line_id=14;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
-#40;
-// ------------- Current Time: 8798070*(1ns)
-memory_line_id=15;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
-#42860;
-// ------------- Current Time: 8840930*(1ns)
-memory_line_id=16;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
-#11380;
-// ------------- Current Time: 8852310*(1ns)
-memory_line_id=17;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
-#24700;
-// ------------- Current Time: 8877010*(1ns)
-memory_line_id=18;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
-#60;
-// ------------- Current Time: 8877070*(1ns)
-memory_line_id=19;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#42800;
-// ------------- Current Time: 8919870*(1ns)
-memory_line_id=20;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
-#36140;
-// ------------- Current Time: 8956010*(1ns)
-memory_line_id=21;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
-#60;
-// ------------- Current Time: 8956070*(1ns)
-memory_line_id=22;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#42800;
-// ------------- Current Time: 8998870*(1ns)
-memory_line_id=23;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
-#36140;
-// ------------- Current Time: 9035010*(1ns)
-memory_line_id=24;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
-#60;
-// ------------- Current Time: 9035070*(1ns)
-memory_line_id=25;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
-#42800;
-// ------------- Current Time: 9077870*(1ns)
-memory_line_id=26;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
-#12220;
-// ------------- Current Time: 9090090*(1ns)
-memory_line_id=27;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
-#21860;
-// ------------- Current Time: 9111950*(1ns)
-memory_line_id=28;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
-#60;
-// ------------- Current Time: 9112010*(1ns)
-memory_line_id=29;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#42840;
-// ------------- Current Time: 9154850*(1ns)
-memory_line_id=30;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
-#34020;
-// ------------- Current Time: 9188870*(1ns)
-memory_line_id=31;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
-#60;
-// ------------- Current Time: 9188930*(1ns)
-memory_line_id=32;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#42840;
-// ------------- Current Time: 9231770*(1ns)
-memory_line_id=33;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
-#34020;
-// ------------- Current Time: 9265790*(1ns)
-memory_line_id=34;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
-#60;
-// ------------- Current Time: 9265850*(1ns)
-memory_line_id=35;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#43880;
-// ------------- Current Time: 9309730*(1ns)
-memory_line_id=36;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
-#41300;
-// ------------- Current Time: 9351030*(1ns)
-memory_line_id=37;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
-#60;
-// ------------- Current Time: 9351090*(1ns)
-memory_line_id=38;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
-#42840;
-// ------------- Current Time: 9393930*(1ns)
-memory_line_id=39;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
-#11380;
-// ------------- Current Time: 9405310*(1ns)
-memory_line_id=40;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
-#29900;
-// ------------- Current Time: 9435210*(1ns)
-memory_line_id=41;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
-#60;
-// ------------- Current Time: 9435270*(1ns)
-memory_line_id=42;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
-#49060;
-// ------------- Current Time: 9484330*(1ns)
-memory_line_id=43;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 10794990*(1ns)
-memory_line_id=44;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 12105650*(1ns)
-memory_line_id=45;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 13416310*(1ns)
-memory_line_id=46;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 14726970*(1ns)
-memory_line_id=47;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 16037630*(1ns)
-memory_line_id=48;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 17348290*(1ns)
-memory_line_id=49;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 18658950*(1ns)
-memory_line_id=50;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 19969610*(1ns)
-memory_line_id=51;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 21280270*(1ns)
-memory_line_id=52;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 22590930*(1ns)
-memory_line_id=53;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 23901590*(1ns)
-memory_line_id=54;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 25212250*(1ns)
-memory_line_id=55;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 26522910*(1ns)
-memory_line_id=56;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 27833570*(1ns)
-memory_line_id=57;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 29144230*(1ns)
-memory_line_id=58;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 30454890*(1ns)
-memory_line_id=59;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 31765550*(1ns)
-memory_line_id=60;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 33076210*(1ns)
-memory_line_id=61;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 34386870*(1ns)
-memory_line_id=62;
-{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
-#1310660;
-// ------------- Current Time: 35697530*(1ns)
-$stop;
-end
-endmodule
-/*
-ORIGINAL CAPTURE DUMP
-memory_line_id=0: FF FD 03 00
-memory_line_id=1: 95 F1 03 00
-memory_line_id=2: 02 3D 01 00
-memory_line_id=3: FF FD 03 00
-memory_line_id=4: FF FD 03 00
-memory_line_id=5: FF FD 03 00
-memory_line_id=6: FF FD 03 00
-memory_line_id=7: FF FD 03 00
-memory_line_id=8: 00 03 00 00
-memory_line_id=9: 08 92 04 00
-memory_line_id=10: 06 A5 05 00
-memory_line_id=11: 00 03 04 00
-memory_line_id=12: 08 5F 08 00
-memory_line_id=13: 06 A5 09 00
-memory_line_id=14: 00 02 08 00
-memory_line_id=15: 08 5F 0C 00
-memory_line_id=16: 02 39 0D 00
-memory_line_id=17: 04 D3 0F 00
-memory_line_id=18: 00 03 0E 00
-memory_line_id=19: 08 5C 12 80
-memory_line_id=20: 07 0F 13 80
-memory_line_id=21: 00 03 12 80
-memory_line_id=22: 08 5C 16 C0
-memory_line_id=23: 07 0F 17 C0
-memory_line_id=24: 00 03 16 C0
-memory_line_id=25: 08 5C 1A E0
-memory_line_id=26: 02 63 1B E0
-memory_line_id=27: 04 45 19 E0
-memory_line_id=28: 00 03 18 E0
-memory_line_id=29: 08 5E 1C 70
-memory_line_id=30: 06 A5 1D 70
-memory_line_id=31: 00 03 1C 70
-memory_line_id=32: 08 5E 20 38
-memory_line_id=33: 06 A5 21 38
-memory_line_id=34: 00 03 20 38
-memory_line_id=35: 08 92 24 1C
-memory_line_id=36: 08 11 25 1C
-memory_line_id=37: 00 03 24 1C
-memory_line_id=38: 08 5E 28 1C
-memory_line_id=39: 02 39 29 1C
-memory_line_id=40: 05 D7 2B 1C
-memory_line_id=41: 00 03 2A 1C
-memory_line_id=42: 09 95 2E 1C
-memory_line_id=43: FF FD 2F 1C
-memory_line_id=44: FF FD 2F 1C
-memory_line_id=45: FF FD 2F 1C
-memory_line_id=46: FF FD 2F 1C
-memory_line_id=47: FF FD 2F 1C
-memory_line_id=48: FF FD 2F 1C
-memory_line_id=49: FF FD 2F 1C
-memory_line_id=50: FF FD 2F 1C
-memory_line_id=51: FF FD 2F 1C
-memory_line_id=52: FF FD 2F 1C
-memory_line_id=53: FF FD 2F 1C
-memory_line_id=54: FF FD 2F 1C
-memory_line_id=55: FF FD 2F 1C
-memory_line_id=56: FF FD 2F 1C
-memory_line_id=57: FF FD 2F 1C
-memory_line_id=58: FF FD 2F 1C
-memory_line_id=59: FF FD 2F 1C
-memory_line_id=60: FF FD 2F 1C
-memory_line_id=61: FF FD 2F 1C
-memory_line_id=62: FF FD 2F 1C
-memory_line_id=63: 00 00 00 02
-*/
Index: openverifla_2.3/java/VeriFLA.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3/java/VeriFLA.class
===================================================================
--- openverifla_2.3/java/VeriFLA.class (revision 41)
+++ openverifla_2.3/java/VeriFLA.class (nonexistent)
openverifla_2.3/java/VeriFLA.class
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: openverifla_2.3/java/UARTSendReceive.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3/java/UARTSendReceive.class
===================================================================
--- openverifla_2.3/java/UARTSendReceive.class (revision 41)
+++ openverifla_2.3/java/UARTSendReceive.class (nonexistent)
openverifla_2.3/java/UARTSendReceive.class
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: openverifla_2.3/java/compile.bat
===================================================================
--- openverifla_2.3/java/compile.bat (revision 41)
+++ openverifla_2.3/java/compile.bat (nonexistent)
@@ -1,2 +0,0 @@
-set CLASSPATH=jssc.jar;.
-javac *java
Index: openverifla_2.3/java/compile.sh
===================================================================
--- openverifla_2.3/java/compile.sh (revision 41)
+++ openverifla_2.3/java/compile.sh (nonexistent)
@@ -1,2 +0,0 @@
-export CLASSPATH="jssc.jar:."
-javac *java
openverifla_2.3/java/compile.sh
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: openverifla_2.3/java/capture_spi_slave_vhdl_20180824_1736.v
===================================================================
--- openverifla_2.3/java/capture_spi_slave_vhdl_20180824_1736.v (revision 41)
+++ openverifla_2.3/java/capture_spi_slave_vhdl_20180824_1736.v (nonexistent)
@@ -1,1322 +0,0 @@
-`timescale 1ns / 10ps
-
-module capture_20180824_1736_35(clk_of_verifla, la_trigger_matched, SCK, SSEL, MOSI, MISO, bitcnt_0, byte_received, byte_data_sent_10, memory_line_id);
-
-output clk_of_verifla;
-output la_trigger_matched;
-output [64:0] memory_line_id;
-output SCK;
-output SSEL;
-output MOSI;
-output MISO;
-output bitcnt_0;
-output byte_received;
-output [1:0] byte_data_sent_10;
-reg SCK;
-reg SSEL;
-reg MOSI;
-reg MISO;
-reg bitcnt_0;
-reg byte_received;
-reg [1:0] byte_data_sent_10;
-reg [64:0] memory_line_id;
-reg la_trigger_matched;
-reg clk_of_verifla;
-
-parameter PERIOD = 20;
-initial // Clock process for clk_of_verifla
-begin
- forever
- begin
- clk_of_verifla = 1'b0;
- #(10); clk_of_verifla = 1'b1;
- #(10);
- end
-end
-
-initial begin
-#(10);
-la_trigger_matched = 0;
-memory_line_id=7;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 5070*(1ns)
-memory_line_id=0;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 10130*(1ns)
-memory_line_id=1;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 15190*(1ns)
-memory_line_id=2;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 20250*(1ns)
-memory_line_id=3;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 25310*(1ns)
-memory_line_id=4;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 30370*(1ns)
-memory_line_id=5;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#5060;
-// ------------- Current Time: 35430*(1ns)
-memory_line_id=6;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
-#4800;
-// ------------- Current Time: 40230*(1ns)
-memory_line_id=8;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-la_trigger_matched = 1;
-#5060;
-// ------------- Current Time: 45290*(1ns)
-memory_line_id=9;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#5060;
-// ------------- Current Time: 50350*(1ns)
-memory_line_id=10;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#3640;
-// ------------- Current Time: 53990*(1ns)
-memory_line_id=11;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 54490*(1ns)
-memory_line_id=12;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 54550*(1ns)
-memory_line_id=13;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 54990*(1ns)
-memory_line_id=14;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 55490*(1ns)
-memory_line_id=15;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 55550*(1ns)
-memory_line_id=16;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 55990*(1ns)
-memory_line_id=17;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 56490*(1ns)
-memory_line_id=18;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 56550*(1ns)
-memory_line_id=19;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 56990*(1ns)
-memory_line_id=20;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 57490*(1ns)
-memory_line_id=21;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 57550*(1ns)
-memory_line_id=22;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 57990*(1ns)
-memory_line_id=23;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 58490*(1ns)
-memory_line_id=24;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 58550*(1ns)
-memory_line_id=25;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 58990*(1ns)
-memory_line_id=26;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 59490*(1ns)
-memory_line_id=27;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 59550*(1ns)
-memory_line_id=28;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 59990*(1ns)
-memory_line_id=29;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 60490*(1ns)
-memory_line_id=30;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 60550*(1ns)
-memory_line_id=31;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 60990*(1ns)
-memory_line_id=32;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 61490*(1ns)
-memory_line_id=33;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 61550*(1ns)
-memory_line_id=34;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100101;
-#440;
-// ------------- Current Time: 61990*(1ns)
-memory_line_id=35;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100000;
-#60;
-// ------------- Current Time: 62050*(1ns)
-memory_line_id=36;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 67110*(1ns)
-memory_line_id=37;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 72170*(1ns)
-memory_line_id=38;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 77230*(1ns)
-memory_line_id=39;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 82290*(1ns)
-memory_line_id=40;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 87350*(1ns)
-memory_line_id=41;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 92410*(1ns)
-memory_line_id=42;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 97470*(1ns)
-memory_line_id=43;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 102530*(1ns)
-memory_line_id=44;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 107590*(1ns)
-memory_line_id=45;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 112650*(1ns)
-memory_line_id=46;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 117710*(1ns)
-memory_line_id=47;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 122770*(1ns)
-memory_line_id=48;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 127830*(1ns)
-memory_line_id=49;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 132890*(1ns)
-memory_line_id=50;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 137950*(1ns)
-memory_line_id=51;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 143010*(1ns)
-memory_line_id=52;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 148070*(1ns)
-memory_line_id=53;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 153130*(1ns)
-memory_line_id=54;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 158190*(1ns)
-memory_line_id=55;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 163250*(1ns)
-memory_line_id=56;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 168310*(1ns)
-memory_line_id=57;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 173370*(1ns)
-memory_line_id=58;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 178430*(1ns)
-memory_line_id=59;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#860;
-// ------------- Current Time: 179290*(1ns)
-memory_line_id=60;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 184350*(1ns)
-memory_line_id=61;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 189410*(1ns)
-memory_line_id=62;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#580;
-// ------------- Current Time: 189990*(1ns)
-memory_line_id=63;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#60;
-// ------------- Current Time: 190050*(1ns)
-memory_line_id=64;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#5060;
-// ------------- Current Time: 195110*(1ns)
-memory_line_id=65;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
-#2500;
-// ------------- Current Time: 197610*(1ns)
-memory_line_id=66;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100001;
-#60;
-// ------------- Current Time: 197670*(1ns)
-memory_line_id=67;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010001;
-#440;
-// ------------- Current Time: 198110*(1ns)
-memory_line_id=68;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010000;
-#60;
-// ------------- Current Time: 198170*(1ns)
-memory_line_id=69;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 198610*(1ns)
-memory_line_id=70;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 198670*(1ns)
-memory_line_id=71;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 199110*(1ns)
-memory_line_id=72;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
-#60;
-// ------------- Current Time: 199170*(1ns)
-memory_line_id=73;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#440;
-// ------------- Current Time: 199610*(1ns)
-memory_line_id=74;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 199670*(1ns)
-memory_line_id=75;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 200110*(1ns)
-memory_line_id=76;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 200610*(1ns)
-memory_line_id=77;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 200670*(1ns)
-memory_line_id=78;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 201110*(1ns)
-memory_line_id=79;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 201610*(1ns)
-memory_line_id=80;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 201670*(1ns)
-memory_line_id=81;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 202110*(1ns)
-memory_line_id=82;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 202610*(1ns)
-memory_line_id=83;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 202670*(1ns)
-memory_line_id=84;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 203110*(1ns)
-memory_line_id=85;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#500;
-// ------------- Current Time: 203610*(1ns)
-memory_line_id=86;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 203670*(1ns)
-memory_line_id=87;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 204110*(1ns)
-memory_line_id=88;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#60;
-// ------------- Current Time: 204170*(1ns)
-memory_line_id=89;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
-#440;
-// ------------- Current Time: 204610*(1ns)
-memory_line_id=90;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#60;
-// ------------- Current Time: 204670*(1ns)
-memory_line_id=91;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
-#440;
-// ------------- Current Time: 205110*(1ns)
-memory_line_id=92;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 205170*(1ns)
-memory_line_id=93;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#1440;
-// ------------- Current Time: 206610*(1ns)
-memory_line_id=94;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100001;
-#60;
-// ------------- Current Time: 206670*(1ns)
-memory_line_id=95;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010001;
-#440;
-// ------------- Current Time: 207110*(1ns)
-memory_line_id=96;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
-#60;
-// ------------- Current Time: 207170*(1ns)
-memory_line_id=97;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 207610*(1ns)
-memory_line_id=98;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 207670*(1ns)
-memory_line_id=99;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 208110*(1ns)
-memory_line_id=100;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
-#60;
-// ------------- Current Time: 208170*(1ns)
-memory_line_id=101;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#440;
-// ------------- Current Time: 208610*(1ns)
-memory_line_id=102;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 208670*(1ns)
-memory_line_id=103;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 209110*(1ns)
-memory_line_id=104;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 209610*(1ns)
-memory_line_id=105;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 209670*(1ns)
-memory_line_id=106;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 210110*(1ns)
-memory_line_id=107;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 210610*(1ns)
-memory_line_id=108;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 210670*(1ns)
-memory_line_id=109;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 211110*(1ns)
-memory_line_id=110;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
-#500;
-// ------------- Current Time: 211610*(1ns)
-memory_line_id=111;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#60;
-// ------------- Current Time: 211670*(1ns)
-memory_line_id=112;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#440;
-// ------------- Current Time: 212110*(1ns)
-memory_line_id=113;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#60;
-// ------------- Current Time: 212170*(1ns)
-memory_line_id=114;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001100;
-#440;
-// ------------- Current Time: 212610*(1ns)
-memory_line_id=115;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001101;
-#60;
-// ------------- Current Time: 212670*(1ns)
-memory_line_id=116;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#440;
-// ------------- Current Time: 213110*(1ns)
-memory_line_id=117;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011000;
-#500;
-// ------------- Current Time: 213610*(1ns)
-memory_line_id=118;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
-#60;
-// ------------- Current Time: 213670*(1ns)
-memory_line_id=119;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101001;
-#440;
-// ------------- Current Time: 214110*(1ns)
-memory_line_id=120;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 214170*(1ns)
-memory_line_id=121;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#940;
-// ------------- Current Time: 215110*(1ns)
-memory_line_id=122;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100100;
-#500;
-// ------------- Current Time: 215610*(1ns)
-memory_line_id=123;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100101;
-#60;
-// ------------- Current Time: 215670*(1ns)
-memory_line_id=124;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010101;
-#440;
-// ------------- Current Time: 216110*(1ns)
-memory_line_id=125;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
-#60;
-// ------------- Current Time: 216170*(1ns)
-memory_line_id=126;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
-#440;
-// ------------- Current Time: 216610*(1ns)
-memory_line_id=127;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
-#60;
-// ------------- Current Time: 216670*(1ns)
-memory_line_id=128;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
-#440;
-// ------------- Current Time: 217110*(1ns)
-memory_line_id=129;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000100;
-#60;
-// ------------- Current Time: 217170*(1ns)
-memory_line_id=130;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
-#440;
-// ------------- Current Time: 217610*(1ns)
-memory_line_id=131;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#60;
-// ------------- Current Time: 217670*(1ns)
-memory_line_id=132;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#440;
-// ------------- Current Time: 218110*(1ns)
-memory_line_id=133;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 218610*(1ns)
-memory_line_id=134;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 218670*(1ns)
-memory_line_id=135;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 219110*(1ns)
-memory_line_id=136;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#500;
-// ------------- Current Time: 219610*(1ns)
-memory_line_id=137;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
-#60;
-// ------------- Current Time: 219670*(1ns)
-memory_line_id=138;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
-#440;
-// ------------- Current Time: 220110*(1ns)
-memory_line_id=139;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
-#500;
-// ------------- Current Time: 220610*(1ns)
-memory_line_id=140;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
-#60;
-// ------------- Current Time: 220670*(1ns)
-memory_line_id=141;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
-#440;
-// ------------- Current Time: 221110*(1ns)
-memory_line_id=142;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
-#60;
-// ------------- Current Time: 221170*(1ns)
-memory_line_id=143;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001000;
-#440;
-// ------------- Current Time: 221610*(1ns)
-memory_line_id=144;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001001;
-#60;
-// ------------- Current Time: 221670*(1ns)
-memory_line_id=145;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
-#440;
-// ------------- Current Time: 222110*(1ns)
-memory_line_id=146;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
-#500;
-// ------------- Current Time: 222610*(1ns)
-memory_line_id=147;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
-#60;
-// ------------- Current Time: 222670*(1ns)
-memory_line_id=148;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
-#440;
-// ------------- Current Time: 223110*(1ns)
-memory_line_id=149;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
-#60;
-// ------------- Current Time: 223170*(1ns)
-memory_line_id=150;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 228230*(1ns)
-memory_line_id=151;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 233290*(1ns)
-memory_line_id=152;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 238350*(1ns)
-memory_line_id=153;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 243410*(1ns)
-memory_line_id=154;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 248470*(1ns)
-memory_line_id=155;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 253530*(1ns)
-memory_line_id=156;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 258590*(1ns)
-memory_line_id=157;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#5060;
-// ------------- Current Time: 263650*(1ns)
-memory_line_id=158;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
-#4220;
-// ------------- Current Time: 267870*(1ns)
-memory_line_id=159;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 272930*(1ns)
-memory_line_id=160;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 277990*(1ns)
-memory_line_id=161;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 283050*(1ns)
-memory_line_id=162;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 288110*(1ns)
-memory_line_id=163;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 293170*(1ns)
-memory_line_id=164;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 298230*(1ns)
-memory_line_id=165;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 303290*(1ns)
-memory_line_id=166;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 308350*(1ns)
-memory_line_id=167;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 313410*(1ns)
-memory_line_id=168;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 318470*(1ns)
-memory_line_id=169;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 323530*(1ns)
-memory_line_id=170;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 328590*(1ns)
-memory_line_id=171;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 333650*(1ns)
-memory_line_id=172;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 338710*(1ns)
-memory_line_id=173;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 343770*(1ns)
-memory_line_id=174;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 348830*(1ns)
-memory_line_id=175;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 353890*(1ns)
-memory_line_id=176;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 358950*(1ns)
-memory_line_id=177;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 364010*(1ns)
-memory_line_id=178;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 369070*(1ns)
-memory_line_id=179;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 374130*(1ns)
-memory_line_id=180;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 379190*(1ns)
-memory_line_id=181;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 384250*(1ns)
-memory_line_id=182;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 389310*(1ns)
-memory_line_id=183;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 394370*(1ns)
-memory_line_id=184;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 399430*(1ns)
-memory_line_id=185;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 404490*(1ns)
-memory_line_id=186;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 409550*(1ns)
-memory_line_id=187;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 414610*(1ns)
-memory_line_id=188;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 419670*(1ns)
-memory_line_id=189;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 424730*(1ns)
-memory_line_id=190;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 429790*(1ns)
-memory_line_id=191;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 434850*(1ns)
-memory_line_id=192;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 439910*(1ns)
-memory_line_id=193;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 444970*(1ns)
-memory_line_id=194;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 450030*(1ns)
-memory_line_id=195;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 455090*(1ns)
-memory_line_id=196;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 460150*(1ns)
-memory_line_id=197;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 465210*(1ns)
-memory_line_id=198;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 470270*(1ns)
-memory_line_id=199;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 475330*(1ns)
-memory_line_id=200;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 480390*(1ns)
-memory_line_id=201;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 485450*(1ns)
-memory_line_id=202;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 490510*(1ns)
-memory_line_id=203;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 495570*(1ns)
-memory_line_id=204;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 500630*(1ns)
-memory_line_id=205;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 505690*(1ns)
-memory_line_id=206;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 510750*(1ns)
-memory_line_id=207;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 515810*(1ns)
-memory_line_id=208;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 520870*(1ns)
-memory_line_id=209;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 525930*(1ns)
-memory_line_id=210;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 530990*(1ns)
-memory_line_id=211;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 536050*(1ns)
-memory_line_id=212;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 541110*(1ns)
-memory_line_id=213;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 546170*(1ns)
-memory_line_id=214;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 551230*(1ns)
-memory_line_id=215;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 556290*(1ns)
-memory_line_id=216;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 561350*(1ns)
-memory_line_id=217;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 566410*(1ns)
-memory_line_id=218;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 571470*(1ns)
-memory_line_id=219;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 576530*(1ns)
-memory_line_id=220;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 581590*(1ns)
-memory_line_id=221;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 586650*(1ns)
-memory_line_id=222;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 591710*(1ns)
-memory_line_id=223;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 596770*(1ns)
-memory_line_id=224;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 601830*(1ns)
-memory_line_id=225;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 606890*(1ns)
-memory_line_id=226;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 611950*(1ns)
-memory_line_id=227;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 617010*(1ns)
-memory_line_id=228;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 622070*(1ns)
-memory_line_id=229;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 627130*(1ns)
-memory_line_id=230;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 632190*(1ns)
-memory_line_id=231;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 637250*(1ns)
-memory_line_id=232;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 642310*(1ns)
-memory_line_id=233;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 647370*(1ns)
-memory_line_id=234;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 652430*(1ns)
-memory_line_id=235;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 657490*(1ns)
-memory_line_id=236;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 662550*(1ns)
-memory_line_id=237;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 667610*(1ns)
-memory_line_id=238;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 672670*(1ns)
-memory_line_id=239;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 677730*(1ns)
-memory_line_id=240;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 682790*(1ns)
-memory_line_id=241;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 687850*(1ns)
-memory_line_id=242;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 692910*(1ns)
-memory_line_id=243;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 697970*(1ns)
-memory_line_id=244;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 703030*(1ns)
-memory_line_id=245;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 708090*(1ns)
-memory_line_id=246;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 713150*(1ns)
-memory_line_id=247;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 718210*(1ns)
-memory_line_id=248;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 723270*(1ns)
-memory_line_id=249;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 728330*(1ns)
-memory_line_id=250;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 733390*(1ns)
-memory_line_id=251;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 738450*(1ns)
-memory_line_id=252;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 743510*(1ns)
-memory_line_id=253;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 748570*(1ns)
-memory_line_id=254;
-{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
-#5060;
-// ------------- Current Time: 753630*(1ns)
-$stop;
-end
-endmodule
-/*
-ORIGINAL CAPTURE DUMP
-memory_line_id=0: FD 02
-memory_line_id=1: FD 02
-memory_line_id=2: FD 02
-memory_line_id=3: FD 02
-memory_line_id=4: FD 02
-memory_line_id=5: FD 02
-memory_line_id=6: F0 02
-memory_line_id=7: FD 02
-memory_line_id=8: FD 00
-memory_line_id=9: FD 00
-memory_line_id=10: B6 00
-memory_line_id=11: 19 04
-memory_line_id=12: 03 05
-memory_line_id=13: 16 15
-memory_line_id=14: 19 10
-memory_line_id=15: 03 11
-memory_line_id=16: 16 01
-memory_line_id=17: 19 00
-memory_line_id=18: 03 01
-memory_line_id=19: 16 11
-memory_line_id=20: 19 14
-memory_line_id=21: 03 15
-memory_line_id=22: 16 05
-memory_line_id=23: 19 04
-memory_line_id=24: 03 05
-memory_line_id=25: 16 15
-memory_line_id=26: 19 14
-memory_line_id=27: 03 15
-memory_line_id=28: 16 05
-memory_line_id=29: 19 04
-memory_line_id=30: 03 05
-memory_line_id=31: 16 15
-memory_line_id=32: 19 14
-memory_line_id=33: 03 15
-memory_line_id=34: 16 25
-memory_line_id=35: 03 20
-memory_line_id=36: FD E0
-memory_line_id=37: FD E0
-memory_line_id=38: FD E0
-memory_line_id=39: FD E0
-memory_line_id=40: FD E0
-memory_line_id=41: FD E0
-memory_line_id=42: FD E0
-memory_line_id=43: FD E0
-memory_line_id=44: FD E0
-memory_line_id=45: FD E0
-memory_line_id=46: FD E0
-memory_line_id=47: FD E0
-memory_line_id=48: FD E0
-memory_line_id=49: FD E0
-memory_line_id=50: FD E0
-memory_line_id=51: FD E0
-memory_line_id=52: FD E0
-memory_line_id=53: FD E0
-memory_line_id=54: FD E0
-memory_line_id=55: FD E0
-memory_line_id=56: FD E0
-memory_line_id=57: FD E0
-memory_line_id=58: FD E0
-memory_line_id=59: 2B E0
-memory_line_id=60: FD E2
-memory_line_id=61: FD E2
-memory_line_id=62: 1D E2
-memory_line_id=63: 03 E0
-memory_line_id=64: FD 60
-memory_line_id=65: 7D 60
-memory_line_id=66: 03 61
-memory_line_id=67: 16 51
-memory_line_id=68: 03 50
-memory_line_id=69: 16 90
-memory_line_id=70: 03 91
-memory_line_id=71: 16 81
-memory_line_id=72: 03 80
-memory_line_id=73: 16 00
-memory_line_id=74: 03 01
-memory_line_id=75: 16 11
-memory_line_id=76: 19 10
-memory_line_id=77: 03 11
-memory_line_id=78: 16 01
-memory_line_id=79: 19 04
-memory_line_id=80: 03 05
-memory_line_id=81: 16 15
-memory_line_id=82: 19 10
-memory_line_id=83: 03 11
-memory_line_id=84: 16 01
-memory_line_id=85: 19 04
-memory_line_id=86: 03 05
-memory_line_id=87: 16 15
-memory_line_id=88: 03 14
-memory_line_id=89: 16 1C
-memory_line_id=90: 03 1D
-memory_line_id=91: 16 2D
-memory_line_id=92: 03 28
-memory_line_id=93: 48 E0
-memory_line_id=94: 03 E1
-memory_line_id=95: 16 D1
-memory_line_id=96: 03 D0
-memory_line_id=97: 16 90
-memory_line_id=98: 03 91
-memory_line_id=99: 16 81
-memory_line_id=100: 03 80
-memory_line_id=101: 16 00
-memory_line_id=102: 03 01
-memory_line_id=103: 16 11
-memory_line_id=104: 19 10
-memory_line_id=105: 03 11
-memory_line_id=106: 16 01
-memory_line_id=107: 19 00
-memory_line_id=108: 03 01
-memory_line_id=109: 16 11
-memory_line_id=110: 19 10
-memory_line_id=111: 03 11
-memory_line_id=112: 16 01
-memory_line_id=113: 03 04
-memory_line_id=114: 16 0C
-memory_line_id=115: 03 0D
-memory_line_id=116: 16 1D
-memory_line_id=117: 19 18
-memory_line_id=118: 03 19
-memory_line_id=119: 16 29
-memory_line_id=120: 03 28
-memory_line_id=121: 2F E0
-memory_line_id=122: 19 E4
-memory_line_id=123: 03 E5
-memory_line_id=124: 16 D5
-memory_line_id=125: 03 D0
-memory_line_id=126: 16 90
-memory_line_id=127: 03 91
-memory_line_id=128: 16 81
-memory_line_id=129: 03 84
-memory_line_id=130: 16 04
-memory_line_id=131: 03 05
-memory_line_id=132: 16 15
-memory_line_id=133: 19 14
-memory_line_id=134: 03 15
-memory_line_id=135: 16 05
-memory_line_id=136: 19 00
-memory_line_id=137: 03 01
-memory_line_id=138: 16 11
-memory_line_id=139: 19 14
-memory_line_id=140: 03 15
-memory_line_id=141: 16 05
-memory_line_id=142: 03 00
-memory_line_id=143: 16 08
-memory_line_id=144: 03 09
-memory_line_id=145: 16 19
-memory_line_id=146: 19 1C
-memory_line_id=147: 03 1D
-memory_line_id=148: 16 2D
-memory_line_id=149: 03 28
-memory_line_id=150: FD E0
-memory_line_id=151: FD E0
-memory_line_id=152: FD E0
-memory_line_id=153: FD E0
-memory_line_id=154: FD E0
-memory_line_id=155: FD E0
-memory_line_id=156: FD E0
-memory_line_id=157: FD E0
-memory_line_id=158: D3 E0
-memory_line_id=159: FD E2
-memory_line_id=160: FD E2
-memory_line_id=161: FD E2
-memory_line_id=162: FD E2
-memory_line_id=163: FD E2
-memory_line_id=164: FD E2
-memory_line_id=165: FD E2
-memory_line_id=166: FD E2
-memory_line_id=167: FD E2
-memory_line_id=168: FD E2
-memory_line_id=169: FD E2
-memory_line_id=170: FD E2
-memory_line_id=171: FD E2
-memory_line_id=172: FD E2
-memory_line_id=173: FD E2
-memory_line_id=174: FD E2
-memory_line_id=175: FD E2
-memory_line_id=176: FD E2
-memory_line_id=177: FD E2
-memory_line_id=178: FD E2
-memory_line_id=179: FD E2
-memory_line_id=180: FD E2
-memory_line_id=181: FD E2
-memory_line_id=182: FD E2
-memory_line_id=183: FD E2
-memory_line_id=184: FD E2
-memory_line_id=185: FD E2
-memory_line_id=186: FD E2
-memory_line_id=187: FD E2
-memory_line_id=188: FD E2
-memory_line_id=189: FD E2
-memory_line_id=190: FD E2
-memory_line_id=191: FD E2
-memory_line_id=192: FD E2
-memory_line_id=193: FD E2
-memory_line_id=194: FD E2
-memory_line_id=195: FD E2
-memory_line_id=196: FD E2
-memory_line_id=197: FD E2
-memory_line_id=198: FD E2
-memory_line_id=199: FD E2
-memory_line_id=200: FD E2
-memory_line_id=201: FD E2
-memory_line_id=202: FD E2
-memory_line_id=203: FD E2
-memory_line_id=204: FD E2
-memory_line_id=205: FD E2
-memory_line_id=206: FD E2
-memory_line_id=207: FD E2
-memory_line_id=208: FD E2
-memory_line_id=209: FD E2
-memory_line_id=210: FD E2
-memory_line_id=211: FD E2
-memory_line_id=212: FD E2
-memory_line_id=213: FD E2
-memory_line_id=214: FD E2
-memory_line_id=215: FD E2
-memory_line_id=216: FD E2
-memory_line_id=217: FD E2
-memory_line_id=218: FD E2
-memory_line_id=219: FD E2
-memory_line_id=220: FD E2
-memory_line_id=221: FD E2
-memory_line_id=222: FD E2
-memory_line_id=223: FD E2
-memory_line_id=224: FD E2
-memory_line_id=225: FD E2
-memory_line_id=226: FD E2
-memory_line_id=227: FD E2
-memory_line_id=228: FD E2
-memory_line_id=229: FD E2
-memory_line_id=230: FD E2
-memory_line_id=231: FD E2
-memory_line_id=232: FD E2
-memory_line_id=233: FD E2
-memory_line_id=234: FD E2
-memory_line_id=235: FD E2
-memory_line_id=236: FD E2
-memory_line_id=237: FD E2
-memory_line_id=238: FD E2
-memory_line_id=239: FD E2
-memory_line_id=240: FD E2
-memory_line_id=241: FD E2
-memory_line_id=242: FD E2
-memory_line_id=243: FD E2
-memory_line_id=244: FD E2
-memory_line_id=245: FD E2
-memory_line_id=246: FD E2
-memory_line_id=247: FD E2
-memory_line_id=248: FD E2
-memory_line_id=249: FD E2
-memory_line_id=250: FD E2
-memory_line_id=251: FD E2
-memory_line_id=252: FD E2
-memory_line_id=253: FD E2
-memory_line_id=254: FD E2
-memory_line_id=255: 00 06
-*/
Index: openverifla_2.3.b/java/VeriFLA.java
===================================================================
--- openverifla_2.3.b/java/VeriFLA.java (nonexistent)
+++ openverifla_2.3.b/java/VeriFLA.java (revision 42)
@@ -0,0 +1,695 @@
+/*
+VeriFLA.java
+License: GNU GPL
+
+Revision history:
+revistion date: 2018/07/20; author: Laurentiu Duca
+- port of SerialPort jssc instead of rxtx
+- redesign of memory contents implied modification in the java source
+revision date: 2007/Sep/03; author: Laurentiu Duca
+- sendRunCommand feature
+- consider that the bt_queue_head_address is wrote at the end of the data capture.
+- use HOUR_OF_DAY (0..23)
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.BufferedReader;
+import java.util.Properties;
+import java.util.Enumeration;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.StringTokenizer;
+
+import jssc.SerialPort;
+import jssc.SerialPortException;
+
+public class VeriFLA extends Object {
+
+ // Data members are declared at the end.
+
+ /**
+ * Creates a new object.
+ *
+ */
+ public VeriFLA() {
+ this.serialPort = null;
+ this.properties = new Properties();
+ }
+
+ /**
+ * Attaches the given serial serialPort to the device object.
+ * The method will try to open the serialPort.
+ */
+ public boolean attach(String portName) {
+ serialPort = new SerialPort(portName);
+ try {
+ int baudrate=Integer.parseInt(strBaudRate);
+ //strBaudRate.equals("115200")?SerialPort.BAUDRATE_115200:
+ //strBaudRate.equals("38400")?SerialPort.BAUDRATE_38400:SerialPort.BAUDRATE_9600;
+ serialPort.openPort();//Open serial port
+ serialPort.setParams(baudrate,
+ SerialPort.DATABITS_8,
+ SerialPort.STOPBITS_1,
+ SerialPort.PARITY_NONE);
+ //Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
+ //serialPort.writeBytes("This is a test string".getBytes());//Write data to port
+ } catch (SerialPortException ex) {
+ ex.printStackTrace(System.out);
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Detaches the currently attached serialPort, if one exists.
+ * This will close the serial port.
+ *
+ */
+ public void detach() {
+ if (serialPort != null) {
+ try {
+ serialPort.closePort();
+ } catch (SerialPortException ex) {
+ ex.printStackTrace(System.out);
+ }
+ }
+ }
+
+ public void run() throws IOException, SerialPortException {
+ byte rawByte[]=new byte[1];
+
+ if(sendRunCommand == 1) {
+ // Send USERCMD_RESET command
+ //rawByte[0]=USERCMD_RESET;
+ //System.out.println("Sending USERCMD_RESET command");
+ //serialPort.writeBytes(rawByte);
+ //System.out.println("Done sending USERCMD_RESET command.");
+
+ // Send USERCMD_RUN command
+ rawByte[0]=USERCMD_RUN;
+ System.out.println("Sending user_run command..");
+ serialPort.writeBytes(rawByte);
+ System.out.println("Done sending user_run command.");
+ }
+
+ // Read Captured data
+ System.out.println("Waiting for data capture:");
+ int i,j,ret;
+ rawByte = new byte[memWords * octetsPerWord];
+ rawByte = serialPort.readBytes(memWords * octetsPerWord);
+ for(i=0; i=0; j--)
+ System.out.printf("%02x ", memoryLineBytes[i][j]);
+ System.out.println();
+ }
+
+ //System.exit(1);
+ }
+
+ public void getCapturedData(String portName)
+ {
+ boolean found;
+ found = attach(portName);
+ if(!found) {
+ System.out.println("Port " + portName + " not found.\n"+
+ "\tPlease update the properties file.\n");
+ System.exit(0);
+ }
+ try {
+ run();
+ } catch (Exception ex) {
+ ex.printStackTrace(System.out);
+ }
+ detach();
+ }
+
+ public void saveCapturedData() throws IOException
+ {
+ // Create a new file with the name "capture_timestamp.v".
+ String strTime=getTime();
+ String outputFileName, moduleName;
+ moduleName="capture_"+strTime;
+ outputFileName = moduleName+".v";
+ File outputFile = new File(outputFileName);
+ if (!outputFile.createNewFile()) {
+ System.out.println("Error: Can not create file: " + outputFileName);
+ System.exit(-1);
+ }
+ OutputStream stream = new FileOutputStream(outputFile);
+
+
+ // Write the timescale directive.
+ String strLine;
+ int i,j,k;
+ strLine = "`timescale " + strTimescaleUnit + " / " + strTimescalePrecision + "\n\n";
+ stream.write(strLine.getBytes());
+
+
+ // Write the module name and output params.
+ strLine = "module " + moduleName + "(clk_of_verifla, la_trigger_matched, ";
+ for (i = 0; i < signalGroups; i++) {
+ strLine += groupName[i];
+ if(i != (signalGroups - 1))
+ strLine += ", ";
+ }
+ strLine += ", memory_line_id";
+ strLine += ");\n\n";
+ stream.write(strLine.getBytes());
+
+
+ // Write the declaration of signals
+ strLine = "output clk_of_verifla;\n" + "output la_trigger_matched;\n" + "output ["+(memWords/4)+":0] memory_line_id;\n";
+ stream.write(strLine.getBytes());
+ for (k = 0; k < 2; k++) {
+ for (i = 0; i < signalGroups; i++) {
+ if(k == 0)
+ strLine = "output ";
+ else
+ strLine = "reg ";
+ if(groupSize[i] > 1) {
+ if(groupEndian[i] != 0)
+ strLine += "[0:"+(groupSize[i]-1)+"] ";
+ else
+ strLine += "["+(groupSize[i]-1)+":0] ";
+ }
+ strLine += groupName[i] + ";\n";
+ stream.write(strLine.getBytes());
+ }
+ }
+ strLine =
+ "reg ["+(memWords/4)+":0] memory_line_id;\n" +
+ "reg la_trigger_matched;\n" +
+ "reg clk_of_verifla;" + "\n\n" +
+ "parameter PERIOD = " + clockPeriod + ";" + "\n";
+ stream.write(strLine.getBytes());
+
+
+ // Write the clock task.
+ strLine =
+ "initial // Clock process for clk_of_verifla" + "\n" +
+ "begin" + "\n" +
+ " forever" + "\n" +
+ " begin" + "\n" +
+ " clk_of_verifla = 1'b0;" + "\n" +
+ " #("+ (int)(clockPeriod / 2) + "); clk_of_verifla = 1'b1;" + "\n" +
+ " #("+ (int)(clockPeriod / 2) + ");" + "\n" +
+ " end" + "\n" +
+ "end" + "\n\n" ;
+ stream.write(strLine.getBytes());
+
+
+ // Write captured data
+ strLine = "initial begin\n";
+ strLine += "#("+ (int)(clockPeriod / 2) + ");\n";
+ strLine += "la_trigger_matched = 0;\n";
+ stream.write(strLine.getBytes());
+
+ // Compute the name of the signals
+ String signalsToken;
+ signalsToken = "{";
+ for (i = signalGroups-1; i >= 0 ; i--) {
+ signalsToken += groupName[i];
+ if (i > 0)
+ signalsToken += ",";
+ }
+ signalsToken += "} = ";
+
+ // Write name of the signals, values and delays in the verilog file.
+ String strWord;
+ int currentTime=(clockPeriod / 2), delay;
+
+ // compute the oldest wrote-info before trigger event
+ int bt_queue_head_address=0, bt_queue_tail_address=0;
+ // the word at address (memWords-1) represents bt_queue_tail_address.
+ for(j = 0; j < (octetsPerWord-1); j++) {
+ bt_queue_tail_address += ((0x000000FF) & (int) memoryLineBytes[memWords-1][j]) << (8*j);
+ }
+ System.out.println("bt_queue_tail_address=" + bt_queue_tail_address);
+ // Find the first
+ // before the trigger event (not an memory word).
+ if(bt_queue_tail_address == (triggerMatchMemAddr - 1))
+ bt_queue_head_address = 0;
+ else
+ bt_queue_head_address = bt_queue_tail_address + 1;
+ boolean before_trigger=true;
+ boolean foundAnEffectiveCaptureWord=false, wentBack=false;
+ i = bt_queue_head_address;
+ do
+ {
+ for(j = 0; j < (octetsPerWord-1); j++) {
+ if(memoryLineBytes[i][j] != 0)
+ foundAnEffectiveCaptureWord = true;
+ }
+ if(foundAnEffectiveCaptureWord)
+ break;
+ i++;
+ if(i >= triggerMatchMemAddr)
+ if(!foundAnEffectiveCaptureWord && !wentBack) {
+ i = 0;
+ wentBack = true;
+ }
+ } while (i <= triggerMatchMemAddr);
+ if(!foundAnEffectiveCaptureWord)
+ fatalError("Could not find the first efffective capture before trigger match");
+ if(i >= triggerMatchMemAddr)
+ before_trigger=false;
+
+ // Walk through the captured data and write it to capture.v
+ do {
+ // Check if this is an empty line
+ boolean allMemoryLineIsZero=true;
+ for(j=octetsPerWord-1; j>=0; j--) {
+ if(memoryLineBytes[i][j] != 0) {
+ allMemoryLineIsZero = false;
+ break;
+ }
+ }
+ if(allMemoryLineIsZero) {
+ if(debugVeriFLA) {
+ strLine = "// info: line "+i+" is empty.\n";
+ System.out.println(strLine);
+ stream.write(strLine.getBytes());
+ }
+ } else {
+ // Write memory line index.
+ strLine = "memory_line_id=" + i + ";\n";
+ stream.write(strLine.getBytes());
+ // Data capture
+ strWord = totalSignals + "'b";
+ for(j=octetsPerWord-1; j>=0; j--) {
+ if((j * 8) < dataWordLenBits)
+ for(k=7; k>=0; k--) {
+ if((j*8+k) < totalSignals) {
+ strWord += (memoryLineBytes[i][j] >> k) & 1;
+ }
+ }
+ }
+ strWord += ';';
+ strLine = signalsToken + strWord + "\n";
+ if(i == triggerMatchMemAddr)
+ strLine += "la_trigger_matched = 1;\n";
+ //strLine += "#" + clockPeriod + ";\n";
+ // Write to file
+ //System.out.println(strLine);
+ stream.write(strLine.getBytes());
+
+
+ // Time interval in which data is constant.
+ delay=0;
+ for(j = 0; j < octetsPerWord; j++) {
+ if((j * 8) >= dataWordLenBits)
+ delay += ((0x000000FF) & (int) memoryLineBytes[i][j]) << (8*j - dataWordLenBits);
+ }
+ currentTime += delay * clockPeriod;
+ strLine = "#" + (delay * clockPeriod) + ";\n";
+ // Write to file
+ //System.out.println(strLine);
+ stream.write(strLine.getBytes());
+ // Also write the time stamp
+ strLine = "// ------------- Current Time: " + currentTime + "*(" + strTimescaleUnit + ") "+"\n";
+ stream.write(strLine.getBytes());
+ }
+
+ // Compute the new value of i
+ if(before_trigger) {
+ i = (i+1) % triggerMatchMemAddr;
+ if(i == bt_queue_head_address) {
+ before_trigger = false;
+ i = triggerMatchMemAddr;
+ }
+ }
+ else
+ i = i + 1;
+ } while (i < (memWords-1));
+
+ strLine = "$stop;\nend\nendmodule\n";
+ stream.write(strLine.getBytes());
+
+ // Write raw memory information.
+ strLine = "/*\n"+STR_ORIGINAL_CAPTURE_DUMP+"\n";
+ for(i=0; i=0; j--) {
+ //strLine += "["+j+"]"+" " + Integer.toHexString(memoryLineBytes[i][j]) + " ";
+ if((0x000000FF & (int) memoryLineBytes[i][j]) <= 0x0F)
+ strLine += "0";
+ strLine += Integer.toHexString(
+ 0x000000FF & (int) memoryLineBytes[i][j]).toUpperCase() + " ";
+ }
+ strLine += "\n";
+ }
+/*
+ for(i=0; i=0; j--) {
+ if((0x000000FF & (int) memoryLineBytes[i][j]) <= 0x0F)
+ strLine += "0";
+ strLine += Integer.toHexString(
+ 0x000000FF & (int) memoryLineBytes[i][j]).toUpperCase() + " ";
+ }
+ strLine += "\n";
+ stream.write(strLine.getBytes());
+ }
+*/
+ strLine += "*/\n";
+ stream.write(strLine.getBytes());
+
+ stream.close();
+ System.out.println("Job done. Please simulate " + outputFileName);
+ }
+
+ private void allocateMemory()
+ {
+ // Allocate memory
+ int i,j;
+ memoryLineBytes = new byte[memWords][];
+ for(i=0; i=0; j--) {
+ memoryLineBytes[i][j] = (byte) Integer.parseInt(st.nextToken(), 16);
+ }
+ i++;
+ if(i >= memWords)
+ allMemoryRead = true;
+ //}
+ //else
+ //if (line.startsWith(STR_ORIGINAL_CAPTURE_DUMP)) {
+ // startOfMemory=true;
+ // i = 0;
+ //}
+ } while (!allMemoryRead);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fatalError("rebuildCapturedDataFromFile exception");
+ }
+ }
+
+ public void job(String propertiesFileName, String strRebuildFileName)
+ {
+ getProperties(propertiesFileName);
+ allocateMemory();
+ if(strRebuildFileName == null)
+ getCapturedData(portName);
+ else
+ rebuildCapturedDataFromFile(strRebuildFileName);
+ try {
+ saveCapturedData();
+ } catch (IOException e) {
+ e.printStackTrace();
+ fatalError("Error saving Captured Data");
+ }
+ }
+
+ public static void fatalError(String errorName)
+ {
+ System.out.println("Fatal error: " + errorName);
+ System.exit(-1);
+ }
+
+ public void getProperties(String fileName)
+ {
+ File f;
+ f = new File(fileName);
+ if (!f.isFile()) {
+ System.out.println("Error: File does not exist: " + fileName);
+ System.exit(-1);
+ }
+
+ InputStream stream;
+ try {
+ stream = new FileInputStream(f);
+ try {
+ properties.load(stream);
+ } catch (IOException e) {
+ fatalError("IOException " + fileName);
+ }
+ } catch (FileNotFoundException e) {
+ fatalError("FileNotFoundException "+ fileName);
+ }
+
+ String strVal;
+ portName = properties.getProperty(NAME + ".portName");
+ if(portName == null)
+ fatalError("Properties: missing portName");
+ strBaudRate = properties.getProperty(NAME + ".baudRate");
+ if(strBaudRate == null)
+ fatalError("Properties: missing baudRate");
+ //if(!strBaudRate.equals("115200") && !strBaudRate.equals("38400") && !strBaudRate.equals("9600"))
+ //fatalError("Invalid baudRate (must be 115200 or 38400 or 9600)");
+
+ // time units
+ strTimescaleUnit=properties.getProperty(NAME + ".timescaleUnit");
+ strTimescalePrecision=properties.getProperty(NAME + ".timescalePrecision");
+ if(strTimescaleUnit == null || strTimescalePrecision == null)
+ fatalError("Properties: Not found timescale - unit or precision");
+ // clockPeriod
+ strVal=properties.getProperty(NAME + ".clockPeriod");
+ if(strVal != null)
+ clockPeriod=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: clockPeriod not found");
+
+ // User signals
+ strVal=properties.getProperty(NAME + ".totalSignals");
+ if(strVal != null)
+ totalSignals=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: endian not found");
+ // Groups of signals
+ strVal=properties.getProperty(NAME + ".signalGroups");
+ if(strVal != null)
+ signalGroups=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: signalGroups not found");
+ groupName=new String[signalGroups];
+ groupSize=new int[signalGroups];
+ groupEndian=new int[signalGroups];
+ int i;
+ int sumOfSignals=0;
+ for (i=0; i < signalGroups; i++)
+ {
+ String strGroupName, strGroupSize, strGroupEndian;
+ strGroupName=properties.getProperty(NAME + ".groupName."+i);
+ strGroupSize=properties.getProperty(NAME + ".groupSize."+i);
+ strGroupEndian=properties.getProperty(NAME + ".groupEndian."+i);
+ if(strGroupName == null || strGroupSize == null || strGroupEndian == null)
+ fatalError("Properties: group " + i + " not found groupName or groupSize or groupEndian");
+ else {
+ groupName[i]=strGroupName;
+ groupSize[i]=Integer.parseInt(strGroupSize);
+ sumOfSignals += groupSize[i];
+ groupEndian[i]=Integer.parseInt(strGroupEndian);
+ }
+ }
+ if(sumOfSignals != totalSignals)
+ fatalError("Properties: totalSignals != sum of all group sizes: " + totalSignals + " != "+sumOfSignals);
+
+
+ // Memory
+ strVal=properties.getProperty(NAME + ".memWords");
+ if(strVal != null)
+ memWords=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: memWords not found");
+ strVal=properties.getProperty(NAME + ".dataWordLenBits");
+ if(strVal != null)
+ dataWordLenBits=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: dataWordLenBits not found");
+ if((dataWordLenBits % 8) != 0)
+ fatalError("Properties: dataWordLenBits is not multiple of 8");
+ if(dataWordLenBits != totalSignals)
+ fatalError("Properties: totalSignals != dataWordLenBits: " + totalSignals + " != "+dataWordLenBits);
+ strVal=properties.getProperty(NAME + ".clonesWordLenBits");
+ if(strVal != null)
+ clonesWordLenBits=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: clonesWordLenBits not found");
+ if((clonesWordLenBits % 8) != 0)
+ fatalError("Properties: clonesWordLenBits is not multiple of 8");
+ memWordLenBits = dataWordLenBits + clonesWordLenBits;
+ // Compute sizes
+ // octetsPerWord
+ octetsPerWord = memWordLenBits / 8;
+ if (memWordLenBits % 8 > 0)
+ octetsPerWord++;
+ totalmemoryDataBytes = memWords*octetsPerWord;
+ // Trigger
+ strVal=properties.getProperty(NAME + ".triggerMatchMemAddr");
+ if(strVal != null)
+ triggerMatchMemAddr=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: triggerMatchMemAddr not found");
+/*
+ strVal=properties.getProperty(NAME + ".maxSamplesAfterTrigger");
+ if(strVal != null)
+ maxSamplesAfterTrigger=Integer.parseInt(strVal);
+ else
+ fatalError("Properties: maxSamplesAfterTrigger not found");
+
+ // triggerLastValue
+ strVal=properties.getProperty(NAME + ".triggerLastValue");
+ if(strVal != null) {
+ StringTokenizer st;
+ int j, tNo;
+ st = new StringTokenizer(strVal," ");
+ tNo= st.countTokens();
+ if(tNo != octetsPerWord)
+ fatalError("triggerLastValue " + " tNo != octetsPerWord: " + tNo + " != " + octetsPerWord);
+ triggerLastValue = new int[octetsPerWord];
+ for(j=octetsPerWord-1; j>=0; j--) {
+ triggerLastValue[j] = (byte) Integer.parseInt(st.nextToken(), 16);
+ }
+ }
+ else
+ fatalError("Properties: triggerLastValue not found");
+*/
+ }
+
+ public String getTime()
+ {
+ Calendar calendar=new GregorianCalendar();
+ String strTime;
+ int field;
+ strTime = "" + calendar.get(Calendar.YEAR);
+ field = 1 + calendar.get(Calendar.MONTH);
+ if(field < 10)
+ strTime += "0";
+ strTime += field;
+ if(calendar.get(Calendar.DAY_OF_MONTH) < 10)
+ strTime += "0";
+ strTime += calendar.get(Calendar.DAY_OF_MONTH) + "_" ;
+ if(calendar.get(Calendar.HOUR_OF_DAY) < 10)
+ strTime += "0";
+ strTime += calendar.get(Calendar.HOUR_OF_DAY);
+ if(calendar.get(Calendar.MINUTE) < 10)
+ strTime += "0";
+ strTime += calendar.get(Calendar.MINUTE) + "_";
+ if(calendar.get(Calendar.SECOND) < 10)
+ strTime += "0";
+ strTime += calendar.get(Calendar.SECOND) ;
+ System.out.println("date and time: "+strTime);
+ return strTime;
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ if(args.length < 1)
+ VeriFLA.fatalError("Too few arguments: "+args.length+
+ "\nSintax is:\n\tjava VeriFLA [=0/1 (default 0)] [sourceToRebuild_capture]\n"+
+ "Examples:\n1. Wait for FPGA to send capture:\n\tjava VeriFLA verifla_properties_keyboard.txt\n"+
+ "2. Send to the monitor the run command and wait for FPGA to send capture:\n\tjava VeriFLA verifla_properties_keyboard.txt 1\n"
+ );
+ // 1st arg.
+ System.out.println("propertiesFileName = " + args[0]);
+ // 2nd arg.
+ sendRunCommand = 0;
+ if(args.length >= 2) {
+ System.out.println(" sendRunCommand = " + args[1]);
+ sendRunCommand = Integer.parseInt(args[1]);
+ }
+ // 3rd arg.
+ String sourceToRebuildCaptureFile=null;
+ if(args.length >= 3) {
+ System.out.println(" sourceToRebuild_capture = " + args[2]);
+ sourceToRebuildCaptureFile = args[2];
+ }
+ VeriFLA verifla;
+ verifla = new VeriFLA();
+ verifla.job(args[0], sourceToRebuildCaptureFile);
+ }
+
+ // This java app. data members
+ boolean debugVeriFLA=true;
+
+ String propertiesFileName;
+ Properties properties;
+ SerialPort serialPort;
+ String strBaudRate;
+ final static String NAME = "LA";
+ final static String STR_ORIGINAL_CAPTURE_DUMP = "ORIGINAL CAPTURE DUMP";
+ final static int USERCMD_RESET=0x00, USERCMD_RUN = 0x01;
+ byte [][] memoryLineBytes;
+ int octetsPerWord, totalmemoryDataBytes;
+ int totalSignals;
+ public static int sendRunCommand=0;
+ int clockPeriod;
+
+ // Properties file members
+ String portName;
+ int memWords, memWordLenBits, dataWordLenBits, clonesWordLenBits,
+ triggerMatchMemAddr, maxSamplesAfterTrigger;
+ //int [] triggerLastValue;
+ String strTimescaleUnit, strTimescalePrecision;
+ int signalGroups;
+ String [] groupName;
+ int [] groupSize, groupEndian;
+}
openverifla_2.3.b/java/VeriFLA.java
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/UARTSendReceive.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3.b/java/UARTSendReceive.class
===================================================================
--- openverifla_2.3.b/java/UARTSendReceive.class (nonexistent)
+++ openverifla_2.3.b/java/UARTSendReceive.class (revision 42)
openverifla_2.3.b/java/UARTSendReceive.class
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: openverifla_2.3.b/java/UARTSendReceive.java
===================================================================
--- openverifla_2.3.b/java/UARTSendReceive.java (nonexistent)
+++ openverifla_2.3.b/java/UARTSendReceive.java (revision 42)
@@ -0,0 +1,156 @@
+/*
+UARTSendReceive.java
+License: GNU GPL
+
+Revision history:
+revistion date: 2018/07/20; author: Laurentiu Duca
+- port of SerialPort jssc instead of rxtx
+revision date: 2007/Sep/03; author: Laurentiu Duca
+- captureOnly feature
+- consider that the bt_queue_head_address is wrote at the end of the data capture.
+- use HOUR_OF_DAY (0..23)
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.BufferedReader;
+import java.util.Properties;
+import java.util.Enumeration;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.StringTokenizer;
+
+import jssc.SerialPort;
+import jssc.SerialPortException;
+
+public class UARTSendReceive extends Object {
+
+ // Data members are declared at the end.
+
+ /**
+ * Creates a new object.
+ *
+ */
+ public UARTSendReceive() {
+ this.serialPort = null;
+ //this.properties = new Properties();
+ }
+
+ /**
+ * Attaches the given serial serialPort to the device object.
+ * The method will try to open the serialPort.
+ */
+ public boolean attach(String portName, String strBaudRate, String parity) {
+ serialPort = new SerialPort(portName);
+
+ byte pb[]=parity.getBytes();
+ int b=pb[0]=='1'?SerialPort.PARITY_ODD:SerialPort.PARITY_NONE;
+ System.out.println("parity="+b);
+ try {
+ serialPort.openPort();//Open serial port
+ int baudrate=Integer.parseInt(strBaudRate);
+ //strBaudRate.equals("115200")?SerialPort.BAUDRATE_115200:
+ //strBaudRate.equals("38400")?SerialPort.BAUDRATE_38400:SerialPort.BAUDRATE_9600;
+ serialPort.setParams(baudrate,
+ SerialPort.DATABITS_8,
+ SerialPort.STOPBITS_1,
+ b); //SerialPort.PARITY_NONE);
+ //Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
+ //serialPort.writeBytes("This is a test string".getBytes());//Write data to port
+ } catch (SerialPortException ex) {
+ ex.printStackTrace(System.out);
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Detaches the currently attached serialPort, if one exists.
+ * This will close the serial port.
+ *
+ */
+ public void detach() {
+ if (serialPort != null) {
+ try {
+ serialPort.closePort();
+ } catch (SerialPortException ex) {
+ ex.printStackTrace(System.out);
+ }
+ }
+ }
+
+ public void sendReceive(String msg) throws IOException, SerialPortException {
+ byte rawByte[]=new byte[1];
+ rawByte = msg.getBytes();
+
+ System.out.println("Sending...");
+ serialPort.writeBytes(rawByte);
+ System.out.println("Done sending.");
+
+ // Read Captured data
+ System.out.println("Reading");
+ byte readByte[] = serialPort.readBytes(1);
+ System.out.printf("Read: '%c'=0x%x\n", (char) readByte[0], (int) readByte[0]);
+ }
+
+ public void getCapturedData(String portName, String strBaudRate, String parity, String msg)
+ {
+ boolean found;
+ found = attach(portName, strBaudRate, parity);
+ if(!found) {
+ System.out.println("Port " + portName + " not found.\n");
+ System.exit(0);
+ }
+ try {
+ sendReceive(msg);
+ } catch (Exception ex) {
+ ex.printStackTrace(System.out);
+ }
+ detach();
+ }
+
+
+ public static void fatalError(String errorName)
+ {
+ System.out.println("Fatal error: " + errorName);
+ System.exit(-1);
+ }
+
+
+ public static void main(String[] args) throws Exception
+ {
+ if(args.length != 4)
+ UARTSendReceive.fatalError("Number of arguments is not 4; is "+args.length+"\n"+
+ "Sintax is:\njava UARTSendReceive \n"+
+ "Examples:\n"+
+ "java UARTSendReceive COM5 9600 0 a\n"+
+ "java UARTSendReceive /dev/ttyUSB0 115200 0 a\n");
+ // 1st arg.
+ System.out.println("port = " + args[0]);
+ System.out.println("baudrate = " + args[1]);
+ //if(!args[1].equals("115200") && !args[1].equals("38400") && !args[1].equals("9600"))
+ // fatalError("Invalid baudrate");
+ System.out.println("parity = " + args[2]);
+ System.out.println("char = " + args[3]);
+ UARTSendReceive usr;
+ usr = new UARTSendReceive();
+ usr.getCapturedData(args[0], args[1], args[2], args[3]);
+ }
+
+ SerialPort serialPort;
+ byte [][] memoryDataWords;
+ int octetsPerWord, idOfTypeBitInLastOctet, totalmemoryDataBytes;
+ // Properties file members
+ String portName;
+}
openverifla_2.3.b/java/UARTSendReceive.java
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/VeriFLA.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3.b/java/VeriFLA.class
===================================================================
--- openverifla_2.3.b/java/VeriFLA.class (nonexistent)
+++ openverifla_2.3.b/java/VeriFLA.class (revision 42)
openverifla_2.3.b/java/VeriFLA.class
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: openverifla_2.3.b/java/capture_20181016_1230_58.v
===================================================================
--- openverifla_2.3.b/java/capture_20181016_1230_58.v (nonexistent)
+++ openverifla_2.3.b/java/capture_20181016_1230_58.v (revision 42)
@@ -0,0 +1,356 @@
+`timescale 1ns / 10ps
+
+module capture_20181016_1230_58(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
+
+output clk_of_verifla;
+output la_trigger_matched;
+output [16:0] memory_line_id;
+output [7:0] KBD_KEY;
+output kbd_clk_line;
+output kbd_data_line;
+output [5:0] not_used;
+reg [7:0] KBD_KEY;
+reg kbd_clk_line;
+reg kbd_data_line;
+reg [5:0] not_used;
+reg [16:0] memory_line_id;
+reg la_trigger_matched;
+reg clk_of_verifla;
+
+parameter PERIOD = 20;
+initial // Clock process for clk_of_verifla
+begin
+ forever
+ begin
+ clk_of_verifla = 1'b0;
+ #(10); clk_of_verifla = 1'b1;
+ #(10);
+ end
+end
+
+initial begin
+#(10);
+la_trigger_matched = 0;
+memory_line_id=6;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 1310670*(1ns)
+memory_line_id=7;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 2621330*(1ns)
+memory_line_id=0;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 3931990*(1ns)
+memory_line_id=1;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 5242650*(1ns)
+memory_line_id=2;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 6553310*(1ns)
+memory_line_id=3;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 7863970*(1ns)
+memory_line_id=4;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1198240;
+// ------------- Current Time: 9062210*(1ns)
+memory_line_id=5;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
+#11540;
+// ------------- Current Time: 9073750*(1ns)
+memory_line_id=8;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
+la_trigger_matched = 1;
+#60;
+// ------------- Current Time: 9073810*(1ns)
+memory_line_id=9;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#44180;
+// ------------- Current Time: 9117990*(1ns)
+memory_line_id=10;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
+#34280;
+// ------------- Current Time: 9152270*(1ns)
+memory_line_id=11;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#60;
+// ------------- Current Time: 9152330*(1ns)
+memory_line_id=12;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#43140;
+// ------------- Current Time: 9195470*(1ns)
+memory_line_id=13;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
+#34280;
+// ------------- Current Time: 9229750*(1ns)
+memory_line_id=14;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#60;
+// ------------- Current Time: 9229810*(1ns)
+memory_line_id=15;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
+#43140;
+// ------------- Current Time: 9272950*(1ns)
+memory_line_id=16;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
+#11460;
+// ------------- Current Time: 9284410*(1ns)
+memory_line_id=17;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
+#24900;
+// ------------- Current Time: 9309310*(1ns)
+memory_line_id=18;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
+#60;
+// ------------- Current Time: 9309370*(1ns)
+memory_line_id=19;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#43100;
+// ------------- Current Time: 9352470*(1ns)
+memory_line_id=20;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
+#36400;
+// ------------- Current Time: 9388870*(1ns)
+memory_line_id=21;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#60;
+// ------------- Current Time: 9388930*(1ns)
+memory_line_id=22;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#43100;
+// ------------- Current Time: 9432030*(1ns)
+memory_line_id=23;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
+#36400;
+// ------------- Current Time: 9468430*(1ns)
+memory_line_id=24;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#60;
+// ------------- Current Time: 9468490*(1ns)
+memory_line_id=25;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
+#43100;
+// ------------- Current Time: 9511590*(1ns)
+memory_line_id=26;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
+#12340;
+// ------------- Current Time: 9523930*(1ns)
+memory_line_id=27;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
+#22000;
+// ------------- Current Time: 9545930*(1ns)
+memory_line_id=28;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
+#60;
+// ------------- Current Time: 9545990*(1ns)
+memory_line_id=29;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#43140;
+// ------------- Current Time: 9589130*(1ns)
+memory_line_id=30;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
+#34260;
+// ------------- Current Time: 9623390*(1ns)
+memory_line_id=31;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#60;
+// ------------- Current Time: 9623450*(1ns)
+memory_line_id=32;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#43140;
+// ------------- Current Time: 9666590*(1ns)
+memory_line_id=33;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
+#34280;
+// ------------- Current Time: 9700870*(1ns)
+memory_line_id=34;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#60;
+// ------------- Current Time: 9700930*(1ns)
+memory_line_id=35;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#44180;
+// ------------- Current Time: 9745110*(1ns)
+memory_line_id=36;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
+#41600;
+// ------------- Current Time: 9786710*(1ns)
+memory_line_id=37;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#60;
+// ------------- Current Time: 9786770*(1ns)
+memory_line_id=38;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
+#43140;
+// ------------- Current Time: 9829910*(1ns)
+memory_line_id=39;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
+#11460;
+// ------------- Current Time: 9841370*(1ns)
+memory_line_id=40;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
+#30120;
+// ------------- Current Time: 9871490*(1ns)
+memory_line_id=41;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
+#60;
+// ------------- Current Time: 9871550*(1ns)
+memory_line_id=42;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
+#49380;
+// ------------- Current Time: 9920930*(1ns)
+memory_line_id=43;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 11231590*(1ns)
+memory_line_id=44;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 12542250*(1ns)
+memory_line_id=45;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 13852910*(1ns)
+memory_line_id=46;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 15163570*(1ns)
+memory_line_id=47;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 16474230*(1ns)
+memory_line_id=48;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 17784890*(1ns)
+memory_line_id=49;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 19095550*(1ns)
+memory_line_id=50;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 20406210*(1ns)
+memory_line_id=51;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 21716870*(1ns)
+memory_line_id=52;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 23027530*(1ns)
+memory_line_id=53;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 24338190*(1ns)
+memory_line_id=54;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 25648850*(1ns)
+memory_line_id=55;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 26959510*(1ns)
+memory_line_id=56;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 28270170*(1ns)
+memory_line_id=57;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 29580830*(1ns)
+memory_line_id=58;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 30891490*(1ns)
+memory_line_id=59;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 32202150*(1ns)
+memory_line_id=60;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 33512810*(1ns)
+memory_line_id=61;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 34823470*(1ns)
+memory_line_id=62;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 36134130*(1ns)
+$stop;
+end
+endmodule
+/*
+ORIGINAL CAPTURE DUMP
+memory_line_id=0: FF FD 03 00
+memory_line_id=1: FF FD 03 00
+memory_line_id=2: FF FD 03 00
+memory_line_id=3: FF FD 03 00
+memory_line_id=4: EA 08 03 00
+memory_line_id=5: 02 41 01 00
+memory_line_id=6: FF FD 03 00
+memory_line_id=7: FF FD 03 00
+memory_line_id=8: 00 03 00 00
+memory_line_id=9: 08 A1 04 00
+memory_line_id=10: 06 B2 05 00
+memory_line_id=11: 00 03 04 00
+memory_line_id=12: 08 6D 08 00
+memory_line_id=13: 06 B2 09 00
+memory_line_id=14: 00 03 08 00
+memory_line_id=15: 08 6D 0C 00
+memory_line_id=16: 02 3D 0D 00
+memory_line_id=17: 04 DD 0F 00
+memory_line_id=18: 00 03 0E 00
+memory_line_id=19: 08 6B 12 80
+memory_line_id=20: 07 1C 13 80
+memory_line_id=21: 00 03 12 80
+memory_line_id=22: 08 6B 16 C0
+memory_line_id=23: 07 1C 17 C0
+memory_line_id=24: 00 03 16 C0
+memory_line_id=25: 08 6B 1A E0
+memory_line_id=26: 02 69 1B E0
+memory_line_id=27: 04 4C 19 E0
+memory_line_id=28: 00 03 18 E0
+memory_line_id=29: 08 6D 1C 70
+memory_line_id=30: 06 B1 1D 70
+memory_line_id=31: 00 03 1C 70
+memory_line_id=32: 08 6D 20 38
+memory_line_id=33: 06 B2 21 38
+memory_line_id=34: 00 03 20 38
+memory_line_id=35: 08 A1 24 1C
+memory_line_id=36: 08 20 25 1C
+memory_line_id=37: 00 03 24 1C
+memory_line_id=38: 08 6D 28 1C
+memory_line_id=39: 02 3D 29 1C
+memory_line_id=40: 05 E2 2B 1C
+memory_line_id=41: 00 03 2A 1C
+memory_line_id=42: 09 A5 2E 1C
+memory_line_id=43: FF FD 2F 1C
+memory_line_id=44: FF FD 2F 1C
+memory_line_id=45: FF FD 2F 1C
+memory_line_id=46: FF FD 2F 1C
+memory_line_id=47: FF FD 2F 1C
+memory_line_id=48: FF FD 2F 1C
+memory_line_id=49: FF FD 2F 1C
+memory_line_id=50: FF FD 2F 1C
+memory_line_id=51: FF FD 2F 1C
+memory_line_id=52: FF FD 2F 1C
+memory_line_id=53: FF FD 2F 1C
+memory_line_id=54: FF FD 2F 1C
+memory_line_id=55: FF FD 2F 1C
+memory_line_id=56: FF FD 2F 1C
+memory_line_id=57: FF FD 2F 1C
+memory_line_id=58: FF FD 2F 1C
+memory_line_id=59: FF FD 2F 1C
+memory_line_id=60: FF FD 2F 1C
+memory_line_id=61: FF FD 2F 1C
+memory_line_id=62: FF FD 2F 1C
+memory_line_id=63: 00 00 00 05
+*/
Index: openverifla_2.3.b/java/capture_20181016_1235_36.v
===================================================================
--- openverifla_2.3.b/java/capture_20181016_1235_36.v (nonexistent)
+++ openverifla_2.3.b/java/capture_20181016_1235_36.v (revision 42)
@@ -0,0 +1,356 @@
+`timescale 1ns / 10ps
+
+module capture_20181016_1235_36(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
+
+output clk_of_verifla;
+output la_trigger_matched;
+output [16:0] memory_line_id;
+output [7:0] KBD_KEY;
+output kbd_clk_line;
+output kbd_data_line;
+output [5:0] not_used;
+reg [7:0] KBD_KEY;
+reg kbd_clk_line;
+reg kbd_data_line;
+reg [5:0] not_used;
+reg [16:0] memory_line_id;
+reg la_trigger_matched;
+reg clk_of_verifla;
+
+parameter PERIOD = 20;
+initial // Clock process for clk_of_verifla
+begin
+ forever
+ begin
+ clk_of_verifla = 1'b0;
+ #(10); clk_of_verifla = 1'b1;
+ #(10);
+ end
+end
+
+initial begin
+#(10);
+la_trigger_matched = 0;
+memory_line_id=4;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 1310670*(1ns)
+memory_line_id=5;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 2621330*(1ns)
+memory_line_id=6;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 3931990*(1ns)
+memory_line_id=7;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 5242650*(1ns)
+memory_line_id=0;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 6553310*(1ns)
+memory_line_id=1;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 7863970*(1ns)
+memory_line_id=2;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1029400;
+// ------------- Current Time: 8893370*(1ns)
+memory_line_id=3;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
+#11540;
+// ------------- Current Time: 8904910*(1ns)
+memory_line_id=8;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
+la_trigger_matched = 1;
+#60;
+// ------------- Current Time: 8904970*(1ns)
+memory_line_id=9;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#44180;
+// ------------- Current Time: 8949150*(1ns)
+memory_line_id=10;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
+#34300;
+// ------------- Current Time: 8983450*(1ns)
+memory_line_id=11;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#60;
+// ------------- Current Time: 8983510*(1ns)
+memory_line_id=12;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#43140;
+// ------------- Current Time: 9026650*(1ns)
+memory_line_id=13;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
+#34280;
+// ------------- Current Time: 9060930*(1ns)
+memory_line_id=14;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#60;
+// ------------- Current Time: 9060990*(1ns)
+memory_line_id=15;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
+#43160;
+// ------------- Current Time: 9104150*(1ns)
+memory_line_id=16;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
+#11460;
+// ------------- Current Time: 9115610*(1ns)
+memory_line_id=17;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
+#24900;
+// ------------- Current Time: 9140510*(1ns)
+memory_line_id=18;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
+#60;
+// ------------- Current Time: 9140570*(1ns)
+memory_line_id=19;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#43100;
+// ------------- Current Time: 9183670*(1ns)
+memory_line_id=20;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
+#36400;
+// ------------- Current Time: 9220070*(1ns)
+memory_line_id=21;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#60;
+// ------------- Current Time: 9220130*(1ns)
+memory_line_id=22;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#43120;
+// ------------- Current Time: 9263250*(1ns)
+memory_line_id=23;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
+#36400;
+// ------------- Current Time: 9299650*(1ns)
+memory_line_id=24;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#60;
+// ------------- Current Time: 9299710*(1ns)
+memory_line_id=25;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
+#43120;
+// ------------- Current Time: 9342830*(1ns)
+memory_line_id=26;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
+#12320;
+// ------------- Current Time: 9355150*(1ns)
+memory_line_id=27;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
+#22020;
+// ------------- Current Time: 9377170*(1ns)
+memory_line_id=28;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
+#60;
+// ------------- Current Time: 9377230*(1ns)
+memory_line_id=29;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#43140;
+// ------------- Current Time: 9420370*(1ns)
+memory_line_id=30;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
+#34280;
+// ------------- Current Time: 9454650*(1ns)
+memory_line_id=31;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#60;
+// ------------- Current Time: 9454710*(1ns)
+memory_line_id=32;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#43160;
+// ------------- Current Time: 9497870*(1ns)
+memory_line_id=33;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
+#34280;
+// ------------- Current Time: 9532150*(1ns)
+memory_line_id=34;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#60;
+// ------------- Current Time: 9532210*(1ns)
+memory_line_id=35;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#44180;
+// ------------- Current Time: 9576390*(1ns)
+memory_line_id=36;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
+#41620;
+// ------------- Current Time: 9618010*(1ns)
+memory_line_id=37;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#60;
+// ------------- Current Time: 9618070*(1ns)
+memory_line_id=38;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
+#43140;
+// ------------- Current Time: 9661210*(1ns)
+memory_line_id=39;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
+#11460;
+// ------------- Current Time: 9672670*(1ns)
+memory_line_id=40;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
+#30140;
+// ------------- Current Time: 9702810*(1ns)
+memory_line_id=41;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
+#60;
+// ------------- Current Time: 9702870*(1ns)
+memory_line_id=42;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
+#49380;
+// ------------- Current Time: 9752250*(1ns)
+memory_line_id=43;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 11062910*(1ns)
+memory_line_id=44;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 12373570*(1ns)
+memory_line_id=45;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 13684230*(1ns)
+memory_line_id=46;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 14994890*(1ns)
+memory_line_id=47;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 16305550*(1ns)
+memory_line_id=48;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 17616210*(1ns)
+memory_line_id=49;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 18926870*(1ns)
+memory_line_id=50;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 20237530*(1ns)
+memory_line_id=51;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 21548190*(1ns)
+memory_line_id=52;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 22858850*(1ns)
+memory_line_id=53;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 24169510*(1ns)
+memory_line_id=54;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 25480170*(1ns)
+memory_line_id=55;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 26790830*(1ns)
+memory_line_id=56;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 28101490*(1ns)
+memory_line_id=57;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 29412150*(1ns)
+memory_line_id=58;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 30722810*(1ns)
+memory_line_id=59;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 32033470*(1ns)
+memory_line_id=60;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 33344130*(1ns)
+memory_line_id=61;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 34654790*(1ns)
+memory_line_id=62;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 35965450*(1ns)
+$stop;
+end
+endmodule
+/*
+ORIGINAL CAPTURE DUMP
+memory_line_id=0: FF FD 03 00
+memory_line_id=1: FF FD 03 00
+memory_line_id=2: C9 0E 03 00
+memory_line_id=3: 02 41 01 00
+memory_line_id=4: FF FD 03 00
+memory_line_id=5: FF FD 03 00
+memory_line_id=6: FF FD 03 00
+memory_line_id=7: FF FD 03 00
+memory_line_id=8: 00 03 00 00
+memory_line_id=9: 08 A1 04 00
+memory_line_id=10: 06 B3 05 00
+memory_line_id=11: 00 03 04 00
+memory_line_id=12: 08 6D 08 00
+memory_line_id=13: 06 B2 09 00
+memory_line_id=14: 00 03 08 00
+memory_line_id=15: 08 6E 0C 00
+memory_line_id=16: 02 3D 0D 00
+memory_line_id=17: 04 DD 0F 00
+memory_line_id=18: 00 03 0E 00
+memory_line_id=19: 08 6B 12 80
+memory_line_id=20: 07 1C 13 80
+memory_line_id=21: 00 03 12 80
+memory_line_id=22: 08 6C 16 C0
+memory_line_id=23: 07 1C 17 C0
+memory_line_id=24: 00 03 16 C0
+memory_line_id=25: 08 6C 1A E0
+memory_line_id=26: 02 68 1B E0
+memory_line_id=27: 04 4D 19 E0
+memory_line_id=28: 00 03 18 E0
+memory_line_id=29: 08 6D 1C 70
+memory_line_id=30: 06 B2 1D 70
+memory_line_id=31: 00 03 1C 70
+memory_line_id=32: 08 6E 20 38
+memory_line_id=33: 06 B2 21 38
+memory_line_id=34: 00 03 20 38
+memory_line_id=35: 08 A1 24 1C
+memory_line_id=36: 08 21 25 1C
+memory_line_id=37: 00 03 24 1C
+memory_line_id=38: 08 6D 28 1C
+memory_line_id=39: 02 3D 29 1C
+memory_line_id=40: 05 E3 2B 1C
+memory_line_id=41: 00 03 2A 1C
+memory_line_id=42: 09 A5 2E 1C
+memory_line_id=43: FF FD 2F 1C
+memory_line_id=44: FF FD 2F 1C
+memory_line_id=45: FF FD 2F 1C
+memory_line_id=46: FF FD 2F 1C
+memory_line_id=47: FF FD 2F 1C
+memory_line_id=48: FF FD 2F 1C
+memory_line_id=49: FF FD 2F 1C
+memory_line_id=50: FF FD 2F 1C
+memory_line_id=51: FF FD 2F 1C
+memory_line_id=52: FF FD 2F 1C
+memory_line_id=53: FF FD 2F 1C
+memory_line_id=54: FF FD 2F 1C
+memory_line_id=55: FF FD 2F 1C
+memory_line_id=56: FF FD 2F 1C
+memory_line_id=57: FF FD 2F 1C
+memory_line_id=58: FF FD 2F 1C
+memory_line_id=59: FF FD 2F 1C
+memory_line_id=60: FF FD 2F 1C
+memory_line_id=61: FF FD 2F 1C
+memory_line_id=62: FF FD 2F 1C
+memory_line_id=63: 00 00 00 03
+*/
Index: openverifla_2.3.b/java/capture_keyboard_20180823_1508.v
===================================================================
--- openverifla_2.3.b/java/capture_keyboard_20180823_1508.v (nonexistent)
+++ openverifla_2.3.b/java/capture_keyboard_20180823_1508.v (revision 42)
@@ -0,0 +1,356 @@
+`timescale 1ns / 10ps
+
+module capture_20180823_1508_56(clk_of_verifla, la_trigger_matched, KBD_KEY, kbd_clk_line, kbd_data_line, not_used, memory_line_id);
+
+output clk_of_verifla;
+output la_trigger_matched;
+output [16:0] memory_line_id;
+output [7:0] KBD_KEY;
+output kbd_clk_line;
+output kbd_data_line;
+output [5:0] not_used;
+reg [7:0] KBD_KEY;
+reg kbd_clk_line;
+reg kbd_data_line;
+reg [5:0] not_used;
+reg [16:0] memory_line_id;
+reg la_trigger_matched;
+reg clk_of_verifla;
+
+parameter PERIOD = 20;
+initial // Clock process for clk_of_verifla
+begin
+ forever
+ begin
+ clk_of_verifla = 1'b0;
+ #(10); clk_of_verifla = 1'b1;
+ #(10);
+ end
+end
+
+initial begin
+#(10);
+la_trigger_matched = 0;
+memory_line_id=3;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 1310670*(1ns)
+memory_line_id=4;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 2621330*(1ns)
+memory_line_id=5;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 3931990*(1ns)
+memory_line_id=6;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 5242650*(1ns)
+memory_line_id=7;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 6553310*(1ns)
+memory_line_id=0;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#1310660;
+// ------------- Current Time: 7863970*(1ns)
+memory_line_id=1;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000001100000000;
+#767700;
+// ------------- Current Time: 8631670*(1ns)
+memory_line_id=2;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000100000000;
+#11460;
+// ------------- Current Time: 8643130*(1ns)
+memory_line_id=8;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000000000000000;
+la_trigger_matched = 1;
+#60;
+// ------------- Current Time: 8643190*(1ns)
+memory_line_id=9;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#43880;
+// ------------- Current Time: 8687070*(1ns)
+memory_line_id=10;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010100000000;
+#34020;
+// ------------- Current Time: 8721090*(1ns)
+memory_line_id=11;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000010000000000;
+#60;
+// ------------- Current Time: 8721150*(1ns)
+memory_line_id=12;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#42860;
+// ------------- Current Time: 8764010*(1ns)
+memory_line_id=13;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100100000000;
+#34020;
+// ------------- Current Time: 8798030*(1ns)
+memory_line_id=14;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000100000000000;
+#40;
+// ------------- Current Time: 8798070*(1ns)
+memory_line_id=15;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110000000000;
+#42860;
+// ------------- Current Time: 8840930*(1ns)
+memory_line_id=16;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000110100000000;
+#11380;
+// ------------- Current Time: 8852310*(1ns)
+memory_line_id=17;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111100000000;
+#24700;
+// ------------- Current Time: 8877010*(1ns)
+memory_line_id=18;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0000111000000000;
+#60;
+// ------------- Current Time: 8877070*(1ns)
+memory_line_id=19;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#42800;
+// ------------- Current Time: 8919870*(1ns)
+memory_line_id=20;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001110000000;
+#36140;
+// ------------- Current Time: 8956010*(1ns)
+memory_line_id=21;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001001010000000;
+#60;
+// ------------- Current Time: 8956070*(1ns)
+memory_line_id=22;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#42800;
+// ------------- Current Time: 8998870*(1ns)
+memory_line_id=23;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011111000000;
+#36140;
+// ------------- Current Time: 9035010*(1ns)
+memory_line_id=24;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001011011000000;
+#60;
+// ------------- Current Time: 9035070*(1ns)
+memory_line_id=25;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101011100000;
+#42800;
+// ------------- Current Time: 9077870*(1ns)
+memory_line_id=26;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001101111100000;
+#12220;
+// ------------- Current Time: 9090090*(1ns)
+memory_line_id=27;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100111100000;
+#21860;
+// ------------- Current Time: 9111950*(1ns)
+memory_line_id=28;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001100011100000;
+#60;
+// ------------- Current Time: 9112010*(1ns)
+memory_line_id=29;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#42840;
+// ------------- Current Time: 9154850*(1ns)
+memory_line_id=30;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110101110000;
+#34020;
+// ------------- Current Time: 9188870*(1ns)
+memory_line_id=31;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0001110001110000;
+#60;
+// ------------- Current Time: 9188930*(1ns)
+memory_line_id=32;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#42840;
+// ------------- Current Time: 9231770*(1ns)
+memory_line_id=33;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000100111000;
+#34020;
+// ------------- Current Time: 9265790*(1ns)
+memory_line_id=34;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010000000111000;
+#60;
+// ------------- Current Time: 9265850*(1ns)
+memory_line_id=35;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#43880;
+// ------------- Current Time: 9309730*(1ns)
+memory_line_id=36;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010100011100;
+#41300;
+// ------------- Current Time: 9351030*(1ns)
+memory_line_id=37;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010010000011100;
+#60;
+// ------------- Current Time: 9351090*(1ns)
+memory_line_id=38;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100000011100;
+#42840;
+// ------------- Current Time: 9393930*(1ns)
+memory_line_id=39;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010100100011100;
+#11380;
+// ------------- Current Time: 9405310*(1ns)
+memory_line_id=40;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101100011100;
+#29900;
+// ------------- Current Time: 9435210*(1ns)
+memory_line_id=41;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010101000011100;
+#60;
+// ------------- Current Time: 9435270*(1ns)
+memory_line_id=42;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111000011100;
+#49060;
+// ------------- Current Time: 9484330*(1ns)
+memory_line_id=43;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 10794990*(1ns)
+memory_line_id=44;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 12105650*(1ns)
+memory_line_id=45;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 13416310*(1ns)
+memory_line_id=46;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 14726970*(1ns)
+memory_line_id=47;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 16037630*(1ns)
+memory_line_id=48;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 17348290*(1ns)
+memory_line_id=49;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 18658950*(1ns)
+memory_line_id=50;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 19969610*(1ns)
+memory_line_id=51;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 21280270*(1ns)
+memory_line_id=52;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 22590930*(1ns)
+memory_line_id=53;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 23901590*(1ns)
+memory_line_id=54;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 25212250*(1ns)
+memory_line_id=55;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 26522910*(1ns)
+memory_line_id=56;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 27833570*(1ns)
+memory_line_id=57;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 29144230*(1ns)
+memory_line_id=58;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 30454890*(1ns)
+memory_line_id=59;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 31765550*(1ns)
+memory_line_id=60;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 33076210*(1ns)
+memory_line_id=61;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 34386870*(1ns)
+memory_line_id=62;
+{not_used,kbd_data_line,kbd_clk_line,KBD_KEY} = 16'b0010111100011100;
+#1310660;
+// ------------- Current Time: 35697530*(1ns)
+$stop;
+end
+endmodule
+/*
+ORIGINAL CAPTURE DUMP
+memory_line_id=0: FF FD 03 00
+memory_line_id=1: 95 F1 03 00
+memory_line_id=2: 02 3D 01 00
+memory_line_id=3: FF FD 03 00
+memory_line_id=4: FF FD 03 00
+memory_line_id=5: FF FD 03 00
+memory_line_id=6: FF FD 03 00
+memory_line_id=7: FF FD 03 00
+memory_line_id=8: 00 03 00 00
+memory_line_id=9: 08 92 04 00
+memory_line_id=10: 06 A5 05 00
+memory_line_id=11: 00 03 04 00
+memory_line_id=12: 08 5F 08 00
+memory_line_id=13: 06 A5 09 00
+memory_line_id=14: 00 02 08 00
+memory_line_id=15: 08 5F 0C 00
+memory_line_id=16: 02 39 0D 00
+memory_line_id=17: 04 D3 0F 00
+memory_line_id=18: 00 03 0E 00
+memory_line_id=19: 08 5C 12 80
+memory_line_id=20: 07 0F 13 80
+memory_line_id=21: 00 03 12 80
+memory_line_id=22: 08 5C 16 C0
+memory_line_id=23: 07 0F 17 C0
+memory_line_id=24: 00 03 16 C0
+memory_line_id=25: 08 5C 1A E0
+memory_line_id=26: 02 63 1B E0
+memory_line_id=27: 04 45 19 E0
+memory_line_id=28: 00 03 18 E0
+memory_line_id=29: 08 5E 1C 70
+memory_line_id=30: 06 A5 1D 70
+memory_line_id=31: 00 03 1C 70
+memory_line_id=32: 08 5E 20 38
+memory_line_id=33: 06 A5 21 38
+memory_line_id=34: 00 03 20 38
+memory_line_id=35: 08 92 24 1C
+memory_line_id=36: 08 11 25 1C
+memory_line_id=37: 00 03 24 1C
+memory_line_id=38: 08 5E 28 1C
+memory_line_id=39: 02 39 29 1C
+memory_line_id=40: 05 D7 2B 1C
+memory_line_id=41: 00 03 2A 1C
+memory_line_id=42: 09 95 2E 1C
+memory_line_id=43: FF FD 2F 1C
+memory_line_id=44: FF FD 2F 1C
+memory_line_id=45: FF FD 2F 1C
+memory_line_id=46: FF FD 2F 1C
+memory_line_id=47: FF FD 2F 1C
+memory_line_id=48: FF FD 2F 1C
+memory_line_id=49: FF FD 2F 1C
+memory_line_id=50: FF FD 2F 1C
+memory_line_id=51: FF FD 2F 1C
+memory_line_id=52: FF FD 2F 1C
+memory_line_id=53: FF FD 2F 1C
+memory_line_id=54: FF FD 2F 1C
+memory_line_id=55: FF FD 2F 1C
+memory_line_id=56: FF FD 2F 1C
+memory_line_id=57: FF FD 2F 1C
+memory_line_id=58: FF FD 2F 1C
+memory_line_id=59: FF FD 2F 1C
+memory_line_id=60: FF FD 2F 1C
+memory_line_id=61: FF FD 2F 1C
+memory_line_id=62: FF FD 2F 1C
+memory_line_id=63: 00 00 00 02
+*/
Index: openverifla_2.3.b/java/capture_spi_slave_20180824_1626.v
===================================================================
--- openverifla_2.3.b/java/capture_spi_slave_20180824_1626.v (nonexistent)
+++ openverifla_2.3.b/java/capture_spi_slave_20180824_1626.v (revision 42)
@@ -0,0 +1,1322 @@
+`timescale 1ns / 10ps
+
+module capture_20180824_1626_23(clk_of_verifla, la_trigger_matched, SCK, SSEL, MOSI, MISO, bitcnt_0, byte_received, byte_data_sent_10, memory_line_id);
+
+output clk_of_verifla;
+output la_trigger_matched;
+output [64:0] memory_line_id;
+output SCK;
+output SSEL;
+output MOSI;
+output MISO;
+output bitcnt_0;
+output byte_received;
+output [1:0] byte_data_sent_10;
+reg SCK;
+reg SSEL;
+reg MOSI;
+reg MISO;
+reg bitcnt_0;
+reg byte_received;
+reg [1:0] byte_data_sent_10;
+reg [64:0] memory_line_id;
+reg la_trigger_matched;
+reg clk_of_verifla;
+
+parameter PERIOD = 20;
+initial // Clock process for clk_of_verifla
+begin
+ forever
+ begin
+ clk_of_verifla = 1'b0;
+ #(10); clk_of_verifla = 1'b1;
+ #(10);
+ end
+end
+
+initial begin
+#(10);
+la_trigger_matched = 0;
+memory_line_id=2;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 5070*(1ns)
+memory_line_id=3;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 10130*(1ns)
+memory_line_id=4;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 15190*(1ns)
+memory_line_id=5;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 20250*(1ns)
+memory_line_id=6;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 25310*(1ns)
+memory_line_id=7;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 30370*(1ns)
+memory_line_id=0;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 35430*(1ns)
+memory_line_id=1;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#2760;
+// ------------- Current Time: 38190*(1ns)
+memory_line_id=8;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+la_trigger_matched = 1;
+#5060;
+// ------------- Current Time: 43250*(1ns)
+memory_line_id=9;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#5060;
+// ------------- Current Time: 48310*(1ns)
+memory_line_id=10;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#3460;
+// ------------- Current Time: 51770*(1ns)
+memory_line_id=11;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 52270*(1ns)
+memory_line_id=12;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 52330*(1ns)
+memory_line_id=13;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 52770*(1ns)
+memory_line_id=14;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 53270*(1ns)
+memory_line_id=15;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 53330*(1ns)
+memory_line_id=16;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 53770*(1ns)
+memory_line_id=17;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 54270*(1ns)
+memory_line_id=18;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 54330*(1ns)
+memory_line_id=19;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 54770*(1ns)
+memory_line_id=20;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 55270*(1ns)
+memory_line_id=21;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 55330*(1ns)
+memory_line_id=22;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 55770*(1ns)
+memory_line_id=23;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 56270*(1ns)
+memory_line_id=24;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 56330*(1ns)
+memory_line_id=25;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 56770*(1ns)
+memory_line_id=26;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 57270*(1ns)
+memory_line_id=27;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 57330*(1ns)
+memory_line_id=28;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 57770*(1ns)
+memory_line_id=29;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 58270*(1ns)
+memory_line_id=30;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 58330*(1ns)
+memory_line_id=31;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 58770*(1ns)
+memory_line_id=32;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 59270*(1ns)
+memory_line_id=33;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 59330*(1ns)
+memory_line_id=34;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100101;
+#440;
+// ------------- Current Time: 59770*(1ns)
+memory_line_id=35;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100000;
+#60;
+// ------------- Current Time: 59830*(1ns)
+memory_line_id=36;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 64890*(1ns)
+memory_line_id=37;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 69950*(1ns)
+memory_line_id=38;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 75010*(1ns)
+memory_line_id=39;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 80070*(1ns)
+memory_line_id=40;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 85130*(1ns)
+memory_line_id=41;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 90190*(1ns)
+memory_line_id=42;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 95250*(1ns)
+memory_line_id=43;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 100310*(1ns)
+memory_line_id=44;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 105370*(1ns)
+memory_line_id=45;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 110430*(1ns)
+memory_line_id=46;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 115490*(1ns)
+memory_line_id=47;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 120550*(1ns)
+memory_line_id=48;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 125610*(1ns)
+memory_line_id=49;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 130670*(1ns)
+memory_line_id=50;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 135730*(1ns)
+memory_line_id=51;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 140790*(1ns)
+memory_line_id=52;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 145850*(1ns)
+memory_line_id=53;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 150910*(1ns)
+memory_line_id=54;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 155970*(1ns)
+memory_line_id=55;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 161030*(1ns)
+memory_line_id=56;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 166090*(1ns)
+memory_line_id=57;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 171150*(1ns)
+memory_line_id=58;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 176210*(1ns)
+memory_line_id=59;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#1340;
+// ------------- Current Time: 177550*(1ns)
+memory_line_id=60;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 182610*(1ns)
+memory_line_id=61;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 187670*(1ns)
+memory_line_id=62;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#680;
+// ------------- Current Time: 188350*(1ns)
+memory_line_id=63;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#60;
+// ------------- Current Time: 188410*(1ns)
+memory_line_id=64;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 193470*(1ns)
+memory_line_id=65;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 198530*(1ns)
+memory_line_id=66;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 203590*(1ns)
+memory_line_id=67;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 208650*(1ns)
+memory_line_id=68;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 213710*(1ns)
+memory_line_id=69;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 218770*(1ns)
+memory_line_id=70;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 223830*(1ns)
+memory_line_id=71;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 228890*(1ns)
+memory_line_id=72;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 233950*(1ns)
+memory_line_id=73;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 239010*(1ns)
+memory_line_id=74;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 244070*(1ns)
+memory_line_id=75;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 249130*(1ns)
+memory_line_id=76;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#2000;
+// ------------- Current Time: 251130*(1ns)
+memory_line_id=77;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100001;
+#60;
+// ------------- Current Time: 251190*(1ns)
+memory_line_id=78;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010001;
+#440;
+// ------------- Current Time: 251630*(1ns)
+memory_line_id=79;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010000;
+#60;
+// ------------- Current Time: 251690*(1ns)
+memory_line_id=80;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 252130*(1ns)
+memory_line_id=81;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 252190*(1ns)
+memory_line_id=82;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 252630*(1ns)
+memory_line_id=83;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
+#60;
+// ------------- Current Time: 252690*(1ns)
+memory_line_id=84;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#440;
+// ------------- Current Time: 253130*(1ns)
+memory_line_id=85;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 253190*(1ns)
+memory_line_id=86;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 253630*(1ns)
+memory_line_id=87;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 254130*(1ns)
+memory_line_id=88;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 254190*(1ns)
+memory_line_id=89;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 254630*(1ns)
+memory_line_id=90;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 255130*(1ns)
+memory_line_id=91;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 255190*(1ns)
+memory_line_id=92;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 255630*(1ns)
+memory_line_id=93;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 256130*(1ns)
+memory_line_id=94;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 256190*(1ns)
+memory_line_id=95;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 256630*(1ns)
+memory_line_id=96;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 257130*(1ns)
+memory_line_id=97;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 257190*(1ns)
+memory_line_id=98;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 257630*(1ns)
+memory_line_id=99;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#60;
+// ------------- Current Time: 257690*(1ns)
+memory_line_id=100;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
+#440;
+// ------------- Current Time: 258130*(1ns)
+memory_line_id=101;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#60;
+// ------------- Current Time: 258190*(1ns)
+memory_line_id=102;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
+#440;
+// ------------- Current Time: 258630*(1ns)
+memory_line_id=103;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 258690*(1ns)
+memory_line_id=104;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#1440;
+// ------------- Current Time: 260130*(1ns)
+memory_line_id=105;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100001;
+#60;
+// ------------- Current Time: 260190*(1ns)
+memory_line_id=106;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010001;
+#440;
+// ------------- Current Time: 260630*(1ns)
+memory_line_id=107;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
+#60;
+// ------------- Current Time: 260690*(1ns)
+memory_line_id=108;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 261130*(1ns)
+memory_line_id=109;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 261190*(1ns)
+memory_line_id=110;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 261630*(1ns)
+memory_line_id=111;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
+#60;
+// ------------- Current Time: 261690*(1ns)
+memory_line_id=112;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#440;
+// ------------- Current Time: 262130*(1ns)
+memory_line_id=113;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 262190*(1ns)
+memory_line_id=114;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 262630*(1ns)
+memory_line_id=115;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 263130*(1ns)
+memory_line_id=116;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 263190*(1ns)
+memory_line_id=117;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 263630*(1ns)
+memory_line_id=118;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 264130*(1ns)
+memory_line_id=119;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 264190*(1ns)
+memory_line_id=120;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 264630*(1ns)
+memory_line_id=121;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 265130*(1ns)
+memory_line_id=122;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 265190*(1ns)
+memory_line_id=123;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 265630*(1ns)
+memory_line_id=124;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#60;
+// ------------- Current Time: 265690*(1ns)
+memory_line_id=125;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001100;
+#440;
+// ------------- Current Time: 266130*(1ns)
+memory_line_id=126;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001101;
+#60;
+// ------------- Current Time: 266190*(1ns)
+memory_line_id=127;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#440;
+// ------------- Current Time: 266630*(1ns)
+memory_line_id=128;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011000;
+#500;
+// ------------- Current Time: 267130*(1ns)
+memory_line_id=129;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
+#60;
+// ------------- Current Time: 267190*(1ns)
+memory_line_id=130;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101001;
+#440;
+// ------------- Current Time: 267630*(1ns)
+memory_line_id=131;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 267690*(1ns)
+memory_line_id=132;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#940;
+// ------------- Current Time: 268630*(1ns)
+memory_line_id=133;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100100;
+#500;
+// ------------- Current Time: 269130*(1ns)
+memory_line_id=134;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100101;
+#60;
+// ------------- Current Time: 269190*(1ns)
+memory_line_id=135;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010101;
+#440;
+// ------------- Current Time: 269630*(1ns)
+memory_line_id=136;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
+#60;
+// ------------- Current Time: 269690*(1ns)
+memory_line_id=137;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 270130*(1ns)
+memory_line_id=138;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 270190*(1ns)
+memory_line_id=139;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 270630*(1ns)
+memory_line_id=140;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000100;
+#60;
+// ------------- Current Time: 270690*(1ns)
+memory_line_id=141;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#440;
+// ------------- Current Time: 271130*(1ns)
+memory_line_id=142;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 271190*(1ns)
+memory_line_id=143;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 271630*(1ns)
+memory_line_id=144;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 272130*(1ns)
+memory_line_id=145;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 272190*(1ns)
+memory_line_id=146;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 272630*(1ns)
+memory_line_id=147;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 273130*(1ns)
+memory_line_id=148;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 273190*(1ns)
+memory_line_id=149;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 273630*(1ns)
+memory_line_id=150;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 274130*(1ns)
+memory_line_id=151;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 274190*(1ns)
+memory_line_id=152;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 274630*(1ns)
+memory_line_id=153;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#60;
+// ------------- Current Time: 274690*(1ns)
+memory_line_id=154;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001000;
+#440;
+// ------------- Current Time: 275130*(1ns)
+memory_line_id=155;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001001;
+#60;
+// ------------- Current Time: 275190*(1ns)
+memory_line_id=156;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
+#440;
+// ------------- Current Time: 275630*(1ns)
+memory_line_id=157;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
+#500;
+// ------------- Current Time: 276130*(1ns)
+memory_line_id=158;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#60;
+// ------------- Current Time: 276190*(1ns)
+memory_line_id=159;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
+#440;
+// ------------- Current Time: 276630*(1ns)
+memory_line_id=160;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 276690*(1ns)
+memory_line_id=161;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#2740;
+// ------------- Current Time: 279430*(1ns)
+memory_line_id=162;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 284490*(1ns)
+memory_line_id=163;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 289550*(1ns)
+memory_line_id=164;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 294610*(1ns)
+memory_line_id=165;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 299670*(1ns)
+memory_line_id=166;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 304730*(1ns)
+memory_line_id=167;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 309790*(1ns)
+memory_line_id=168;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 314850*(1ns)
+memory_line_id=169;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 319910*(1ns)
+memory_line_id=170;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 324970*(1ns)
+memory_line_id=171;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 330030*(1ns)
+memory_line_id=172;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 335090*(1ns)
+memory_line_id=173;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 340150*(1ns)
+memory_line_id=174;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 345210*(1ns)
+memory_line_id=175;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 350270*(1ns)
+memory_line_id=176;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 355330*(1ns)
+memory_line_id=177;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 360390*(1ns)
+memory_line_id=178;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 365450*(1ns)
+memory_line_id=179;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 370510*(1ns)
+memory_line_id=180;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 375570*(1ns)
+memory_line_id=181;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 380630*(1ns)
+memory_line_id=182;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 385690*(1ns)
+memory_line_id=183;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 390750*(1ns)
+memory_line_id=184;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 395810*(1ns)
+memory_line_id=185;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 400870*(1ns)
+memory_line_id=186;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 405930*(1ns)
+memory_line_id=187;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 410990*(1ns)
+memory_line_id=188;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 416050*(1ns)
+memory_line_id=189;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 421110*(1ns)
+memory_line_id=190;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 426170*(1ns)
+memory_line_id=191;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 431230*(1ns)
+memory_line_id=192;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 436290*(1ns)
+memory_line_id=193;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 441350*(1ns)
+memory_line_id=194;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 446410*(1ns)
+memory_line_id=195;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 451470*(1ns)
+memory_line_id=196;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 456530*(1ns)
+memory_line_id=197;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 461590*(1ns)
+memory_line_id=198;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 466650*(1ns)
+memory_line_id=199;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 471710*(1ns)
+memory_line_id=200;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 476770*(1ns)
+memory_line_id=201;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 481830*(1ns)
+memory_line_id=202;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 486890*(1ns)
+memory_line_id=203;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 491950*(1ns)
+memory_line_id=204;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 497010*(1ns)
+memory_line_id=205;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 502070*(1ns)
+memory_line_id=206;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 507130*(1ns)
+memory_line_id=207;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 512190*(1ns)
+memory_line_id=208;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 517250*(1ns)
+memory_line_id=209;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 522310*(1ns)
+memory_line_id=210;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 527370*(1ns)
+memory_line_id=211;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 532430*(1ns)
+memory_line_id=212;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 537490*(1ns)
+memory_line_id=213;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 542550*(1ns)
+memory_line_id=214;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 547610*(1ns)
+memory_line_id=215;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 552670*(1ns)
+memory_line_id=216;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 557730*(1ns)
+memory_line_id=217;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 562790*(1ns)
+memory_line_id=218;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 567850*(1ns)
+memory_line_id=219;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 572910*(1ns)
+memory_line_id=220;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 577970*(1ns)
+memory_line_id=221;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 583030*(1ns)
+memory_line_id=222;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 588090*(1ns)
+memory_line_id=223;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 593150*(1ns)
+memory_line_id=224;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 598210*(1ns)
+memory_line_id=225;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 603270*(1ns)
+memory_line_id=226;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 608330*(1ns)
+memory_line_id=227;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 613390*(1ns)
+memory_line_id=228;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 618450*(1ns)
+memory_line_id=229;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 623510*(1ns)
+memory_line_id=230;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 628570*(1ns)
+memory_line_id=231;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 633630*(1ns)
+memory_line_id=232;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 638690*(1ns)
+memory_line_id=233;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 643750*(1ns)
+memory_line_id=234;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 648810*(1ns)
+memory_line_id=235;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 653870*(1ns)
+memory_line_id=236;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 658930*(1ns)
+memory_line_id=237;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 663990*(1ns)
+memory_line_id=238;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 669050*(1ns)
+memory_line_id=239;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 674110*(1ns)
+memory_line_id=240;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 679170*(1ns)
+memory_line_id=241;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 684230*(1ns)
+memory_line_id=242;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 689290*(1ns)
+memory_line_id=243;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 694350*(1ns)
+memory_line_id=244;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 699410*(1ns)
+memory_line_id=245;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 704470*(1ns)
+memory_line_id=246;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 709530*(1ns)
+memory_line_id=247;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 714590*(1ns)
+memory_line_id=248;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 719650*(1ns)
+memory_line_id=249;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 724710*(1ns)
+memory_line_id=250;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 729770*(1ns)
+memory_line_id=251;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 734830*(1ns)
+memory_line_id=252;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 739890*(1ns)
+memory_line_id=253;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 744950*(1ns)
+memory_line_id=254;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 750010*(1ns)
+$stop;
+end
+endmodule
+/*
+ORIGINAL CAPTURE DUMP
+memory_line_id=0: FD 02
+memory_line_id=1: 8A 02
+memory_line_id=2: FD 02
+memory_line_id=3: FD 02
+memory_line_id=4: FD 02
+memory_line_id=5: FD 02
+memory_line_id=6: FD 02
+memory_line_id=7: FD 02
+memory_line_id=8: FD 00
+memory_line_id=9: FD 00
+memory_line_id=10: AD 00
+memory_line_id=11: 19 04
+memory_line_id=12: 03 05
+memory_line_id=13: 16 15
+memory_line_id=14: 19 10
+memory_line_id=15: 03 11
+memory_line_id=16: 16 01
+memory_line_id=17: 19 00
+memory_line_id=18: 03 01
+memory_line_id=19: 16 11
+memory_line_id=20: 19 14
+memory_line_id=21: 03 15
+memory_line_id=22: 16 05
+memory_line_id=23: 19 04
+memory_line_id=24: 03 05
+memory_line_id=25: 16 15
+memory_line_id=26: 19 14
+memory_line_id=27: 03 15
+memory_line_id=28: 16 05
+memory_line_id=29: 19 04
+memory_line_id=30: 03 05
+memory_line_id=31: 16 15
+memory_line_id=32: 19 14
+memory_line_id=33: 03 15
+memory_line_id=34: 16 25
+memory_line_id=35: 03 20
+memory_line_id=36: FD E0
+memory_line_id=37: FD E0
+memory_line_id=38: FD E0
+memory_line_id=39: FD E0
+memory_line_id=40: FD E0
+memory_line_id=41: FD E0
+memory_line_id=42: FD E0
+memory_line_id=43: FD E0
+memory_line_id=44: FD E0
+memory_line_id=45: FD E0
+memory_line_id=46: FD E0
+memory_line_id=47: FD E0
+memory_line_id=48: FD E0
+memory_line_id=49: FD E0
+memory_line_id=50: FD E0
+memory_line_id=51: FD E0
+memory_line_id=52: FD E0
+memory_line_id=53: FD E0
+memory_line_id=54: FD E0
+memory_line_id=55: FD E0
+memory_line_id=56: FD E0
+memory_line_id=57: FD E0
+memory_line_id=58: FD E0
+memory_line_id=59: 43 E0
+memory_line_id=60: FD E2
+memory_line_id=61: FD E2
+memory_line_id=62: 22 E2
+memory_line_id=63: 03 E0
+memory_line_id=64: FD 60
+memory_line_id=65: FD 60
+memory_line_id=66: FD 60
+memory_line_id=67: FD 60
+memory_line_id=68: FD 60
+memory_line_id=69: FD 60
+memory_line_id=70: FD 60
+memory_line_id=71: FD 60
+memory_line_id=72: FD 60
+memory_line_id=73: FD 60
+memory_line_id=74: FD 60
+memory_line_id=75: FD 60
+memory_line_id=76: 64 60
+memory_line_id=77: 03 61
+memory_line_id=78: 16 51
+memory_line_id=79: 03 50
+memory_line_id=80: 16 90
+memory_line_id=81: 03 91
+memory_line_id=82: 16 81
+memory_line_id=83: 03 80
+memory_line_id=84: 16 00
+memory_line_id=85: 03 01
+memory_line_id=86: 16 11
+memory_line_id=87: 19 10
+memory_line_id=88: 03 11
+memory_line_id=89: 16 01
+memory_line_id=90: 19 04
+memory_line_id=91: 03 05
+memory_line_id=92: 16 15
+memory_line_id=93: 19 10
+memory_line_id=94: 03 11
+memory_line_id=95: 16 01
+memory_line_id=96: 19 04
+memory_line_id=97: 03 05
+memory_line_id=98: 16 15
+memory_line_id=99: 03 14
+memory_line_id=100: 16 1C
+memory_line_id=101: 03 1D
+memory_line_id=102: 16 2D
+memory_line_id=103: 03 28
+memory_line_id=104: 48 E0
+memory_line_id=105: 03 E1
+memory_line_id=106: 16 D1
+memory_line_id=107: 03 D0
+memory_line_id=108: 16 90
+memory_line_id=109: 03 91
+memory_line_id=110: 16 81
+memory_line_id=111: 03 80
+memory_line_id=112: 16 00
+memory_line_id=113: 03 01
+memory_line_id=114: 16 11
+memory_line_id=115: 19 10
+memory_line_id=116: 03 11
+memory_line_id=117: 16 01
+memory_line_id=118: 19 00
+memory_line_id=119: 03 01
+memory_line_id=120: 16 11
+memory_line_id=121: 19 10
+memory_line_id=122: 03 11
+memory_line_id=123: 16 01
+memory_line_id=124: 03 04
+memory_line_id=125: 16 0C
+memory_line_id=126: 03 0D
+memory_line_id=127: 16 1D
+memory_line_id=128: 19 18
+memory_line_id=129: 03 19
+memory_line_id=130: 16 29
+memory_line_id=131: 03 28
+memory_line_id=132: 2F E0
+memory_line_id=133: 19 E4
+memory_line_id=134: 03 E5
+memory_line_id=135: 16 D5
+memory_line_id=136: 03 D0
+memory_line_id=137: 16 90
+memory_line_id=138: 03 91
+memory_line_id=139: 16 81
+memory_line_id=140: 03 84
+memory_line_id=141: 16 04
+memory_line_id=142: 03 05
+memory_line_id=143: 16 15
+memory_line_id=144: 19 14
+memory_line_id=145: 03 15
+memory_line_id=146: 16 05
+memory_line_id=147: 19 00
+memory_line_id=148: 03 01
+memory_line_id=149: 16 11
+memory_line_id=150: 19 14
+memory_line_id=151: 03 15
+memory_line_id=152: 16 05
+memory_line_id=153: 03 00
+memory_line_id=154: 16 08
+memory_line_id=155: 03 09
+memory_line_id=156: 16 19
+memory_line_id=157: 19 1C
+memory_line_id=158: 03 1D
+memory_line_id=159: 16 2D
+memory_line_id=160: 03 28
+memory_line_id=161: 89 E0
+memory_line_id=162: FD E2
+memory_line_id=163: FD E2
+memory_line_id=164: FD E2
+memory_line_id=165: FD E2
+memory_line_id=166: FD E2
+memory_line_id=167: FD E2
+memory_line_id=168: FD E2
+memory_line_id=169: FD E2
+memory_line_id=170: FD E2
+memory_line_id=171: FD E2
+memory_line_id=172: FD E2
+memory_line_id=173: FD E2
+memory_line_id=174: FD E2
+memory_line_id=175: FD E2
+memory_line_id=176: FD E2
+memory_line_id=177: FD E2
+memory_line_id=178: FD E2
+memory_line_id=179: FD E2
+memory_line_id=180: FD E2
+memory_line_id=181: FD E2
+memory_line_id=182: FD E2
+memory_line_id=183: FD E2
+memory_line_id=184: FD E2
+memory_line_id=185: FD E2
+memory_line_id=186: FD E2
+memory_line_id=187: FD E2
+memory_line_id=188: FD E2
+memory_line_id=189: FD E2
+memory_line_id=190: FD E2
+memory_line_id=191: FD E2
+memory_line_id=192: FD E2
+memory_line_id=193: FD E2
+memory_line_id=194: FD E2
+memory_line_id=195: FD E2
+memory_line_id=196: FD E2
+memory_line_id=197: FD E2
+memory_line_id=198: FD E2
+memory_line_id=199: FD E2
+memory_line_id=200: FD E2
+memory_line_id=201: FD E2
+memory_line_id=202: FD E2
+memory_line_id=203: FD E2
+memory_line_id=204: FD E2
+memory_line_id=205: FD E2
+memory_line_id=206: FD E2
+memory_line_id=207: FD E2
+memory_line_id=208: FD E2
+memory_line_id=209: FD E2
+memory_line_id=210: FD E2
+memory_line_id=211: FD E2
+memory_line_id=212: FD E2
+memory_line_id=213: FD E2
+memory_line_id=214: FD E2
+memory_line_id=215: FD E2
+memory_line_id=216: FD E2
+memory_line_id=217: FD E2
+memory_line_id=218: FD E2
+memory_line_id=219: FD E2
+memory_line_id=220: FD E2
+memory_line_id=221: FD E2
+memory_line_id=222: FD E2
+memory_line_id=223: FD E2
+memory_line_id=224: FD E2
+memory_line_id=225: FD E2
+memory_line_id=226: FD E2
+memory_line_id=227: FD E2
+memory_line_id=228: FD E2
+memory_line_id=229: FD E2
+memory_line_id=230: FD E2
+memory_line_id=231: FD E2
+memory_line_id=232: FD E2
+memory_line_id=233: FD E2
+memory_line_id=234: FD E2
+memory_line_id=235: FD E2
+memory_line_id=236: FD E2
+memory_line_id=237: FD E2
+memory_line_id=238: FD E2
+memory_line_id=239: FD E2
+memory_line_id=240: FD E2
+memory_line_id=241: FD E2
+memory_line_id=242: FD E2
+memory_line_id=243: FD E2
+memory_line_id=244: FD E2
+memory_line_id=245: FD E2
+memory_line_id=246: FD E2
+memory_line_id=247: FD E2
+memory_line_id=248: FD E2
+memory_line_id=249: FD E2
+memory_line_id=250: FD E2
+memory_line_id=251: FD E2
+memory_line_id=252: FD E2
+memory_line_id=253: FD E2
+memory_line_id=254: FD E2
+memory_line_id=255: 00 01
+*/
Index: openverifla_2.3.b/java/capture_spi_slave_vhdl_20180824_1736.v
===================================================================
--- openverifla_2.3.b/java/capture_spi_slave_vhdl_20180824_1736.v (nonexistent)
+++ openverifla_2.3.b/java/capture_spi_slave_vhdl_20180824_1736.v (revision 42)
@@ -0,0 +1,1322 @@
+`timescale 1ns / 10ps
+
+module capture_20180824_1736_35(clk_of_verifla, la_trigger_matched, SCK, SSEL, MOSI, MISO, bitcnt_0, byte_received, byte_data_sent_10, memory_line_id);
+
+output clk_of_verifla;
+output la_trigger_matched;
+output [64:0] memory_line_id;
+output SCK;
+output SSEL;
+output MOSI;
+output MISO;
+output bitcnt_0;
+output byte_received;
+output [1:0] byte_data_sent_10;
+reg SCK;
+reg SSEL;
+reg MOSI;
+reg MISO;
+reg bitcnt_0;
+reg byte_received;
+reg [1:0] byte_data_sent_10;
+reg [64:0] memory_line_id;
+reg la_trigger_matched;
+reg clk_of_verifla;
+
+parameter PERIOD = 20;
+initial // Clock process for clk_of_verifla
+begin
+ forever
+ begin
+ clk_of_verifla = 1'b0;
+ #(10); clk_of_verifla = 1'b1;
+ #(10);
+ end
+end
+
+initial begin
+#(10);
+la_trigger_matched = 0;
+memory_line_id=7;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 5070*(1ns)
+memory_line_id=0;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 10130*(1ns)
+memory_line_id=1;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 15190*(1ns)
+memory_line_id=2;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 20250*(1ns)
+memory_line_id=3;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 25310*(1ns)
+memory_line_id=4;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 30370*(1ns)
+memory_line_id=5;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#5060;
+// ------------- Current Time: 35430*(1ns)
+memory_line_id=6;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000010;
+#4800;
+// ------------- Current Time: 40230*(1ns)
+memory_line_id=8;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+la_trigger_matched = 1;
+#5060;
+// ------------- Current Time: 45290*(1ns)
+memory_line_id=9;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#5060;
+// ------------- Current Time: 50350*(1ns)
+memory_line_id=10;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#3640;
+// ------------- Current Time: 53990*(1ns)
+memory_line_id=11;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 54490*(1ns)
+memory_line_id=12;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 54550*(1ns)
+memory_line_id=13;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 54990*(1ns)
+memory_line_id=14;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 55490*(1ns)
+memory_line_id=15;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 55550*(1ns)
+memory_line_id=16;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 55990*(1ns)
+memory_line_id=17;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 56490*(1ns)
+memory_line_id=18;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 56550*(1ns)
+memory_line_id=19;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 56990*(1ns)
+memory_line_id=20;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 57490*(1ns)
+memory_line_id=21;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 57550*(1ns)
+memory_line_id=22;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 57990*(1ns)
+memory_line_id=23;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 58490*(1ns)
+memory_line_id=24;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 58550*(1ns)
+memory_line_id=25;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 58990*(1ns)
+memory_line_id=26;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 59490*(1ns)
+memory_line_id=27;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 59550*(1ns)
+memory_line_id=28;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 59990*(1ns)
+memory_line_id=29;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 60490*(1ns)
+memory_line_id=30;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 60550*(1ns)
+memory_line_id=31;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 60990*(1ns)
+memory_line_id=32;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 61490*(1ns)
+memory_line_id=33;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 61550*(1ns)
+memory_line_id=34;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100101;
+#440;
+// ------------- Current Time: 61990*(1ns)
+memory_line_id=35;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00100000;
+#60;
+// ------------- Current Time: 62050*(1ns)
+memory_line_id=36;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 67110*(1ns)
+memory_line_id=37;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 72170*(1ns)
+memory_line_id=38;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 77230*(1ns)
+memory_line_id=39;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 82290*(1ns)
+memory_line_id=40;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 87350*(1ns)
+memory_line_id=41;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 92410*(1ns)
+memory_line_id=42;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 97470*(1ns)
+memory_line_id=43;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 102530*(1ns)
+memory_line_id=44;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 107590*(1ns)
+memory_line_id=45;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 112650*(1ns)
+memory_line_id=46;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 117710*(1ns)
+memory_line_id=47;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 122770*(1ns)
+memory_line_id=48;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 127830*(1ns)
+memory_line_id=49;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 132890*(1ns)
+memory_line_id=50;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 137950*(1ns)
+memory_line_id=51;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 143010*(1ns)
+memory_line_id=52;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 148070*(1ns)
+memory_line_id=53;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 153130*(1ns)
+memory_line_id=54;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 158190*(1ns)
+memory_line_id=55;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 163250*(1ns)
+memory_line_id=56;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 168310*(1ns)
+memory_line_id=57;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 173370*(1ns)
+memory_line_id=58;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 178430*(1ns)
+memory_line_id=59;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#860;
+// ------------- Current Time: 179290*(1ns)
+memory_line_id=60;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 184350*(1ns)
+memory_line_id=61;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 189410*(1ns)
+memory_line_id=62;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#580;
+// ------------- Current Time: 189990*(1ns)
+memory_line_id=63;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#60;
+// ------------- Current Time: 190050*(1ns)
+memory_line_id=64;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#5060;
+// ------------- Current Time: 195110*(1ns)
+memory_line_id=65;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100000;
+#2500;
+// ------------- Current Time: 197610*(1ns)
+memory_line_id=66;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01100001;
+#60;
+// ------------- Current Time: 197670*(1ns)
+memory_line_id=67;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010001;
+#440;
+// ------------- Current Time: 198110*(1ns)
+memory_line_id=68;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b01010000;
+#60;
+// ------------- Current Time: 198170*(1ns)
+memory_line_id=69;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 198610*(1ns)
+memory_line_id=70;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 198670*(1ns)
+memory_line_id=71;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 199110*(1ns)
+memory_line_id=72;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
+#60;
+// ------------- Current Time: 199170*(1ns)
+memory_line_id=73;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#440;
+// ------------- Current Time: 199610*(1ns)
+memory_line_id=74;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 199670*(1ns)
+memory_line_id=75;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 200110*(1ns)
+memory_line_id=76;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 200610*(1ns)
+memory_line_id=77;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 200670*(1ns)
+memory_line_id=78;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 201110*(1ns)
+memory_line_id=79;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 201610*(1ns)
+memory_line_id=80;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 201670*(1ns)
+memory_line_id=81;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 202110*(1ns)
+memory_line_id=82;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 202610*(1ns)
+memory_line_id=83;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 202670*(1ns)
+memory_line_id=84;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 203110*(1ns)
+memory_line_id=85;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#500;
+// ------------- Current Time: 203610*(1ns)
+memory_line_id=86;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 203670*(1ns)
+memory_line_id=87;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 204110*(1ns)
+memory_line_id=88;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#60;
+// ------------- Current Time: 204170*(1ns)
+memory_line_id=89;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
+#440;
+// ------------- Current Time: 204610*(1ns)
+memory_line_id=90;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#60;
+// ------------- Current Time: 204670*(1ns)
+memory_line_id=91;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
+#440;
+// ------------- Current Time: 205110*(1ns)
+memory_line_id=92;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 205170*(1ns)
+memory_line_id=93;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#1440;
+// ------------- Current Time: 206610*(1ns)
+memory_line_id=94;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100001;
+#60;
+// ------------- Current Time: 206670*(1ns)
+memory_line_id=95;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010001;
+#440;
+// ------------- Current Time: 207110*(1ns)
+memory_line_id=96;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
+#60;
+// ------------- Current Time: 207170*(1ns)
+memory_line_id=97;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 207610*(1ns)
+memory_line_id=98;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 207670*(1ns)
+memory_line_id=99;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 208110*(1ns)
+memory_line_id=100;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000000;
+#60;
+// ------------- Current Time: 208170*(1ns)
+memory_line_id=101;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#440;
+// ------------- Current Time: 208610*(1ns)
+memory_line_id=102;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 208670*(1ns)
+memory_line_id=103;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 209110*(1ns)
+memory_line_id=104;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 209610*(1ns)
+memory_line_id=105;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 209670*(1ns)
+memory_line_id=106;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 210110*(1ns)
+memory_line_id=107;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 210610*(1ns)
+memory_line_id=108;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 210670*(1ns)
+memory_line_id=109;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 211110*(1ns)
+memory_line_id=110;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010000;
+#500;
+// ------------- Current Time: 211610*(1ns)
+memory_line_id=111;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#60;
+// ------------- Current Time: 211670*(1ns)
+memory_line_id=112;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#440;
+// ------------- Current Time: 212110*(1ns)
+memory_line_id=113;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#60;
+// ------------- Current Time: 212170*(1ns)
+memory_line_id=114;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001100;
+#440;
+// ------------- Current Time: 212610*(1ns)
+memory_line_id=115;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001101;
+#60;
+// ------------- Current Time: 212670*(1ns)
+memory_line_id=116;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#440;
+// ------------- Current Time: 213110*(1ns)
+memory_line_id=117;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011000;
+#500;
+// ------------- Current Time: 213610*(1ns)
+memory_line_id=118;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
+#60;
+// ------------- Current Time: 213670*(1ns)
+memory_line_id=119;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101001;
+#440;
+// ------------- Current Time: 214110*(1ns)
+memory_line_id=120;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 214170*(1ns)
+memory_line_id=121;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#940;
+// ------------- Current Time: 215110*(1ns)
+memory_line_id=122;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100100;
+#500;
+// ------------- Current Time: 215610*(1ns)
+memory_line_id=123;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100101;
+#60;
+// ------------- Current Time: 215670*(1ns)
+memory_line_id=124;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010101;
+#440;
+// ------------- Current Time: 216110*(1ns)
+memory_line_id=125;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11010000;
+#60;
+// ------------- Current Time: 216170*(1ns)
+memory_line_id=126;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010000;
+#440;
+// ------------- Current Time: 216610*(1ns)
+memory_line_id=127;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10010001;
+#60;
+// ------------- Current Time: 216670*(1ns)
+memory_line_id=128;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000001;
+#440;
+// ------------- Current Time: 217110*(1ns)
+memory_line_id=129;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b10000100;
+#60;
+// ------------- Current Time: 217170*(1ns)
+memory_line_id=130;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000100;
+#440;
+// ------------- Current Time: 217610*(1ns)
+memory_line_id=131;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#60;
+// ------------- Current Time: 217670*(1ns)
+memory_line_id=132;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#440;
+// ------------- Current Time: 218110*(1ns)
+memory_line_id=133;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 218610*(1ns)
+memory_line_id=134;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 218670*(1ns)
+memory_line_id=135;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 219110*(1ns)
+memory_line_id=136;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#500;
+// ------------- Current Time: 219610*(1ns)
+memory_line_id=137;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000001;
+#60;
+// ------------- Current Time: 219670*(1ns)
+memory_line_id=138;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010001;
+#440;
+// ------------- Current Time: 220110*(1ns)
+memory_line_id=139;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010100;
+#500;
+// ------------- Current Time: 220610*(1ns)
+memory_line_id=140;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00010101;
+#60;
+// ------------- Current Time: 220670*(1ns)
+memory_line_id=141;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000101;
+#440;
+// ------------- Current Time: 221110*(1ns)
+memory_line_id=142;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00000000;
+#60;
+// ------------- Current Time: 221170*(1ns)
+memory_line_id=143;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001000;
+#440;
+// ------------- Current Time: 221610*(1ns)
+memory_line_id=144;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00001001;
+#60;
+// ------------- Current Time: 221670*(1ns)
+memory_line_id=145;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011001;
+#440;
+// ------------- Current Time: 222110*(1ns)
+memory_line_id=146;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011100;
+#500;
+// ------------- Current Time: 222610*(1ns)
+memory_line_id=147;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00011101;
+#60;
+// ------------- Current Time: 222670*(1ns)
+memory_line_id=148;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101101;
+#440;
+// ------------- Current Time: 223110*(1ns)
+memory_line_id=149;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b00101000;
+#60;
+// ------------- Current Time: 223170*(1ns)
+memory_line_id=150;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 228230*(1ns)
+memory_line_id=151;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 233290*(1ns)
+memory_line_id=152;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 238350*(1ns)
+memory_line_id=153;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 243410*(1ns)
+memory_line_id=154;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 248470*(1ns)
+memory_line_id=155;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 253530*(1ns)
+memory_line_id=156;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 258590*(1ns)
+memory_line_id=157;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#5060;
+// ------------- Current Time: 263650*(1ns)
+memory_line_id=158;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100000;
+#4220;
+// ------------- Current Time: 267870*(1ns)
+memory_line_id=159;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 272930*(1ns)
+memory_line_id=160;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 277990*(1ns)
+memory_line_id=161;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 283050*(1ns)
+memory_line_id=162;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 288110*(1ns)
+memory_line_id=163;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 293170*(1ns)
+memory_line_id=164;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 298230*(1ns)
+memory_line_id=165;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 303290*(1ns)
+memory_line_id=166;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 308350*(1ns)
+memory_line_id=167;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 313410*(1ns)
+memory_line_id=168;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 318470*(1ns)
+memory_line_id=169;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 323530*(1ns)
+memory_line_id=170;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 328590*(1ns)
+memory_line_id=171;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 333650*(1ns)
+memory_line_id=172;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 338710*(1ns)
+memory_line_id=173;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 343770*(1ns)
+memory_line_id=174;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 348830*(1ns)
+memory_line_id=175;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 353890*(1ns)
+memory_line_id=176;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 358950*(1ns)
+memory_line_id=177;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 364010*(1ns)
+memory_line_id=178;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 369070*(1ns)
+memory_line_id=179;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 374130*(1ns)
+memory_line_id=180;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 379190*(1ns)
+memory_line_id=181;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 384250*(1ns)
+memory_line_id=182;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 389310*(1ns)
+memory_line_id=183;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 394370*(1ns)
+memory_line_id=184;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 399430*(1ns)
+memory_line_id=185;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 404490*(1ns)
+memory_line_id=186;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 409550*(1ns)
+memory_line_id=187;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 414610*(1ns)
+memory_line_id=188;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 419670*(1ns)
+memory_line_id=189;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 424730*(1ns)
+memory_line_id=190;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 429790*(1ns)
+memory_line_id=191;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 434850*(1ns)
+memory_line_id=192;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 439910*(1ns)
+memory_line_id=193;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 444970*(1ns)
+memory_line_id=194;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 450030*(1ns)
+memory_line_id=195;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 455090*(1ns)
+memory_line_id=196;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 460150*(1ns)
+memory_line_id=197;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 465210*(1ns)
+memory_line_id=198;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 470270*(1ns)
+memory_line_id=199;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 475330*(1ns)
+memory_line_id=200;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 480390*(1ns)
+memory_line_id=201;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 485450*(1ns)
+memory_line_id=202;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 490510*(1ns)
+memory_line_id=203;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 495570*(1ns)
+memory_line_id=204;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 500630*(1ns)
+memory_line_id=205;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 505690*(1ns)
+memory_line_id=206;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 510750*(1ns)
+memory_line_id=207;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 515810*(1ns)
+memory_line_id=208;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 520870*(1ns)
+memory_line_id=209;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 525930*(1ns)
+memory_line_id=210;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 530990*(1ns)
+memory_line_id=211;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 536050*(1ns)
+memory_line_id=212;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 541110*(1ns)
+memory_line_id=213;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 546170*(1ns)
+memory_line_id=214;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 551230*(1ns)
+memory_line_id=215;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 556290*(1ns)
+memory_line_id=216;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 561350*(1ns)
+memory_line_id=217;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 566410*(1ns)
+memory_line_id=218;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 571470*(1ns)
+memory_line_id=219;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 576530*(1ns)
+memory_line_id=220;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 581590*(1ns)
+memory_line_id=221;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 586650*(1ns)
+memory_line_id=222;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 591710*(1ns)
+memory_line_id=223;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 596770*(1ns)
+memory_line_id=224;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 601830*(1ns)
+memory_line_id=225;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 606890*(1ns)
+memory_line_id=226;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 611950*(1ns)
+memory_line_id=227;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 617010*(1ns)
+memory_line_id=228;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 622070*(1ns)
+memory_line_id=229;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 627130*(1ns)
+memory_line_id=230;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 632190*(1ns)
+memory_line_id=231;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 637250*(1ns)
+memory_line_id=232;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 642310*(1ns)
+memory_line_id=233;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 647370*(1ns)
+memory_line_id=234;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 652430*(1ns)
+memory_line_id=235;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 657490*(1ns)
+memory_line_id=236;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 662550*(1ns)
+memory_line_id=237;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 667610*(1ns)
+memory_line_id=238;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 672670*(1ns)
+memory_line_id=239;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 677730*(1ns)
+memory_line_id=240;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 682790*(1ns)
+memory_line_id=241;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 687850*(1ns)
+memory_line_id=242;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 692910*(1ns)
+memory_line_id=243;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 697970*(1ns)
+memory_line_id=244;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 703030*(1ns)
+memory_line_id=245;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 708090*(1ns)
+memory_line_id=246;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 713150*(1ns)
+memory_line_id=247;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 718210*(1ns)
+memory_line_id=248;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 723270*(1ns)
+memory_line_id=249;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 728330*(1ns)
+memory_line_id=250;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 733390*(1ns)
+memory_line_id=251;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 738450*(1ns)
+memory_line_id=252;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 743510*(1ns)
+memory_line_id=253;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 748570*(1ns)
+memory_line_id=254;
+{byte_data_sent_10,byte_received,bitcnt_0,MISO,MOSI,SSEL,SCK} = 8'b11100010;
+#5060;
+// ------------- Current Time: 753630*(1ns)
+$stop;
+end
+endmodule
+/*
+ORIGINAL CAPTURE DUMP
+memory_line_id=0: FD 02
+memory_line_id=1: FD 02
+memory_line_id=2: FD 02
+memory_line_id=3: FD 02
+memory_line_id=4: FD 02
+memory_line_id=5: FD 02
+memory_line_id=6: F0 02
+memory_line_id=7: FD 02
+memory_line_id=8: FD 00
+memory_line_id=9: FD 00
+memory_line_id=10: B6 00
+memory_line_id=11: 19 04
+memory_line_id=12: 03 05
+memory_line_id=13: 16 15
+memory_line_id=14: 19 10
+memory_line_id=15: 03 11
+memory_line_id=16: 16 01
+memory_line_id=17: 19 00
+memory_line_id=18: 03 01
+memory_line_id=19: 16 11
+memory_line_id=20: 19 14
+memory_line_id=21: 03 15
+memory_line_id=22: 16 05
+memory_line_id=23: 19 04
+memory_line_id=24: 03 05
+memory_line_id=25: 16 15
+memory_line_id=26: 19 14
+memory_line_id=27: 03 15
+memory_line_id=28: 16 05
+memory_line_id=29: 19 04
+memory_line_id=30: 03 05
+memory_line_id=31: 16 15
+memory_line_id=32: 19 14
+memory_line_id=33: 03 15
+memory_line_id=34: 16 25
+memory_line_id=35: 03 20
+memory_line_id=36: FD E0
+memory_line_id=37: FD E0
+memory_line_id=38: FD E0
+memory_line_id=39: FD E0
+memory_line_id=40: FD E0
+memory_line_id=41: FD E0
+memory_line_id=42: FD E0
+memory_line_id=43: FD E0
+memory_line_id=44: FD E0
+memory_line_id=45: FD E0
+memory_line_id=46: FD E0
+memory_line_id=47: FD E0
+memory_line_id=48: FD E0
+memory_line_id=49: FD E0
+memory_line_id=50: FD E0
+memory_line_id=51: FD E0
+memory_line_id=52: FD E0
+memory_line_id=53: FD E0
+memory_line_id=54: FD E0
+memory_line_id=55: FD E0
+memory_line_id=56: FD E0
+memory_line_id=57: FD E0
+memory_line_id=58: FD E0
+memory_line_id=59: 2B E0
+memory_line_id=60: FD E2
+memory_line_id=61: FD E2
+memory_line_id=62: 1D E2
+memory_line_id=63: 03 E0
+memory_line_id=64: FD 60
+memory_line_id=65: 7D 60
+memory_line_id=66: 03 61
+memory_line_id=67: 16 51
+memory_line_id=68: 03 50
+memory_line_id=69: 16 90
+memory_line_id=70: 03 91
+memory_line_id=71: 16 81
+memory_line_id=72: 03 80
+memory_line_id=73: 16 00
+memory_line_id=74: 03 01
+memory_line_id=75: 16 11
+memory_line_id=76: 19 10
+memory_line_id=77: 03 11
+memory_line_id=78: 16 01
+memory_line_id=79: 19 04
+memory_line_id=80: 03 05
+memory_line_id=81: 16 15
+memory_line_id=82: 19 10
+memory_line_id=83: 03 11
+memory_line_id=84: 16 01
+memory_line_id=85: 19 04
+memory_line_id=86: 03 05
+memory_line_id=87: 16 15
+memory_line_id=88: 03 14
+memory_line_id=89: 16 1C
+memory_line_id=90: 03 1D
+memory_line_id=91: 16 2D
+memory_line_id=92: 03 28
+memory_line_id=93: 48 E0
+memory_line_id=94: 03 E1
+memory_line_id=95: 16 D1
+memory_line_id=96: 03 D0
+memory_line_id=97: 16 90
+memory_line_id=98: 03 91
+memory_line_id=99: 16 81
+memory_line_id=100: 03 80
+memory_line_id=101: 16 00
+memory_line_id=102: 03 01
+memory_line_id=103: 16 11
+memory_line_id=104: 19 10
+memory_line_id=105: 03 11
+memory_line_id=106: 16 01
+memory_line_id=107: 19 00
+memory_line_id=108: 03 01
+memory_line_id=109: 16 11
+memory_line_id=110: 19 10
+memory_line_id=111: 03 11
+memory_line_id=112: 16 01
+memory_line_id=113: 03 04
+memory_line_id=114: 16 0C
+memory_line_id=115: 03 0D
+memory_line_id=116: 16 1D
+memory_line_id=117: 19 18
+memory_line_id=118: 03 19
+memory_line_id=119: 16 29
+memory_line_id=120: 03 28
+memory_line_id=121: 2F E0
+memory_line_id=122: 19 E4
+memory_line_id=123: 03 E5
+memory_line_id=124: 16 D5
+memory_line_id=125: 03 D0
+memory_line_id=126: 16 90
+memory_line_id=127: 03 91
+memory_line_id=128: 16 81
+memory_line_id=129: 03 84
+memory_line_id=130: 16 04
+memory_line_id=131: 03 05
+memory_line_id=132: 16 15
+memory_line_id=133: 19 14
+memory_line_id=134: 03 15
+memory_line_id=135: 16 05
+memory_line_id=136: 19 00
+memory_line_id=137: 03 01
+memory_line_id=138: 16 11
+memory_line_id=139: 19 14
+memory_line_id=140: 03 15
+memory_line_id=141: 16 05
+memory_line_id=142: 03 00
+memory_line_id=143: 16 08
+memory_line_id=144: 03 09
+memory_line_id=145: 16 19
+memory_line_id=146: 19 1C
+memory_line_id=147: 03 1D
+memory_line_id=148: 16 2D
+memory_line_id=149: 03 28
+memory_line_id=150: FD E0
+memory_line_id=151: FD E0
+memory_line_id=152: FD E0
+memory_line_id=153: FD E0
+memory_line_id=154: FD E0
+memory_line_id=155: FD E0
+memory_line_id=156: FD E0
+memory_line_id=157: FD E0
+memory_line_id=158: D3 E0
+memory_line_id=159: FD E2
+memory_line_id=160: FD E2
+memory_line_id=161: FD E2
+memory_line_id=162: FD E2
+memory_line_id=163: FD E2
+memory_line_id=164: FD E2
+memory_line_id=165: FD E2
+memory_line_id=166: FD E2
+memory_line_id=167: FD E2
+memory_line_id=168: FD E2
+memory_line_id=169: FD E2
+memory_line_id=170: FD E2
+memory_line_id=171: FD E2
+memory_line_id=172: FD E2
+memory_line_id=173: FD E2
+memory_line_id=174: FD E2
+memory_line_id=175: FD E2
+memory_line_id=176: FD E2
+memory_line_id=177: FD E2
+memory_line_id=178: FD E2
+memory_line_id=179: FD E2
+memory_line_id=180: FD E2
+memory_line_id=181: FD E2
+memory_line_id=182: FD E2
+memory_line_id=183: FD E2
+memory_line_id=184: FD E2
+memory_line_id=185: FD E2
+memory_line_id=186: FD E2
+memory_line_id=187: FD E2
+memory_line_id=188: FD E2
+memory_line_id=189: FD E2
+memory_line_id=190: FD E2
+memory_line_id=191: FD E2
+memory_line_id=192: FD E2
+memory_line_id=193: FD E2
+memory_line_id=194: FD E2
+memory_line_id=195: FD E2
+memory_line_id=196: FD E2
+memory_line_id=197: FD E2
+memory_line_id=198: FD E2
+memory_line_id=199: FD E2
+memory_line_id=200: FD E2
+memory_line_id=201: FD E2
+memory_line_id=202: FD E2
+memory_line_id=203: FD E2
+memory_line_id=204: FD E2
+memory_line_id=205: FD E2
+memory_line_id=206: FD E2
+memory_line_id=207: FD E2
+memory_line_id=208: FD E2
+memory_line_id=209: FD E2
+memory_line_id=210: FD E2
+memory_line_id=211: FD E2
+memory_line_id=212: FD E2
+memory_line_id=213: FD E2
+memory_line_id=214: FD E2
+memory_line_id=215: FD E2
+memory_line_id=216: FD E2
+memory_line_id=217: FD E2
+memory_line_id=218: FD E2
+memory_line_id=219: FD E2
+memory_line_id=220: FD E2
+memory_line_id=221: FD E2
+memory_line_id=222: FD E2
+memory_line_id=223: FD E2
+memory_line_id=224: FD E2
+memory_line_id=225: FD E2
+memory_line_id=226: FD E2
+memory_line_id=227: FD E2
+memory_line_id=228: FD E2
+memory_line_id=229: FD E2
+memory_line_id=230: FD E2
+memory_line_id=231: FD E2
+memory_line_id=232: FD E2
+memory_line_id=233: FD E2
+memory_line_id=234: FD E2
+memory_line_id=235: FD E2
+memory_line_id=236: FD E2
+memory_line_id=237: FD E2
+memory_line_id=238: FD E2
+memory_line_id=239: FD E2
+memory_line_id=240: FD E2
+memory_line_id=241: FD E2
+memory_line_id=242: FD E2
+memory_line_id=243: FD E2
+memory_line_id=244: FD E2
+memory_line_id=245: FD E2
+memory_line_id=246: FD E2
+memory_line_id=247: FD E2
+memory_line_id=248: FD E2
+memory_line_id=249: FD E2
+memory_line_id=250: FD E2
+memory_line_id=251: FD E2
+memory_line_id=252: FD E2
+memory_line_id=253: FD E2
+memory_line_id=254: FD E2
+memory_line_id=255: 00 06
+*/
Index: openverifla_2.3.b/java/compile.bat
===================================================================
--- openverifla_2.3.b/java/compile.bat (nonexistent)
+++ openverifla_2.3.b/java/compile.bat (revision 42)
@@ -0,0 +1,2 @@
+set CLASSPATH=jssc.jar;.
+javac *java
Index: openverifla_2.3.b/java/compile.sh
===================================================================
--- openverifla_2.3.b/java/compile.sh (nonexistent)
+++ openverifla_2.3.b/java/compile.sh (revision 42)
@@ -0,0 +1,2 @@
+export CLASSPATH="jssc.jar:."
+javac *java
openverifla_2.3.b/java/compile.sh
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/jssc.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: openverifla_2.3.b/java/jssc.jar
===================================================================
--- openverifla_2.3.b/java/jssc.jar (nonexistent)
+++ openverifla_2.3.b/java/jssc.jar (revision 42)
openverifla_2.3.b/java/jssc.jar
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: openverifla_2.3.b/java/run.bat
===================================================================
--- openverifla_2.3.b/java/run.bat (nonexistent)
+++ openverifla_2.3.b/java/run.bat (revision 42)
@@ -0,0 +1,2 @@
+set CLASSPATH=jssc.jar;.
+java %1 %2 %3 %4 %5
Index: openverifla_2.3.b/java/run.sh
===================================================================
--- openverifla_2.3.b/java/run.sh (nonexistent)
+++ openverifla_2.3.b/java/run.sh (revision 42)
@@ -0,0 +1,3 @@
+export CLASSPATH="jssc.jar:."
+echo "CLASSPATH=$CLASSPATH"
+java $1 $2 $3 $4 $5
openverifla_2.3.b/java/run.sh
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/verifla_properties_keyboard.txt
===================================================================
--- openverifla_2.3.b/java/verifla_properties_keyboard.txt (nonexistent)
+++ openverifla_2.3.b/java/verifla_properties_keyboard.txt (revision 42)
@@ -0,0 +1,46 @@
+# VeriFLA Logic Analyzer Project File
+
+# Serial port
+# On Windows this would be COM5 or similar
+#/dev/ttyUSB0
+LA.portName=/dev/ttyUSB0
+LA.baudRate=115200
+
+# Memory
+# ====
+LA.memWords=64
+# Data input width and indentical samples bits (clones) must be multiple of 8.
+LA.dataWordLenBits=16
+LA.clonesWordLenBits=16
+LA.triggerMatchMemAddr=8
+
+
+# Generated verilog
+# ====
+LA.timescaleUnit=1ns
+LA.timescalePrecision=10ps
+# clockPeriod expressed in [timescaleUnit]
+LA.clockPeriod=20
+
+# User data signals
+LA.totalSignals=16
+# Big endian (1) or Little endian (0).
+LA.signalGroups=4
+# Group 0
+LA.groupName.0=KBD_KEY
+LA.groupSize.0=8
+LA.groupEndian.0=0
+# Group 1
+LA.groupName.1=kbd_clk_line
+LA.groupSize.1=1
+LA.groupEndian.1=0
+# Group 2
+LA.groupName.2=kbd_data_line
+LA.groupSize.2=1
+LA.groupEndian.2=0
+# Group 3
+LA.groupName.3=not_used
+LA.groupSize.3=6
+LA.groupEndian.3=0
+
+
openverifla_2.3.b/java/verifla_properties_keyboard.txt
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/verifla_properties_spi_slave.txt
===================================================================
--- openverifla_2.3.b/java/verifla_properties_spi_slave.txt (nonexistent)
+++ openverifla_2.3.b/java/verifla_properties_spi_slave.txt (revision 42)
@@ -0,0 +1,61 @@
+# VeriFLA Logic Analyzer Project File
+
+# Serial port
+# On Windows this would be COM5 or similar
+#/dev/ttyUSB0
+LA.portName=/dev/ttyUSB0
+LA.baudRate=115200
+
+# Memory
+# ====
+LA.memWords=256
+# Data input width and indentical samples bits (clones) must be multiple of 8.
+LA.dataWordLenBits=8
+LA.clonesWordLenBits=8
+LA.triggerMatchMemAddr=8
+
+
+# Generated verilog
+# ====
+LA.timescaleUnit=1ns
+LA.timescalePrecision=10ps
+# clockPeriod expressed in [timescaleUnit]
+LA.clockPeriod=20
+
+
+# User data signals
+LA.totalSignals=8
+# Big endian (1) or Little endian (0).
+LA.signalGroups=7
+{byte_data_sent[1:0], byte_received, bitcnt[0], MISO, MOSI, SSEL, SCK}
+# Group 0
+LA.groupName.0=SCK
+LA.groupSize.0=1
+LA.groupEndian.0=0
+# Group 1
+LA.groupName.1=SSEL
+LA.groupSize.1=1
+LA.groupEndian.1=0
+# Group 2
+LA.groupName.2=MOSI
+LA.groupSize.2=1
+LA.groupEndian.2=0
+# Group 3
+LA.groupName.3=MISO
+LA.groupSize.3=1
+LA.groupEndian.3=0
+# Group 4
+LA.groupName.4=bitcnt_0
+LA.groupSize.4=1
+LA.groupEndian.4=0
+# Group 5
+LA.groupName.5=byte_received
+LA.groupSize.5=1
+LA.groupEndian.5=0
+# Group 6
+LA.groupName.6=byte_data_sent_10
+LA.groupSize.6=2
+LA.groupEndian.6=0
+
+
+
openverifla_2.3.b/java/verifla_properties_spi_slave.txt
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/java/verifla_properties_xenomai_spi.txt
===================================================================
--- openverifla_2.3.b/java/verifla_properties_xenomai_spi.txt (nonexistent)
+++ openverifla_2.3.b/java/verifla_properties_xenomai_spi.txt (revision 42)
@@ -0,0 +1,56 @@
+# VeriFLA Logic Analyzer Project File
+
+# Serial port
+# On Windows this would be COM5 or similar
+#/dev/ttyUSB0
+LA.portName=/dev/ttyUSB0
+LA.baudRate=115200
+
+# Memory
+# ====
+LA.memWords=128
+# Data input width and indentical samples bits (clones) must be multiple of 8.
+LA.dataWordLenBits=8
+LA.clonesWordLenBits=8
+LA.triggerMatchMemAddr=8
+
+
+# Generated verilog
+# ====
+LA.timescaleUnit=1ns
+LA.timescalePrecision=10ps
+# clockPeriod expressed in [timescaleUnit]
+LA.clockPeriod=20
+
+# User data signals
+LA.totalSignals=8
+# Big endian (1) or Little endian (0).
+LA.signalGroups=7
+# Group 0
+LA.groupName.0=MISO
+LA.groupSize.0=1
+LA.groupEndian.0=0
+# Group 1
+LA.groupName.1=MOSI
+LA.groupSize.1=1
+LA.groupEndian.1=0
+# Group 2
+LA.groupName.2=SSEL
+LA.groupSize.2=1
+LA.groupEndian.2=0
+# Group 3
+LA.groupName.3=SCK
+LA.groupSize.3=1
+LA.groupEndian.3=0
+# Group 4
+LA.groupName.4=interrupt_ack
+LA.groupSize.4=1
+LA.groupEndian.4=0
+# Group 5
+LA.groupName.5=spi_output_valid_sing
+LA.groupSize.5=1
+LA.groupEndian.5=0
+# Group 6
+LA.groupName.6=int_spi_latency_cnt_9_8
+LA.groupSize.6=2
+LA.groupEndian.6=0
openverifla_2.3.b/java/verifla_properties_xenomai_spi.txt
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/keyboard-driver/keyboard.ucf
===================================================================
--- openverifla_2.3.b/verilog/keyboard-driver/keyboard.ucf (nonexistent)
+++ openverifla_2.3.b/verilog/keyboard-driver/keyboard.ucf (revision 42)
@@ -0,0 +1,28 @@
+#NET "switch[0]" LOC="L13";
+#NET "switch[1]" LOC="L14";
+#NET "switch[2]" LOC="H18";
+#NET "switch[3]" LOC="N17";
+
+NET "clk" LOC = "C9";
+NET "reset" LOC = "L13";
+
+NET "kbd_data_line" LOC = "G13";
+NET "kbd_clk" LOC = "G14";
+
+#NET "J1_0" LOC = "N15";
+#NET "J1_1" LOC = "N14";
+#NET "J1_2" LOC = "E15";
+#NET "J1_3" LOC = "V7";
+
+#leds
+NET "kbd_key[0]" LOC="D4";
+NET "kbd_key[1]" LOC="C3";
+NET "kbd_key[2]" LOC="D6";
+NET "kbd_key[3]" LOC="E6";
+NET "kbd_key[4]" LOC="D13";
+NET "kbd_key[5]" LOC="A7";
+NET "kbd_key[6]" LOC="G9";
+NET "kbd_key[7]" LOC="A8";
+
+NET "uart_REC_dataH" LOC = "R13";
+NET "uart_XMIT_dataH" LOC = "P13";
openverifla_2.3.b/verilog/keyboard-driver/keyboard.ucf
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/keyboard-driver/keyboard.v
===================================================================
--- openverifla_2.3.b/verilog/keyboard-driver/keyboard.v (nonexistent)
+++ openverifla_2.3.b/verilog/keyboard-driver/keyboard.v (revision 42)
@@ -0,0 +1,81 @@
+module keyboard(kbd_data_line, kbd_clk, kbd_key,
+ clk, reset,
+ //top_of_verifla transceiver
+ uart_XMIT_dataH, uart_REC_dataH
+);
+
+
+input clk, reset;
+//top_of_verifla transceiver
+input uart_REC_dataH;
+output uart_XMIT_dataH;
+
+// App. specific
+input kbd_data_line, kbd_clk;
+output [7:0] kbd_key; // register for storing keyboard data
+
+reg [7:0] kbd_key;
+reg [3:0] i; // initial value needs to be not equal to 0 through 7. set initial to 10.
+
+wire negedge_kbd_clk;
+
+
+// This is the keyboard driver logic (fsm).
+always @ (posedge clk or posedge reset)
+begin
+ if(reset)
+ begin
+ i=10;
+ kbd_key=8'h0; //{8'b00010010};//8'h0;
+ end
+ else begin
+ if(negedge_kbd_clk)
+ begin
+ if ((i >= 0) && (i <= 7))
+ // If i is pointing to a bit of data let us keep it.
+ begin
+ kbd_key = {kbd_data_line, kbd_key[7:1]};
+ i = i + 1;
+ end
+ else if ((i == 8) || (i == 9))
+ // Otherwise if i is pointing to the parity bit or the stop bit let us ignore it.
+ begin
+ i = i + 1;
+ end
+ else // Else we have a start bit
+ begin
+ i = 0;
+ end
+ end
+ end
+end
+
+
+reg [2:0] kbd_clk_buf=3'b000;
+always @ (posedge clk) kbd_clk_buf={kbd_clk_buf[1:0], kbd_clk};
+assign negedge_kbd_clk = kbd_clk_buf[2:1]==2'b10;
+
+
+// Simple counter
+reg [5:0] cnt=0;
+always @(posedge clk or posedge reset)
+begin
+ if(reset)
+ cnt = 0;
+ else
+ if(negedge_kbd_clk)
+ cnt = cnt+1;
+end
+
+// VeriFLA
+top_of_verifla verifla (.clk(clk), .rst_l(!reset), .sys_run(1'b1),
+ .data_in({cnt, kbd_data_line, kbd_clk, kbd_key}),
+ //{6'b0, kbd_data_line, kbd_clk, kbd_key},
+ // Transceiver
+ .uart_XMIT_dataH(uart_XMIT_dataH), .uart_REC_dataH(uart_REC_dataH));
+
+endmodule
+
+// Local Variables:
+// verilog-library-directories:(".", "../verifla")
+// End:
openverifla_2.3.b/verilog/keyboard-driver/keyboard.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/keyboard-driver/keyboard_driver_test.v
===================================================================
--- openverifla_2.3.b/verilog/keyboard-driver/keyboard_driver_test.v (nonexistent)
+++ openverifla_2.3.b/verilog/keyboard-driver/keyboard_driver_test.v (revision 42)
@@ -0,0 +1,90 @@
+`timescale 1ns / 1ps
+module keyboard_driver_test(kbd_key);
+
+`include "../verifla/common_internal_verifla.v"
+
+// This test module is wrote
+// in the following scenario: the driver is on the FPGA and the keyboard
+// is attached to the FPGA development board
+
+// Declaration
+output [7:0] kbd_key;
+wire [7:0] kbd_key;
+// This signals must explicitly added to the simulation.
+// For debugging purposes, also add the register named "i" from the keyboard driver
+reg reset, clk;
+reg kbd_clk, kbd_data_line;
+wire uart_XMIT_dataH;
+reg uart_REC_dataH=1;
+
+reg [64:0] i;
+
+keyboard kd (kbd_data_line, kbd_clk, kbd_key,
+ clk, reset,
+ //top_of_verifla transceiver
+ uart_XMIT_dataH, uart_REC_dataH
+);
+
+always begin
+ clk = 0;
+ #5;
+ clk = 1;
+ #5;
+end
+
+// Reset the driver by using the reset button of the FPGA board.
+initial begin
+ $dumpfile("kbd.vcd");
+ $dumpvars;
+ reset = 0;
+ #10;
+ reset = 1;
+ #10;
+ reset = 0;
+end
+
+// Now, simulate the keyboard.
+// Consider the keyboard clock period to be about 10 units.
+initial begin
+ // At the begining, the line is idle for some periods.
+ kbd_clk=1; kbd_data_line=1; #2050; #2050;
+
+ // When a key is pressed, the keyboard sends its scan code
+ // on the data line. For the 'a' key, the scan code is 1Ch=00011100b.
+ // The order is LSb first, so the bits are sent in the following order: 00111000.
+ // Simulate pressing the 'a' key.
+ // Send start bit.
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ // Send the scan code
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ kbd_clk=1; #250; kbd_data_line=0; #250; kbd_clk=0; #500;
+ // Send the parity bit which is '1' for the 'a' key.
+ kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
+ // Send the stop bit.
+ kbd_clk=1; #250; kbd_data_line=1; #250; kbd_clk=0; #500;
+ // Put the line idle for two periods.
+ kbd_clk=1; kbd_data_line=1; #2050; #2050;
+ #1000;
+ // When the 'a' key - that is now pressed,
+ // will be released, then the keyboard will send F0h, 1Ch.
+ // We do not simulate this because the process is similar.
+
+`ifdef DEBUG_LA
+ //$display("value: %b", {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, {LA_DATA_INPUT_WORDLEN_BITS{1'b0}}});
+ for(i = 0; i <= LA_MEM_LAST_ADDR; i = i + 1) begin
+ //$display("i=%d m2[i]=%d m1[i]=%b", i, kd.verifla.mi.m2[i], kd.verifla.mi.m1[i]);
+ $display("%d %h %h %h %h", i, kd.verifla.mi.mem[i][31:24], kd.verifla.mi.mem[i][22:16],
+ kd.verifla.mi.mem[i][15:8], kd.verifla.mi.mem[i][7:0]);
+ end
+ //$display("m[%d]=%d", LA_MEM_LAST_ADDR, kd.verifla.mi.mem[LA_MEM_LAST_ADDR]);
+`endif
+ $stop;
+end
+
+endmodule
openverifla_2.3.b/verilog/keyboard-driver/keyboard_driver_test.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/baud_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/baud_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/baud_of_verifla.v (revision 42)
@@ -0,0 +1,45 @@
+
+module baud_of_verifla(
+ sys_clk,
+ sys_rst_l,
+ baud_clk_posedge
+ );
+
+
+`include "inc_of_verifla.v"
+
+
+input sys_clk;
+input sys_rst_l;
+output baud_clk_posedge;
+reg baud_clk;
+reg baud_clk_posedge;
+
+reg [BAUD_COUNTER_SIZE-1:0] counter=0; //{BAUD_COUNTER_SIZE{1'b0}};
+
+always @(posedge sys_clk or negedge sys_rst_l)
+begin
+ if(~sys_rst_l) begin
+ baud_clk <= 0;
+ baud_clk_posedge <= 0;
+ counter <= 0;
+ end else if (counter < T2_div_T1_div_2) begin
+ counter <= counter + 1;
+ baud_clk <= baud_clk;
+ baud_clk_posedge <= 0;
+ end else begin
+ if(~baud_clk) // baud_clk will become 1
+ baud_clk_posedge <= 1;
+ counter <= 0;
+ baud_clk <= ~baud_clk;
+ end
+end
+
+/*
+reg [2:0] baud_vec=3'b000;
+always @(posedge clk) baud_vec = {baud_vec[1:0], baud_clk};
+wire baud_clk_posedge=(baud_vec[2:1]=2'b01;
+wire baud_clk_negedge=(baud_vec[2:1]=2'b10;
+*/
+
+endmodule
openverifla_2.3.b/verilog/verifla/baud_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/common_internal_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/common_internal_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/common_internal_verifla.v (revision 42)
@@ -0,0 +1,38 @@
+
+// Data input width and indentical samples bits must be multiple of 8.
+parameter LA_DATA_INPUT_WORDLEN_BITS=16;
+
+// Trigger
+parameter LA_TRIGGER_VALUE={LA_DATA_INPUT_WORDLEN_BITS{1'b0}},
+ LA_TRIGGER_MASK={{(LA_DATA_INPUT_WORDLEN_BITS - 10){1'b0}}, 2'b11, 8'h00},
+ LA_TRACE_MASK={LA_DATA_INPUT_WORDLEN_BITS{1'b1}};
+
+parameter LA_MEM_CLEAN_BEFORE_RUN=0;
+parameter LA_IDENTICAL_SAMPLES_BITS=16;
+parameter LA_MEM_WORDLEN_BITS=(LA_DATA_INPUT_WORDLEN_BITS+LA_IDENTICAL_SAMPLES_BITS);
+parameter LA_MEM_WORDLEN_OCTETS=((LA_MEM_WORDLEN_BITS+7)/8);
+parameter LA_MEM_ADDRESS_BITS=6;
+parameter LA_MEM_FIRST_ADDR=0,
+ LA_MEM_LAST_ADDR=((1<> 3),
+ LA_MEM_LAST_ADDR_BEFORE_TRIGGER=(LA_TRIGGER_MATCH_MEM_ADDR-1);
+parameter LA_MAX_SAMPLES_AFTER_TRIGGER_BITS=26,
+ LA_MAX_SAMPLES_AFTER_TRIGGER={1'b0, {(LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1){1'b1}}};
+
+// Identical samples
+parameter LA_MAX_IDENTICAL_SAMPLES=((1 << LA_IDENTICAL_SAMPLES_BITS) - 2); //{LA_IDENTICAL_SAMPLES_BITS{1'b1}};
+
+/*
+Reserved mem words:
+ LA_MEM_EMPTY_SLOT which represents an empty and not used memory slot.
+It has sense if LA_MEM_CLEAN_BEFORE_RUN and
+ a) when the trigger event arrives before the filling of the full btqueue.
+ b) after the trigger event and after capturing LA_MAX_SAMPLES_AFTER_TRIGGER
+*/
+//`define LA_INIT_MEM_AT_RESET
+parameter LA_MEM_EMPTY_SLOT={LA_MEM_WORDLEN_BITS{1'b0}};
+
+//`define DEBUG_LA
openverifla_2.3.b/verilog/verifla/common_internal_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/computer_input_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/computer_input_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/computer_input_of_verifla.v (revision 42)
@@ -0,0 +1,90 @@
+/*
+file: computer_input_of_verifla.v
+license: GNU GPL
+
+Revision history
+- 20180827-1700
+allow only USERCMD_RUN.
+revision date: 2007/Sep/03; author: Laurentiu DUCA
+- USERCMD_RESET
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+module computer_input_of_verifla (clk, rst_l,
+ rec_dataH, rec_readyH, user_run);
+// user commands
+parameter USERCMD_RUN = 8'h01;
+// CI_states
+parameter CI_STATES_BITS=4,
+ CI_STATE_IDLE=0,
+ CI_STATE_START_OF_NEW_CMD=1;
+
+// input
+input clk, rst_l;
+input rec_readyH;
+input [7:0] rec_dataH;
+// output
+output user_run;
+reg user_run;
+// locals
+reg [CI_STATES_BITS-1:0] ci_state, next_ci_state;
+reg [7:0] ci_indata, next_ci_indata;
+wire ci_new_octet_received;
+
+// T(clk)<
openverifla_2.3.b/verilog/verifla/computer_input_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/inc_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/inc_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/inc_of_verifla.v (revision 42)
@@ -0,0 +1,17 @@
+parameter CLOCK_FREQUENCY = 50000000;
+// If CLOCK_FREQUENCY < 50 MHz then BAUDRATE must be < 115200 bps (for example 9600).
+parameter BAUDRATE = 115200;
+
+parameter T2_div_T1_div_2 = CLOCK_FREQUENCY / (BAUDRATE * 16 * 2);
+// Assert: BAUD_COUNTER_SIZE >= log2(T2_div_T1_div_2) bits
+parameter BAUD_COUNTER_SIZE = 15;
+//`define DEBUG
+/*
+1s ... 50000000 T1
+1bit ... 16 T2
+1s .. 115200 bits
+=>
+1s .. 115200 * 16 T2
+
+T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
+*/
openverifla_2.3.b/verilog/verifla/inc_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/memory_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/memory_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/memory_of_verifla.v (revision 42)
@@ -0,0 +1,69 @@
+/*
+20180814-1600
+- LA_MEM_CLEAN_BEFORE_RUN is not used here anymore;
+LA_INIT_MEM_AT_RESET is used instead.
+20180808-1700
+- ifdef LA_MEM_CLEAN_BEFORE_RUN
+Author: Laurentiu Duca
+License: GNU GPL
+*/
+
+module memory_of_verifla (
+ clk, rst_l, //clkb,
+ addra, wea, dina, addrb, doutb
+);
+
+`include "common_internal_verifla.v"
+
+input rst_l;
+input clk;
+//input clkb;
+input wea;
+input [LA_MEM_ADDRESS_BITS-1:0] addra;
+input [LA_MEM_ADDRESS_BITS-1:0] addrb;
+output [LA_MEM_WORDLEN_BITS-1:0] doutb;
+input [LA_MEM_WORDLEN_BITS-1:0] dina;
+
+reg [LA_MEM_WORDLEN_BITS-1:0] mem[LA_MEM_LAST_ADDR:0];
+
+//assign doutb = mem[addrb];
+// This works too as a consequence of send_capture_of_verifla architecture.
+reg [LA_MEM_WORDLEN_BITS-1:0] doutb;
+always @(posedge clk or negedge rst_l)
+if(~rst_l)
+ doutb <= LA_MEM_EMPTY_SLOT;
+else
+ doutb <= mem[addrb];
+
+`ifndef LA_INIT_MEM_AT_RESET
+always @(posedge clk)
+begin
+ if(wea) begin
+ mem[addra] <= dina;
+ end
+end
+`else
+//reg [LA_MEM_WORDLEN_BITS-1:0] i;
+always @(posedge clk or negedge rst_l)
+begin
+ if(~rst_l) begin:RESET_SECTON
+ integer i;
+ for(i=0; i<=LA_MEM_LAST_ADDR; i=i+1)
+ mem[i] <= LA_MEM_EMPTY_SLOT;
+ end else begin
+ if(wea) begin
+ mem[addra] <= dina;
+ end
+ end
+end
+`endif
+
+initial begin:INIT_SECTION
+ integer i;
+ for(i=0; i<=LA_MEM_LAST_ADDR; i=i+1)
+ mem[i] <= LA_MEM_EMPTY_SLOT;
+ //$readmemh("mem2018-2.mif", mem);
+end
+
+endmodule
+
openverifla_2.3.b/verilog/verifla/memory_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/monitor_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/monitor_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/monitor_of_verifla.v (revision 42)
@@ -0,0 +1,299 @@
+/*
+file: monitor_of_verifla.v
+license: GNU GPL
+Revision history
+20181016-1225
+- LA_TRACE_MASK
+20180827-1700
+- broke mon_run in sys_run and user_run
+- clean memory at user_run
+20180823-1435
+- mon_run_reg
+20180814-1600
+- LA_MEM_CLEAN_BEFORE_RUN is parameter now
+20180808-1700
+- ifdef LA_MEM_CLEAN_BEFORE_RUN
+revision date: 20180730-1500; Laurentiu Duca
+- redesign of mem struct
+- the bt_queue_tail_address is wrote at the end of capture.
+revision date: 2007/Sep/03; author: Laurentiu DUCA
+- the bt_queue_head_address is wrote at the end of capture.
+- zero all memory at a mon_run (if LA_MEM_CLEAN_BEFORE_RUN).
+- note that _at_ means after trigger event and _bt_ means before trigger event
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+module monitor_of_verifla (clk, rst_l,
+ sys_run, user_run, data_in,
+ mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
+ ack_sc_run, sc_done, sc_run);
+
+`include "common_internal_verifla.v"
+
+// MON_states
+parameter
+ MON_STATES_BITS=4,
+ MON_STATE_IDLE=0,
+ MON_STATE_DO_MEM_CLEAN=1,
+ MON_STATE_PREPARE_RUN=2,
+ MON_STATE_WAIT_TRIGGER_MATCH=3,
+ MON_STATE_AFTER_TRIGGER=4,
+ MON_STATE_DATA_CAPTURED=5,
+ MON_STATE_SC_RUN=6,
+ MON_STATE_WAIT_SC_DONE=7;
+
+// input
+input clk, rst_l;
+input [LA_DATA_INPUT_WORDLEN_BITS-1:0] data_in;
+input sys_run, user_run, ack_sc_run, sc_done;
+// output
+output [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address;
+output [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in;
+output mem_port_A_wen;
+output sc_run;
+reg [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address;
+reg [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in;
+reg mem_port_A_wen;
+reg sys_run_reg, sc_run, next_sc_run;
+
+// local
+reg [MON_STATES_BITS-1:0] mon_state, next_mon_state;
+reg [LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1:0]
+ next_mon_samples_after_trigger, mon_samples_after_trigger;
+reg [LA_MEM_ADDRESS_BITS-1:0] next_mon_write_address, mon_write_address;
+reg [LA_MEM_ADDRESS_BITS-1:0] next_bt_queue_tail_address, bt_queue_tail_address;
+reg [LA_DATA_INPUT_WORDLEN_BITS-1:0] mon_old_data_in,
+ mon_current_data_in; //={LA_DATA_INPUT_WORDLEN_BITS{1'b0}};
+reg [LA_IDENTICAL_SAMPLES_BITS-1:0] mon_clones_nr, next_mon_clones_nr;
+
+
+// Register the input data
+// such that mon_current_data_in is constant the full clock period.
+always @(posedge clk or negedge rst_l)
+begin
+ if(~rst_l)
+ begin
+ mon_old_data_in <= 0;
+ mon_current_data_in <= 0;
+ sys_run_reg <= 0;
+ end
+ else begin
+ mon_old_data_in <= mon_current_data_in;
+ mon_current_data_in <= data_in;
+ sys_run_reg <= sys_run;
+ end
+end
+
+// set new values
+always @(posedge clk or negedge rst_l)
+begin
+ if(~rst_l)
+ begin
+ mon_state <= MON_STATE_IDLE;
+ sc_run <= 0;
+ mon_write_address <= LA_MEM_FIRST_ADDR;
+ bt_queue_tail_address <= 0;
+ mon_samples_after_trigger <= 0;
+ mon_clones_nr <= 1;
+ end
+ else begin
+ mon_state <= next_mon_state;
+ sc_run <= next_sc_run;
+ mon_write_address <= next_mon_write_address;
+ bt_queue_tail_address <= next_bt_queue_tail_address;
+ mon_samples_after_trigger <= next_mon_samples_after_trigger;
+ mon_clones_nr <= next_mon_clones_nr;
+ end
+end
+
+
+// continuous assignments
+wire [LA_MEM_ADDRESS_BITS-1:0] one_plus_mon_write_address = (mon_write_address+1);
+wire [LA_IDENTICAL_SAMPLES_BITS-1:0] oneplus_mon_clones_nr = (mon_clones_nr+1);
+wire data_in_changed = ((mon_current_data_in & LA_TRACE_MASK) != (mon_old_data_in & LA_TRACE_MASK));
+wire last_mem_addr_before_trigger = (mon_write_address == LA_MEM_LAST_ADDR_BEFORE_TRIGGER);
+wire not_maximum_mon_clones_nr = (mon_clones_nr < LA_MAX_IDENTICAL_SAMPLES);
+
+
+// mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
+task mon_prepare_run;
+begin
+ // we share the same clock as memory.
+ mem_port_A_address=LA_MEM_FIRST_ADDR;
+ mem_port_A_data_in={{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
+ mem_port_A_wen=1;
+ next_mon_write_address=LA_MEM_FIRST_ADDR;
+ next_mon_clones_nr=2;
+ next_mon_state = MON_STATE_WAIT_TRIGGER_MATCH;
+end
+endtask
+
+
+// state machine
+always @(*)
+/*
+ mon_state or sys_run_reg
+ or ack_sc_run or sc_done or sc_run
+ // eliminate warnings
+ or mon_write_address or bt_queue_tail_address or mon_samples_after_trigger
+ or mon_current_data_in or mon_old_data_in or mon_clones_nr
+ or data_in_changed or oneplus_mon_clones_nr or one_plus_mon_write_address
+ or not_maximum_mon_clones_nr
+ or last_mem_addr_before_trigger)
+*/
+begin
+ // implicit
+ next_mon_state=mon_state;
+ next_sc_run=sc_run;
+ next_mon_write_address=mon_write_address;
+ next_bt_queue_tail_address=bt_queue_tail_address;
+ next_mon_samples_after_trigger=mon_samples_after_trigger;
+ next_mon_clones_nr = mon_clones_nr;
+ mem_port_A_address=0;
+ mem_port_A_data_in=0;
+ mem_port_A_wen=0;
+
+ // state dependent
+ case(mon_state)
+ MON_STATE_IDLE:
+ begin
+ if(sys_run_reg || user_run)
+ begin
+ if(LA_MEM_CLEAN_BEFORE_RUN || user_run) begin
+ next_mon_write_address=LA_MEM_FIRST_ADDR;
+ next_mon_state=MON_STATE_DO_MEM_CLEAN;
+ end else
+ mon_prepare_run;
+ end
+ else
+ next_mon_state=MON_STATE_IDLE;
+ end
+
+ MON_STATE_DO_MEM_CLEAN:
+ begin
+ mem_port_A_address=mon_write_address;
+ mem_port_A_data_in=LA_MEM_EMPTY_SLOT;
+ mem_port_A_wen=1;
+ if(mon_write_address < LA_MEM_LAST_ADDR)
+ begin
+ next_mon_write_address=mon_write_address+1;
+ next_mon_state = MON_STATE_DO_MEM_CLEAN;
+ end
+ else
+ // at the new posedge clock, will clean memory at its last address
+ next_mon_state = MON_STATE_PREPARE_RUN;
+ end
+
+ MON_STATE_PREPARE_RUN:
+ begin
+ mon_prepare_run;
+ end
+
+ MON_STATE_WAIT_TRIGGER_MATCH:
+ begin
+ // circular queue
+ if((mon_current_data_in & LA_TRIGGER_MASK) !=
+ (LA_TRIGGER_VALUE & LA_TRIGGER_MASK))
+ begin
+ next_mon_state = MON_STATE_WAIT_TRIGGER_MATCH;
+ mem_port_A_wen = 1;
+ mem_port_A_address = data_in_changed ?
+ (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address) :
+ (not_maximum_mon_clones_nr ? mon_write_address :
+ (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address));
+ mem_port_A_data_in = data_in_changed ?
+ {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
+ (not_maximum_mon_clones_nr ? {mon_clones_nr, mon_current_data_in} :
+ {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
+ next_mon_clones_nr = data_in_changed ? 2 :
+ (not_maximum_mon_clones_nr ? oneplus_mon_clones_nr : 2);
+ next_mon_write_address = data_in_changed ?
+ (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR: one_plus_mon_write_address) :
+ (not_maximum_mon_clones_nr ? mon_write_address :
+ (last_mem_addr_before_trigger ? LA_MEM_FIRST_ADDR : one_plus_mon_write_address));
+ end
+ else begin
+ // trigger matched
+ next_mon_state=MON_STATE_AFTER_TRIGGER;
+ mem_port_A_address=LA_TRIGGER_MATCH_MEM_ADDR;
+ mem_port_A_data_in = {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, mon_current_data_in};
+ mem_port_A_wen=1;
+ next_mon_write_address=LA_TRIGGER_MATCH_MEM_ADDR;
+ next_mon_clones_nr=2;
+ next_bt_queue_tail_address = mon_write_address;
+ next_mon_samples_after_trigger=1;
+ end
+ end
+
+ MON_STATE_AFTER_TRIGGER:
+ begin
+ if((mon_samples_after_trigger < LA_MAX_SAMPLES_AFTER_TRIGGER) &&
+ (mon_write_address < LA_MEM_LAST_ADDR))
+ begin
+ mem_port_A_wen = 1;
+ mem_port_A_address = data_in_changed ? one_plus_mon_write_address :
+ (not_maximum_mon_clones_nr ? mon_write_address : one_plus_mon_write_address);
+ mem_port_A_data_in = data_in_changed ? {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
+ (not_maximum_mon_clones_nr ? {mon_clones_nr, mon_current_data_in} :
+ {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
+ next_mon_clones_nr = data_in_changed ? 2 :
+ (not_maximum_mon_clones_nr ? oneplus_mon_clones_nr : 2);
+ next_mon_write_address = data_in_changed ? one_plus_mon_write_address :
+ (not_maximum_mon_clones_nr ? mon_write_address : one_plus_mon_write_address);
+ next_mon_samples_after_trigger=mon_samples_after_trigger+1;
+ next_mon_state=MON_STATE_AFTER_TRIGGER;
+ end
+ else begin
+ mem_port_A_wen=0;
+ next_mon_state=MON_STATE_DATA_CAPTURED;
+ end
+ end
+
+ MON_STATE_DATA_CAPTURED:
+ begin
+ // Save bt_queue_tail_address
+ mem_port_A_address = LA_BT_QUEUE_TAIL_ADDRESS;
+ mem_port_A_data_in =
+ {{(LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS){1'b0}},
+ bt_queue_tail_address};
+ mem_port_A_wen = 1;
+ next_mon_state=MON_STATE_SC_RUN;
+ end
+
+ MON_STATE_SC_RUN:
+ begin
+ next_mon_state=MON_STATE_WAIT_SC_DONE;
+ next_sc_run=1;
+ end
+ MON_STATE_WAIT_SC_DONE:
+ begin
+ // sc_run must already be 1, when entering state MON_STATE_SEND_CAPTURE.
+ if(ack_sc_run)
+ next_sc_run=0;
+ if((sc_run == 0) && (sc_done))
+ next_mon_state=MON_STATE_IDLE;
+ else
+ next_mon_state=MON_STATE_WAIT_SC_DONE;
+ end
+
+
+ default: // should never get here
+ begin
+ next_mon_state=4'bxxxx;
+ next_sc_run=1'bx;
+ next_mon_write_address={LA_MEM_ADDRESS_BITS{1'bx}};
+ next_bt_queue_tail_address={(LA_MEM_ADDRESS_BITS){1'bx}};
+ next_mon_samples_after_trigger={LA_MAX_SAMPLES_AFTER_TRIGGER_BITS{1'bx}};
+ next_mon_clones_nr={LA_IDENTICAL_SAMPLES_BITS{1'bx}};
+ mem_port_A_address={LA_MEM_ADDRESS_BITS{1'bx}};
+ mem_port_A_data_in={LA_MEM_WORDLEN_BITS{1'bx}};
+ mem_port_A_wen=1'bx;
+ end
+ endcase
+end
+
+
+endmodule
openverifla_2.3.b/verilog/verifla/monitor_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/send_capture_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/send_capture_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/send_capture_of_verifla.v (revision 42)
@@ -0,0 +1,167 @@
+/*
+file: send_capture_of_verifla.v
+license: GNU GPL
+Revision history
+revision date: 20180808-1540
+- include baud_clk_posedge
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+//`timescale 1ns/1ps
+module send_capture_of_verifla(clk, rst_l, baud_clk_posedge,
+ sc_run, ack_sc_run, sc_done,
+ mem_port_B_address, mem_port_B_dout,
+ xmit_doneH, xmitH, xmit_dataH);
+
+`include "common_internal_verifla.v"
+
+// SC_states
+parameter
+ SC_STATES_BITS=4,
+ SC_STATE_IDLE=0,
+ SC_STATE_ACK_SC_RUN=1,
+ SC_STATE_SET_MEMADDR_TO_READ_FROM=2,
+ SC_STATE_GET_MEM_OUTPUT_DATA=3,
+ SC_STATE_SEND_OCTET=4,
+ SC_STATE_WAIT_OCTET_SENT=5,
+ SC_STATE_WORD_SENT=6;
+
+// input
+input clk, rst_l;
+input baud_clk_posedge;
+input sc_run;
+input [LA_MEM_WORDLEN_BITS-1:0] mem_port_B_dout;
+input xmit_doneH;
+// output
+output [LA_MEM_ADDRESS_BITS-1:0] mem_port_B_address;
+output xmitH;
+output [7:0] xmit_dataH;
+output ack_sc_run, sc_done;
+reg [LA_MEM_ADDRESS_BITS-1:0] mem_port_B_address;
+reg xmitH;
+reg [7:0] xmit_dataH;
+reg ack_sc_run, sc_done;
+// local
+reg [SC_STATES_BITS-1:0] sc_state, next_sc_state;
+reg [LA_MEM_ADDRESS_BITS-1:0] sc_current_address, next_sc_current_address;
+reg [LA_MEM_WORDLEN_OCTETS-1:0] sc_octet_id, next_sc_octet_id;
+reg [LA_MEM_WORDLEN_BITS-1:0] sc_word_bits, next_sc_word_bits;
+
+// set up next value
+always @(posedge clk or negedge rst_l)
+begin
+ if(~rst_l)
+ begin
+ sc_state=SC_STATE_IDLE;
+ sc_current_address=0;
+ sc_word_bits=0;
+ sc_octet_id=0;
+ end
+ else
+ if (baud_clk_posedge)
+ begin
+ sc_state=next_sc_state;
+ sc_current_address=next_sc_current_address;
+ sc_word_bits=next_sc_word_bits;
+ sc_octet_id=next_sc_octet_id;
+ end
+end
+
+// state machine
+always @(sc_state or sc_run or xmit_doneH
+ // not important but xilinx warnings.
+ or sc_current_address or mem_port_B_dout or sc_word_bits or sc_octet_id)
+begin
+ // implicitly
+ next_sc_state=sc_state;
+ ack_sc_run=0;
+ sc_done=0;
+ xmit_dataH=0;
+ xmitH=0;
+ mem_port_B_address=sc_current_address;
+ next_sc_current_address=sc_current_address;
+ next_sc_word_bits=sc_word_bits;
+ next_sc_octet_id=sc_octet_id;
+
+ // state dependent
+ case(sc_state)
+ SC_STATE_IDLE:
+ begin
+ if(sc_run)
+ begin
+ next_sc_state = SC_STATE_ACK_SC_RUN;
+ next_sc_current_address=LA_MEM_LAST_ADDR;
+ end
+ else
+ next_sc_state = SC_STATE_IDLE;
+ end
+ SC_STATE_ACK_SC_RUN:
+ begin
+ ack_sc_run=1;
+ next_sc_state = SC_STATE_SET_MEMADDR_TO_READ_FROM;
+ end
+ SC_STATE_SET_MEMADDR_TO_READ_FROM:
+ begin
+ mem_port_B_address=sc_current_address;
+ // next clock cycle we have memory dout of our read.
+ next_sc_state = SC_STATE_GET_MEM_OUTPUT_DATA;
+ end
+ SC_STATE_GET_MEM_OUTPUT_DATA:
+ begin
+ next_sc_word_bits=mem_port_B_dout;
+ // LSB first
+ next_sc_octet_id=0;
+ next_sc_state = SC_STATE_SEND_OCTET;
+ end
+ SC_STATE_SEND_OCTET:
+ begin
+ xmit_dataH=sc_word_bits[7:0];
+ next_sc_word_bits={8'd0, sc_word_bits[LA_MEM_WORDLEN_BITS-1:8]}; //sc_word_bits>>8;
+ xmitH=1;
+ next_sc_octet_id=sc_octet_id+1;
+ next_sc_state = SC_STATE_WAIT_OCTET_SENT;
+ end
+ SC_STATE_WAIT_OCTET_SENT:
+ begin
+ if(xmit_doneH)
+ begin
+ if(sc_octet_id < LA_MEM_WORDLEN_OCTETS)
+ next_sc_state = SC_STATE_SEND_OCTET;
+ else
+ next_sc_state = SC_STATE_WORD_SENT;
+ end
+ else
+ next_sc_state = SC_STATE_WAIT_OCTET_SENT;
+ end
+ SC_STATE_WORD_SENT:
+ begin
+ if(sc_current_address > LA_MEM_FIRST_ADDR)
+ begin
+ next_sc_current_address=sc_current_address-1;
+ next_sc_state = SC_STATE_SET_MEMADDR_TO_READ_FROM;
+ end
+ else
+ begin
+ // done sending all captured data
+ sc_done = 1;
+ next_sc_state = SC_STATE_IDLE;
+ end
+ end
+ default: // should never get here
+ begin
+ next_sc_state=4'bxxxx;
+ sc_done=1'bx;
+ xmit_dataH=1'bx;
+ xmitH=1'bx;
+ mem_port_B_address={LA_MEM_ADDRESS_BITS{1'bx}};
+ next_sc_current_address={LA_MEM_ADDRESS_BITS{1'bx}};
+ next_sc_word_bits={LA_MEM_WORDLEN_BITS{1'bx}};
+ next_sc_octet_id={LA_MEM_WORDLEN_OCTETS{1'bx}};
+ end
+ endcase
+end
+
+endmodule
openverifla_2.3.b/verilog/verifla/send_capture_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/single_pulse_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/single_pulse_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/single_pulse_of_verifla.v (revision 42)
@@ -0,0 +1,83 @@
+// Update: 20180814_1555, author: Laurentiu Duca
+// User readable form.
+// Create Date: 16:17:26 02/23/2007
+// Additional Comments: single pulse from a multi-periods-contiguos pulse
+// Author: Laurentiu Duca
+// License: GNU GPL
+
+`timescale 1ns / 1ps
+
+module single_pulse_of_verifla(clk, rst_l, ub, ubsing);
+input clk, rst_l;
+input ub;
+output ubsing;
+
+
+reg next_state, state;
+reg ubsing_reg, next_ubsing_reg;
+
+assign ubsing = ubsing_reg;
+
+always @(posedge clk or negedge rst_l)
+begin
+ if (~rst_l) begin
+ state <= 0;
+ ubsing_reg <= 0;
+ end else begin
+ state <= next_state;
+ ubsing_reg <= next_ubsing_reg;
+ end
+end
+
+always @(*)
+begin
+ next_state <= state;
+ next_ubsing_reg <= 0;
+ case (state)
+ 0: if (ub == 1) begin
+ next_state <= 1;
+ next_ubsing_reg <= 1;
+ end
+ 1: if (ub == 0)
+ next_state <= 0;
+ endcase
+end
+
+
+/*
+Truth table
+====
+before (posedge clk) | after (posedge clk)
+ub / state(q1q0) | state(q1q0) / ubsing
+0 / 00 | 00 / 0
+1 / 00 | 01 / 1
+x / 01 | 10 / 0
+0 / 10 | 00 / 0
+1 / 10 | 10 / 0
+
+Notes:
+- works only if the (posedge ub) comes 2 clk periods after the prevoius (negedge ub).
+- after rst_l, ub can be either 0 or 1.
+*/
+
+/*
+reg [1:0] q;
+assign ubsing = q[0];
+
+always @ (posedge clk or negedge rst_l)
+begin
+
+if(~rst_l)
+begin
+ q[0] <= 0;
+ q[1] <= 0;
+end
+else
+begin
+ q[0] <= ~q[0] && ub && ~q[1];
+ q[1] <= q[0] || (~q[0] && ub && q[1]);
+end
+end
+*/
+
+endmodule
openverifla_2.3.b/verilog/verifla/single_pulse_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/top_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/top_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/top_of_verifla.v (revision 42)
@@ -0,0 +1,69 @@
+/*
+file: top_of_verifla.v
+license: GNU GPL
+Revision history
+revision date: 2007/Sep/03; author: Laurentiu DUCA
+- sys_run: an internal possible run command
+- combined_reset_low which allows the user to reset the monitor
+
+revision date: 2007/Jul/4; author: Laurentiu DUCA
+- v01
+*/
+
+
+module top_of_verifla(clk, rst_l, sys_run, data_in,
+ // Transceiver
+ uart_XMIT_dataH, uart_REC_dataH
+ );
+
+`include "common_internal_verifla.v"
+
+input clk, rst_l, sys_run;
+input [LA_DATA_INPUT_WORDLEN_BITS-1:0] data_in;
+output uart_XMIT_dataH;
+input uart_REC_dataH;
+
+// App. specific.
+wire [LA_MEM_WORDLEN_BITS-1:0] mem_port_A_data_in, mem_port_B_dout;
+wire [LA_MEM_ADDRESS_BITS-1:0] mem_port_A_address, mem_port_B_address;
+wire mem_port_A_wen;
+wire user_run;
+wire sc_run, ack_sc_run, sc_done;
+
+// Transceiver
+wire [7:0] xmit_dataH;
+wire xmit_doneH;
+wire xmitH;
+// Receiver
+wire [7:0] rec_dataH;
+wire rec_readyH;
+// Baud
+wire baud_clk_posedge;
+
+uart_of_verifla iUART (clk, rst_l, baud_clk_posedge,
+ // Transmitter
+ uart_XMIT_dataH, xmitH, xmit_dataH, xmit_doneH,
+ // Receiver
+ uart_REC_dataH, rec_dataH, rec_readyH);
+
+memory_of_verifla mi (
+ .addra(mem_port_A_address), .addrb(mem_port_B_address),
+ .clk(clk), .rst_l(rst_l),
+ .dina(mem_port_A_data_in), .doutb(mem_port_B_dout),
+ .wea(mem_port_A_wen));
+
+computer_input_of_verifla ci (clk, rst_l,
+ rec_dataH, rec_readyH, user_run);
+
+monitor_of_verifla mon (clk, rst_l,
+ sys_run, user_run, data_in,
+ mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
+ ack_sc_run, sc_done, sc_run);
+// send_capture_of_verifla must use the same reset as the uart.
+send_capture_of_verifla sc (clk, rst_l, baud_clk_posedge,
+ sc_run, ack_sc_run, sc_done,
+ mem_port_B_address, mem_port_B_dout,
+ xmit_doneH, xmitH, xmit_dataH);
+
+endmodule
+
openverifla_2.3.b/verilog/verifla/top_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/u_rec_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/u_rec_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/u_rec_of_verifla.v (revision 42)
@@ -0,0 +1,169 @@
+
+/*
+Update: Laurentiu Duca, 20180808_1200:
+ - consider baud_clk_posedge
+Update: Laurentiu Duca, 20180724_1550:
+ - removed "rdy_o <= 1'b0;" from idle state
+ and moved to STA_CHECK_START_BIT.
+ - sample in the middle of the data bit
+ - correct init values and sizes
+*/
+
+/////////////////////////////////////////////////////////////////////
+//// Author: Zhangfeifei ////
+//// ////
+//// Advance Test Technology Laboratory, ////
+//// Institute of Computing Technology, ////
+//// Chinese Academy of Sciences ////
+//// ////
+//// If you encountered any problem, please contact : ////
+//// Email: zhangfeifei@ict.ac.cn or whitewill@opencores.org ////
+//// Tel: +86-10-6256 5533 ext. 5673 ////
+//// ////
+//// Downloaded from: ////
+//// http://www.opencores.org/pdownloads.cgi/list/ucore ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Copyright (C) 2005-2006 Zhangfeifei ////
+//// zhangfeifei@ict.ac.cn ////
+//// ////
+//// ////
+//// This source file may be used and distributed freely without ////
+//// restriction provided that this copyright statement is not ////
+//// removed from the file and any derivative work contains the ////
+//// original copyright notice and the associated disclaimer. ////
+//// ////
+//// Please let the author know if it is used ////
+//// for commercial purpose. ////
+//// ////
+//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
+//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
+//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
+//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
+//// 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. ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// ////
+//// Date of Creation: 2005.12.3 ////
+//// ////
+//// Version: 0.0.1 ////
+//// ////
+//// Description: rx module of the uart module,data format is ////
+//// 8bits data,1 bits stop bit,and no parity check ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Change log: ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+
+module u_rec_of_verifla(
+ clk_i,rst_i,//system signal
+ baud_clk_posedge,
+ rxd_i,//serial data in
+ rdy_o,data_o //data ready and parallel data out signal
+ );
+
+ parameter // state difinition
+ STA_IDLE = 0,
+ STA_CHECK_START_BIT = 1,
+ STA_RECEIVE = 2;
+
+ input clk_i;
+ input rst_i;
+ input baud_clk_posedge;
+ input rxd_i;
+
+ output rdy_o;
+ output [7:0] data_o;
+
+ reg rdy_o;
+ reg [7:0] data_o;
+
+ reg [7:0] rsr;//reciving shift register
+ reg [3:0] num_of_rec;
+
+ reg [1:0] reg_sta;
+
+ //the counter to count the clk in
+ reg [3:0] count;
+ reg count_c;//the carry of count
+
+ always @(posedge clk_i or posedge rst_i)
+ begin
+ if(rst_i)
+ begin
+ data_o <= 8'b0;
+ rdy_o <= 1'b0;
+ rsr <= 8'h0;
+ num_of_rec <= 4'b0;
+ count <= 4'b0;
+ count_c <= 1'b0;
+ reg_sta <= STA_IDLE;
+ end
+ else begin
+ if(baud_clk_posedge)
+ case (reg_sta)
+ STA_IDLE:
+ begin
+ num_of_rec <= 4'd0;
+ count <= 4'd0;
+ if(!rxd_i)
+ reg_sta <= STA_CHECK_START_BIT;//recive a start bit
+ else
+ reg_sta <= STA_IDLE;
+ end
+ STA_CHECK_START_BIT:
+ begin
+ if(count >= 7)
+ begin
+ count <= 0;
+ if(!rxd_i) begin
+ //has passed 8 clk and rxd_i is still zero,then start bit has been confirmed
+ rdy_o <= 1'b0;
+ reg_sta <= STA_RECEIVE;
+ end
+ else
+ reg_sta <= STA_IDLE;
+ end
+ else begin
+ reg_sta <= STA_CHECK_START_BIT;
+ count <= count +1;
+ end
+ end
+ STA_RECEIVE:
+ begin
+ {count_c,count} <= count +1;
+ //has passed 16 clk after the last bit has been checked,sampling a bit
+ if(count_c)
+ begin
+ if(num_of_rec <=4'd7)
+ begin //sampling the received bit
+ rsr <= {rxd_i,rsr[7:1]};
+ num_of_rec <= num_of_rec +1;
+ reg_sta <= STA_RECEIVE;
+ end
+ else begin//sampling the stop bit
+ //if(rxd_i)//if stop bit exist
+ //begin
+ data_o <= rsr;
+ rdy_o <= 1'b1;
+ //end
+ reg_sta <= STA_IDLE;
+ end
+ end
+ end
+ endcase
+ end
+ end
+
+endmodule
openverifla_2.3.b/verilog/verifla/u_rec_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/u_xmit_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/u_xmit_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/u_xmit_of_verifla.v (revision 42)
@@ -0,0 +1,157 @@
+/*
+Update: Laurentiu Duca, 20180808_1200:
+ - consider baud_clk_posedge
+Update: Laurentiu Duca, 20180724_1550:
+ - In state STA_TRANS, put num_of_trans <= 4'd8 instead of 7.
+ in order to send stop bit.
+ - correct init values and sizes
+*/
+
+
+/////////////////////////////////////////////////////////////////////
+//// Author: Zhangfeifei ////
+//// ////
+//// Advance Test Technology Laboratory, ////
+//// Institute of Computing Technology, ////
+//// Chinese Academy of Sciences ////
+//// ////
+//// If you encountered any problem, please contact : ////
+//// Email: zhangfeifei@ict.ac.cn or whitewill@opencores.org ////
+//// Tel: +86-10-6256 5533 ext. 5673 ////
+//// ////
+//// Downloaded from: ////
+//// http://www.opencores.org/pdownloads.cgi/list/ucore ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Copyright (C) 2005-2006 Zhangfeifei ////
+//// zhangfeifei@ict.ac.cn ////
+//// ////
+//// ////
+//// This source file may be used and distributed freely without ////
+//// restriction provided that this copyright statement is not ////
+//// removed from the file and any derivative work contains the ////
+//// original copyright notice and the associated disclaimer. ////
+//// ////
+//// Please let the author know if it is used ////
+//// for commercial purpose. ////
+//// ////
+//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
+//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
+//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
+//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
+//// 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. ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// ////
+//// Date of Creation: 2005.12.3 ////
+//// ////
+//// Version: 0.0.1 ////
+//// ////
+//// Description: tx module of the uart module,data format is ////
+//// 8bits data,1 bits stop bit,and no parity check ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Change log: ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+
+module u_xmit_of_verifla(
+ clk_i,rst_i,//system signal
+ baud_clk_posedge,
+ data_i,wen_i,//parallel data in and enable signal
+ txd_o,//serial data out
+ tre_o// ready to transmit flag
+ );
+
+ parameter // state difinition
+ STA_IDLE = 0,
+ STA_TRANS = 1,
+ STA_FINISH = 2;
+
+ input clk_i;
+ input rst_i;
+ input baud_clk_posedge;
+ input [7:0] data_i;
+ input wen_i;
+
+ output txd_o;
+ output tre_o;
+
+ reg txd_o;
+ reg tre_o;
+
+ reg [7:0] tsr;//transmitting shift register
+ reg [3:0] num_of_trans;
+
+ reg [1:0] reg_sta;
+
+ //the counter to count the clk in
+ reg [3:0] count;
+ reg count_c;//the carry of count
+
+ always @(posedge clk_i or posedge rst_i)
+ begin
+ if(rst_i)
+ begin
+ tsr <= 8'b0;
+ txd_o <= 1'b1;
+ tre_o <= 1'b1;
+ num_of_trans <= 4'b0;
+ count_c <= 1'b0;
+ count <= 4'b0;
+ reg_sta <= STA_IDLE;
+ end
+ else begin
+ if(baud_clk_posedge)
+ case(reg_sta)
+ STA_IDLE:
+ begin
+ num_of_trans <= 4'd0;
+ count <= 4'd0;
+ count_c <= 1'b0;
+ if(wen_i)
+ begin
+ tsr <= data_i;
+ tre_o <= 1'b0;
+ txd_o <= 1'b0;// transmit the start bit
+ reg_sta <= STA_TRANS;
+ end
+ else
+ reg_sta <= STA_IDLE;
+ end
+ STA_TRANS:
+ begin
+ {count_c,count} <= count + 1;
+
+ if(count_c)
+ begin
+ if(num_of_trans <=4'd8)
+ begin
+ //note ,when num_of_trans==8 ,we transmit the stop bit
+ tsr <= {1'b1,tsr[7:1]};
+ txd_o <= tsr[0];
+ num_of_trans <= num_of_trans+1;
+ reg_sta <= STA_TRANS;
+ end
+ else begin
+ txd_o <= 1'b1;
+ tre_o <= 1'b1;
+ reg_sta <= STA_IDLE;
+ end
+ end
+ end
+ endcase
+ end
+ end
+
+endmodule
openverifla_2.3.b/verilog/verifla/u_xmit_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/verilog/verifla/uart_of_verifla.v
===================================================================
--- openverifla_2.3.b/verilog/verifla/uart_of_verifla.v (nonexistent)
+++ openverifla_2.3.b/verilog/verifla/uart_of_verifla.v (revision 42)
@@ -0,0 +1,101 @@
+/*
+Update: Laurentiu Duca, 20180808_1200:
+ - consider baud_clk_posedge
+*/
+module uart_of_verifla ( sys_clk,
+ sys_rst_l,
+ baud_clk_posedge,
+
+ // Transmitter
+ uart_XMIT_dataH,
+ xmitH,
+ xmit_dataH,
+ xmit_doneH,
+
+ // Receiver
+ uart_REC_dataH,
+ rec_dataH,
+ rec_readyH
+ );
+
+input sys_clk;
+input sys_rst_l;
+output baud_clk_posedge;
+
+// Trasmitter
+output uart_XMIT_dataH;
+input xmitH;
+input [7:0] xmit_dataH;
+output xmit_doneH;
+
+// Receiver
+input uart_REC_dataH;
+output [7:0] rec_dataH;
+output rec_readyH;
+
+wire baud_clk_posedge;
+wire [7:0] rec_dataH;
+wire rec_readyH;
+
+
+
+// Instantiate the Transmitter
+u_xmit_of_verifla txd1 (
+ .clk_i(sys_clk),
+ .rst_i(!sys_rst_l),
+ .baud_clk_posedge(baud_clk_posedge),
+ .data_i(xmit_dataH),
+ .wen_i(xmitH),
+ .txd_o(uart_XMIT_dataH),
+ .tre_o(xmit_doneH)
+ );
+/*
+u_xmit iXMIT( .sys_clk(baud_clk),
+ .sys_rst_l(sys_rst_l),
+
+ .uart_xmitH(uart_XMIT_dataH),
+ .xmitH(xmitH),
+ .xmit_dataH(xmit_dataH),
+ .xmit_doneH(xmit_doneH)
+ );
+*/
+
+// Instantiate the Receiver
+u_rec_of_verifla rxd1(
+ .clk_i(sys_clk),
+ .rst_i(!sys_rst_l),//system signal
+ .baud_clk_posedge(baud_clk_posedge),
+ .rxd_i(uart_REC_dataH),//serial data in
+ .rdy_o (rec_readyH), .data_o(rec_dataH) //data ready and parallel data out signal
+ );
+/*
+u_rec iRECEIVER (// system connections
+ .sys_rst_l(sys_rst_l),
+ .sys_clk(baud_clk),
+ // uart
+ .uart_dataH(uart_REC_dataH),
+ .rec_dataH(rec_dataH),
+ .rec_readyH(rec_readyH)
+ );
+*/
+
+// Instantiate the Baud Rate Generator
+
+baud_of_verifla baud1( .sys_clk(sys_clk),
+ .sys_rst_l(sys_rst_l),
+ .baud_clk_posedge(baud_clk_posedge)
+ );
+
+/*
+reg [2:0] baud_clk_vec=0;
+always @(posedge sys_clk or negedge sys_rst_l)
+begin
+ if(~sys_rst_l)
+ baud_clk_vec = 0;
+ else
+ baud_clk_vec = {baud_clk_vec[1:0], baud_clk};
+end
+wire baud_clk_posedge;
+assign baud_clk_posedge=baud_clk_vec[2:1]==2'b01;
+*/
+endmodule
openverifla_2.3.b/verilog/verifla/uart_of_verifla.v
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/keyboard/keyboard.ucf
===================================================================
--- openverifla_2.3.b/vhdl/keyboard/keyboard.ucf (nonexistent)
+++ openverifla_2.3.b/vhdl/keyboard/keyboard.ucf (revision 42)
@@ -0,0 +1,28 @@
+#NET "switch[0]" LOC="L13";
+#NET "switch[1]" LOC="L14";
+#NET "switch[2]" LOC="H18";
+#NET "switch[3]" LOC="N17";
+
+NET "clk" LOC = "C9";
+NET "reset" LOC = "L13";
+
+NET "kbd_data_line" LOC = "G13";
+NET "kbd_clk" LOC = "G14";
+
+#NET "J1_0" LOC = "N15";
+#NET "J1_1" LOC = "N14";
+#NET "J1_2" LOC = "E15";
+#NET "J1_3" LOC = "V7";
+
+#leds
+NET "kbd_key[0]" LOC="D4";
+NET "kbd_key[1]" LOC="C3";
+NET "kbd_key[2]" LOC="D6";
+NET "kbd_key[3]" LOC="E6";
+NET "kbd_key[4]" LOC="D13";
+NET "kbd_key[5]" LOC="A7";
+NET "kbd_key[6]" LOC="G9";
+NET "kbd_key[7]" LOC="A8";
+
+NET "uart_REC_dataH" LOC = "R13";
+NET "uart_XMIT_dataH" LOC = "P13";
openverifla_2.3.b/vhdl/keyboard/keyboard.ucf
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/keyboard/keyboard.vhd
===================================================================
--- openverifla_2.3.b/vhdl/keyboard/keyboard.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/keyboard/keyboard.vhd (revision 42)
@@ -0,0 +1,84 @@
+-- keyboad driver
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+-----------------------------------------------------
+
+entity keyboard is
+port( kbd_data_line, kbd_clk: in std_logic;
+ kbd_key: out std_logic_vector(7 downto 0);
+ clk, reset: in std_logic;
+ uart_XMIT_dataH: out std_logic;
+ uart_REC_dataH: in std_logic
+);
+end keyboard;
+
+-----------------------------------------------------
+
+architecture keyboard_arch of keyboard is
+
+ -- define the states of keyboard_arch model
+ signal i: std_logic_vector(3 downto 0);
+ signal kbd_clk_buf: std_logic_vector(2 downto 0) :="000";
+ signal negedge_kbd_clk: std_logic :='0';
+ signal kbd_key_reg: std_logic_vector(7 downto 0);
+ signal cnt: std_logic_vector(5 downto 0);
+ signal verifla_data_in : std_logic_vector(15 downto 0);
+begin
+
+ p1: process(clk) begin
+ if(rising_edge(clk)) then
+ kbd_clk_buf <= kbd_clk_buf(1 downto 0) & kbd_clk;
+ end if;
+ end process;
+ negedge_kbd_clk <= '1' when (kbd_clk_buf(2 downto 1) = "10") else '0';
+
+ -- process: state registers
+ state_reg: process(clk, reset)
+ begin
+ if (reset='1') then
+ i <= "1010";
+ kbd_key_reg <= x"00";
+ elsif (rising_edge(clk)) then
+ if (negedge_kbd_clk = '1') then
+ if ((i >= x"0") and (i <= x"7")) then
+ kbd_key_reg <= kbd_data_line & kbd_key_reg(7 downto 1);
+ i <= std_logic_vector((unsigned(i)+"0001"));
+ elsif ((i = x"8") or (i = x"9")) then
+ i <= std_logic_vector((unsigned(i)+"0001"));
+ else
+ i <= x"0";
+ end if;
+ end if;
+ end if;
+ end process;
+ kbd_key <= kbd_key_reg;
+
+ -- Simple counter
+ state_reg_cnt: process(clk, reset)
+ begin
+ if (reset='1') then
+ cnt <= "000000";
+ elsif (rising_edge(clk)) then
+ if(negedge_kbd_clk = '1') then
+ cnt <= std_logic_vector(unsigned(cnt)+"000001");
+ end if;
+ end if;
+ end process;
+
+ -- openVeriFLA
+ verifla_data_in <= cnt & kbd_data_line & kbd_clk & kbd_key_reg;
+ --(15 downto 10 => '0') & kbd_data_line & kbd_clk & kbd_key_reg;
+ verifla: entity work.top_of_verifla(top_of_verifla_arch)
+ port map (clk=>clk, rst_l=>not(reset), sys_run=>'1',
+ data_in=>verifla_data_in,
+ -- Transceiver
+ uart_XMIT_dataH => uart_XMIT_dataH,
+ uart_REC_dataH => uart_REC_dataH);
+
+end keyboard_arch;
Index: openverifla_2.3.b/vhdl/keyboard/keyboard_driver_test.vhd
===================================================================
--- openverifla_2.3.b/vhdl/keyboard/keyboard_driver_test.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/keyboard/keyboard_driver_test.vhd (revision 42)
@@ -0,0 +1,103 @@
+-----------------------------------------------------------------
+-- Booth algorithm for multiplication
+-- author: Laurentiu Duca
+-----------------------------------------------------------------
+
+library ieee;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+use ieee.std_logic_1164.all;
+
+entity keyboard_driver_test is -- entity declaration
+end keyboard_driver_test;
+
+-----------------------------------------------------------------
+
+architecture keyboard_driver_test_arch of keyboard_driver_test is
+
+-- This test module is wrote
+-- in the following scenario: the driver is on the FPGA and the keyboard
+-- is attached to the FPGA development board
+
+ signal kbd_key:std_logic_vector(7 downto 0);
+-- This signals must explicitly added to the simulation.
+-- For debugging purposes, also add the register named "i" from the keyboard driver
+ signal reset, clk: std_logic;
+ signal kbd_clk, kbd_data_line: std_logic;
+ signal uart_XMIT_dataH: std_logic;
+ signal uart_REC_dataH: std_logic :='1';
+ --signal i: std_logic_vector(64 downto 0);
+
+ signal stop_simulation: std_logic := '0';
+
+begin
+
+ keyboard1: entity work.keyboard(keyboard_arch)
+ port map(kbd_data_line=>kbd_data_line, kbd_clk=>kbd_clk, kbd_key=>kbd_key,
+ clk=>clk, reset=>reset,
+ --top_of_verifla transceiver
+ uart_XMIT_dataH=>uart_XMIT_dataH, uart_REC_dataH=>uart_REC_dataH);
+
+ process
+ begin
+ if stop_simulation = '0' then
+ clk <= '1'; -- clock cycle 10 ns
+ wait for 5 ns;
+ clk <= '0';
+ wait for 5 ns;
+ else
+ wait;
+ end if;
+ end process;
+
+ -- Reset the driver by using the reset button of the FPGA board.
+ process
+ begin
+ reset <= '1';
+ wait for 10 ns;
+ reset <= '0';
+ wait for 10 ns;
+ wait;
+ end process;
+
+ -- Now, simulate the keyboard.
+ -- Consider the keyboard clock period to be about 10 units.
+ process
+ begin
+ -- At the begining, the line is idle for some periods.
+ kbd_clk<='1'; kbd_data_line<='1'; wait for 2050 ns; wait for 2050 ns;
+
+ -- When a key is pressed, the keyboard sends its scan code
+ -- on the data line. For the 'a' key, the scan code is 1Ch=00011100b.
+ -- The order is LSb first, so the bits are sent in the following order: 00111000.
+ -- Simulate pressing the 'a' key.
+ -- Send start bit.
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ -- Send the scan code
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='0'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ -- Send the parity bit which is '1' for the 'a' key.
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ -- Send the stop bit.
+ kbd_clk<='1'; wait for 250 ns; kbd_data_line<='1'; wait for 250 ns; kbd_clk<='0'; wait for 500 ns;
+ -- Put the line idle for some periods.
+ kbd_clk<='1'; kbd_data_line<='1'; wait for 2050 ns; wait for 2050 ns;
+ wait for 1000 ns;
+ -- When the 'a' key - that is now pressed,
+ -- will be released, then the keyboard will send F0h, 1Ch.
+ -- We do not simulate this because the process is similar.
+
+ -- stop simulation.
+ -- assert false report "end of simulation" severity failure;
+ stop_simulation <= '1';
+ wait;
+
+ end process;
+
+end keyboard_driver_test_arch;
openverifla_2.3.b/vhdl/keyboard/keyboard_driver_test.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/baud_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/baud_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/baud_of_verifla.vhd (revision 42)
@@ -0,0 +1,67 @@
+-- 20180816-1450
+-- baud rate generator
+-- author: Laurentiu Duca
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+use work.inc_of_verifla.all;
+
+-----------------------------------------------------
+
+entity baud_of_verifla is
+port( sys_clk, sys_rst_l:in std_logic;
+ baud_clk_posedge: out std_logic
+);
+end baud_of_verifla;
+
+-----------------------------------------------------
+
+architecture baud_of_verifla_arch of baud_of_verifla is
+
+ -- This were moved to inc_of_verifla.vhd
+ --constant CLOCK_FREQUENCY: integer := 50000000;
+ --constant BPS: integer := 115200;
+ -- 1s ... 50000000 T1
+ -- 1bit ... 16 T2
+ -- 1s .. 115200 bits
+ -- =>
+ -- 1s .. 115200 * 16 T2
+ --
+ -- T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
+ --constant T2_div_T1_div_2: integer := (CLOCK_FREQUENCY / (BPS * 16 * 2));
+ -- COUNTER_SIZE = log2(T2_T1_div_2) bits
+ --constant BAUD_COUNTER_SIZE: integer := 15;
+
+ signal counter: std_logic_vector((BAUD_COUNTER_SIZE-1) downto 0);
+ signal baud_clk, baud_clk_posedge_reg: std_logic;
+
+begin
+
+ baud_clk_posedge <= baud_clk_posedge_reg;
+
+ state_reg: process(sys_clk, sys_rst_l)
+ begin
+ if (sys_rst_l='0') then
+ baud_clk <= '0';
+ baud_clk_posedge_reg <= '0';
+ counter <= std_logic_vector(to_unsigned(0, BAUD_COUNTER_SIZE)); --x"00000000";
+ elsif (rising_edge(sys_clk)) then
+ if (counter < std_logic_vector(to_unsigned(T2_div_T1_div_2, BAUD_COUNTER_SIZE))) then
+ counter <= counter + std_logic_vector(to_unsigned(1, BAUD_COUNTER_SIZE));
+ baud_clk <= baud_clk;
+ baud_clk_posedge_reg <= '0';
+ else
+ if (baud_clk = '0') then
+ baud_clk_posedge_reg <= '1';
+ end if;
+ counter <= std_logic_vector(to_unsigned(0, BAUD_COUNTER_SIZE));
+ baud_clk <= not(baud_clk);
+ end if;
+ end if;
+ end process;
+
+end baud_of_verifla_arch;
\ No newline at end of file
openverifla_2.3.b/vhdl/verifla/baud_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/common_internal_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/common_internal_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/common_internal_verifla.vhd (revision 42)
@@ -0,0 +1,55 @@
+-- date: 20180821-1530
+-- author: Laurentiu Duca
+---------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+---------------------------------------------------------------------------
+
+package common_internal_verifla is
+
+-- Data input width and indentical samples bits must be multiple of 8.
+constant LA_DATA_INPUT_WORDLEN_BITS: integer :=16;
+
+-- Trigger
+constant LA_TRIGGER_VALUE: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
+ :=(others => '0');
+constant LA_TRIGGER_MASK: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
+ :=(LA_DATA_INPUT_WORDLEN_BITS-7 downto LA_DATA_INPUT_WORDLEN_BITS-8 => '1',
+ others => '0');
+constant LA_TRACE_MASK: std_logic_vector((LA_DATA_INPUT_WORDLEN_BITS-1) downto 0)
+ :=(others => '1');
+
+constant LA_MEM_CLEAN_BEFORE_RUN: integer :=1;
+constant LA_IDENTICAL_SAMPLES_BITS: integer :=16;
+constant LA_MEM_WORDLEN_BITS: integer :=(LA_DATA_INPUT_WORDLEN_BITS+LA_IDENTICAL_SAMPLES_BITS);
+constant LA_MEM_WORDLEN_OCTETS: integer :=((LA_MEM_WORDLEN_BITS+7)/8);
+constant LA_MEM_ADDRESS_BITS: integer :=6;
+constant LA_MEM_FIRST_ADDR: integer := 0;
+constant LA_MEM_LAST_ADDR: integer := 2 ** LA_MEM_ADDRESS_BITS - 1;
+
+constant LA_BT_QUEUE_TAIL_ADDRESS: integer :=LA_MEM_LAST_ADDR;
+-- constraint: (LA_MEM_FIRST_ADDR + 4) <= LA_TRIGGER_MATCH_MEM_ADDR <= (LA_MEM_LAST_ADDR - 4)
+constant LA_TRIGGER_MATCH_MEM_ADDR: integer := 2 ** (LA_MEM_ADDRESS_BITS - 3);
+constant LA_MEM_LAST_ADDR_BEFORE_TRIGGER: integer := LA_TRIGGER_MATCH_MEM_ADDR - 1;
+constant LA_MAX_SAMPLES_AFTER_TRIGGER_BITS: integer :=26;
+constant LA_MAX_SAMPLES_AFTER_TRIGGER: integer := 2 ** (LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1) - 1;
+
+-- Identical samples
+constant LA_MAX_IDENTICAL_SAMPLES: integer := 2 ** LA_IDENTICAL_SAMPLES_BITS - 2;
+
+--Reserved mem words
+-- LA_MEM_EMPTY_SLOT which represents an empty and not used memory slot.
+--It has sense if LA_MEM_CLEAN_BEFORE_RUN and
+-- a) when the trigger event arrives before the filling of the full btqueue.
+-- b) after the trigger event and after capturing LA_MAX_SAMPLES_AFTER_TRIGGER
+
+--`define LA_INIT_MEM_AT_RESET: instead of this verilog define we have two architectures for memory.
+constant LA_MEM_EMPTY_SLOT: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0)
+ := (others => '0');
+
+end common_internal_verifla;
openverifla_2.3.b/vhdl/verifla/common_internal_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/computer_input_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/computer_input_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/computer_input_of_verifla.vhd (revision 42)
@@ -0,0 +1,79 @@
+-- 20180820-1740
+-- Author: Laurentiu Duca
+-- License: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+use work.common_internal_verifla.all;
+
+-----------------------------------------------------
+
+entity computer_input_of_verifla is
+ port (clk, rst_l: in std_logic;
+ rec_dataH: in std_logic_vector(7 downto 0);
+ rec_readyH: in std_logic;
+ user_run: out std_logic);
+end computer_input_of_verifla;
+
+-----------------------------------------------------
+
+architecture computer_input_of_verifla_arch of computer_input_of_verifla is
+
+--constant USERCMD_RESET: std_logic_vector(7 downto 0) :=x"00";
+constant USERCMD_RUN: std_logic_vector(7 downto 0) :=x"01";
+type state_type is (CI_STATE_IDLE, CI_STATE_START_OF_NEW_CMD);
+signal ci_state, next_ci_state: state_type;
+signal ci_indata, next_ci_indata: std_logic_vector(7 downto 0);
+signal ci_new_octet_received:std_logic;
+signal next_user_run: std_logic;
+
+begin
+
+ -- T(clk)<clk, rst_l=>rst_l, ub=>rec_readyH, ubsing=>ci_new_octet_received);
+
+ -- set up next value
+ state_reg: process(clk, rst_l)
+ begin
+ if (rst_l='0') then
+ ci_state<=CI_STATE_IDLE;
+ ci_indata<=x"00";
+ user_run <= '0';
+ elsif (rising_edge(clk)) then
+ ci_state<=next_ci_state;
+ ci_indata<=next_ci_indata;
+ user_run <= next_user_run;
+ end if;
+ end process;
+
+ -- state machine
+ comb_logic: process(ci_new_octet_received, rec_dataH, ci_state, ci_indata)
+ begin
+ -- implicit
+ next_ci_state <= ci_state;
+ next_ci_indata <= x"00";
+ next_user_run <= '0';
+ case ci_state is
+ when CI_STATE_IDLE =>
+ if(ci_new_octet_received = '1') then
+ next_ci_indata <= rec_dataH;
+ next_ci_state <= CI_STATE_START_OF_NEW_CMD;
+ else
+ next_ci_state<=CI_STATE_IDLE;
+ end if;
+ when CI_STATE_START_OF_NEW_CMD =>
+ next_ci_state<=CI_STATE_IDLE;
+ if (ci_indata = USERCMD_RUN) then
+ next_user_run<='1';
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ end case;
+ end process;
+
+end computer_input_of_verifla_arch;
openverifla_2.3.b/vhdl/verifla/computer_input_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/inc_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/inc_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/inc_of_verifla.vhd (revision 42)
@@ -0,0 +1,30 @@
+--library IEEE;
+--use IEEE.STD_LOGIC_1164.ALL;
+--use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+---------------------------------------------------------------------------
+
+package inc_of_verifla is
+
+constant CLOCK_FREQUENCY: integer := 50000000;
+constant BAUDRATE: integer := 115200;
+
+constant T2_div_T1_div_2: integer := (CLOCK_FREQUENCY / (BAUDRATE * 16 * 2));
+-- Assert: BAUD_COUNTER_SIZE >= log2(T2_div_T1_div_2) bits
+constant BAUD_COUNTER_SIZE: integer := 15;
+
+-- 1s ... 50000000 T1
+-- 1bit ... 16 T2
+-- 1s .. 115200 bits
+-- =>
+-- 1s .. 115200 * 16 T2
+--
+-- T2 = 5000000 T1 / (115200 * 16) = T1 * 50000000 / (115200 * 16)
+
+end inc_of_verifla;
+
+package body inc_of_verifla is
+
+end inc_of_verifla;
Index: openverifla_2.3.b/vhdl/verifla/memory_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/memory_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/memory_of_verifla.vhd (revision 42)
@@ -0,0 +1,96 @@
+-- 20180820-1740
+-- Author: Laurentiu Duca
+-- License: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+use work.common_internal_verifla.all;
+
+-----------------------------------------------------
+
+entity memory_of_verifla is port(
+ clk, rst_l: in std_logic;
+ addra: in std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ wea: in std_logic;
+ dina: in std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+ addrb: in std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ doutb: out std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0)
+);
+end memory_of_verifla;
+-----------------------------------------------------
+
+architecture memory_of_verifla_arch of memory_of_verifla is
+
+type reg_array is array (0 to LA_MEM_LAST_ADDR) of std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+
+impure function init_mem(n: in integer) return reg_array is
+ variable temp_mem : reg_array;
+begin
+ for i in reg_array'range loop
+ temp_mem(i) := LA_MEM_EMPTY_SLOT; --std_logic_vector(to_unsigned(0, LA_MEM_WORDLEN_BITS));
+ end loop;
+ return temp_mem;
+end function;
+
+signal mem: reg_array := init_mem(0);
+
+begin
+ -- doutb <= mem(to_integer(unsigned(addrb)));
+ -- This works too as a consequence of send_capture_of_verifla architecture.
+ p0: process(clk, rst_l)
+ begin
+ if(rst_l = '0') then
+ doutb <= LA_MEM_EMPTY_SLOT;
+ elsif(rising_edge(clk)) then
+ doutb <= mem(to_integer(unsigned(addrb)));
+ end if;
+ end process;
+
+ p1: process(clk)
+ begin
+ if(rising_edge(clk)) then
+ if(wea = '1') then
+ mem(to_integer(unsigned(addra))) <= dina;
+ end if;
+ end if;
+ end process;
+
+end memory_of_verifla_arch;
+-----------------------------------------------------
+
+architecture memory_of_verifla_clean_at_reset_arch of memory_of_verifla is
+
+type reg_array is array (0 to LA_MEM_LAST_ADDR) of std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+signal mem: reg_array;
+--signal i: integer;
+
+begin
+ -- doutb <= mem(to_integer(unsigned(addrb)));
+ -- This works too as a consequence of send_capture_of_verifla architecture.
+ p0: process(clk, rst_l)
+ begin
+ if(rst_l = '0') then
+ doutb <= LA_MEM_EMPTY_SLOT;
+ elsif(rising_edge(clk)) then
+ doutb <= mem(to_integer(unsigned(addrb)));
+ end if;
+ end process;
+
+ p1: process(clk, rst_l)
+ begin
+ if(rst_l = '0') then
+ for i in 0 to LA_MEM_LAST_ADDR loop
+ mem(i) <= LA_MEM_EMPTY_SLOT;
+ end loop;
+ elsif(rising_edge(clk)) then
+ if(wea = '1') then
+ mem(to_integer(unsigned(addra))) <= dina;
+ end if;
+ end if;
+ end process;
+
+end memory_of_verifla_clean_at_reset_arch;
openverifla_2.3.b/vhdl/verifla/memory_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/monitor_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/monitor_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/monitor_of_verifla.vhd (revision 42)
@@ -0,0 +1,337 @@
+-- Author: Laurentiu Duca
+-- License: GNU GPL
+-- 20181016-1225
+-- LA_TRACE_MASK
+-- 20180826-1740
+-- split mon_run in sys_run and user_run
+-- 20180820-1500
+-- first source
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+use work.common_internal_verifla.all;
+
+-----------------------------------------------------
+
+entity monitor_of_verifla is
+ port (clk, rst_l: in std_logic;
+ sys_run, user_run: in std_logic;
+ data_in: in std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
+ mem_port_A_address: out std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ mem_port_A_data_in: out std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+ mem_port_A_wen: out std_logic;
+ ack_sc_run, sc_done: in std_logic;
+ sc_run: out std_logic);
+end monitor_of_verifla;
+
+-----------------------------------------------------
+
+architecture monitor_of_verifla_arch of monitor_of_verifla is
+
+ constant LA_MEM_FIRST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := std_logic_vector(to_unsigned(LA_MEM_FIRST_ADDR, LA_MEM_ADDRESS_BITS));
+ constant LA_MEM_LAST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR, LA_MEM_ADDRESS_BITS));
+ constant LA_BT_QUEUE_TAIL_ADDRESS_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := LA_MEM_LAST_ADDR_SLV;
+ constant LA_TRIGGER_MATCH_MEM_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := std_logic_vector(to_unsigned(LA_TRIGGER_MATCH_MEM_ADDR, LA_MEM_ADDRESS_BITS));
+ constant LA_MEM_LAST_ADDR_BEFORE_TRIGGER_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR_BEFORE_TRIGGER, LA_MEM_ADDRESS_BITS));
+
+ --type state_type is (MON_STATE_IDLE, MON_STATE_DO_MEM_CLEAN, MON_STATE_PREPARE_RUN,
+ --MON_STATE_WAIT_TRIGGER_MATCH, MON_STATE_AFTER_TRIGGER, MON_STATE_DATA_CAPTURED,
+ --MON_STATE_SC_RUN, MON_STATE_WAIT_SC_DONE);
+ -- This way, at reset we can set any start state.
+ constant MON_STATE_IDLE: integer :=0;
+ constant MON_STATE_DO_MEM_CLEAN: integer :=1;
+ constant MON_STATE_PREPARE_RUN: integer :=2;
+ constant MON_STATE_WAIT_TRIGGER_MATCH: integer :=3;
+ constant MON_STATE_AFTER_TRIGGER: integer :=4;
+ constant MON_STATE_DATA_CAPTURED: integer :=5;
+ constant MON_STATE_SC_RUN: integer :=6;
+ constant MON_STATE_WAIT_SC_DONE: integer :=7;
+
+ signal sys_run_reg: std_logic;
+ signal sc_run_aux, next_sc_run_aux: std_logic;
+ signal mon_state, next_mon_state: integer; -- state_type;
+ signal next_mon_samples_after_trigger, mon_samples_after_trigger:
+ std_logic_vector(LA_MAX_SAMPLES_AFTER_TRIGGER_BITS-1 downto 0);
+ signal next_mon_write_address, mon_write_address:
+ std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ signal next_bt_queue_tail_address, bt_queue_tail_address: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ signal mon_old_data_in, mon_current_data_in: std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
+ signal mon_clones_nr, next_mon_clones_nr: std_logic_vector(LA_IDENTICAL_SAMPLES_BITS-1 downto 0);
+ signal one_plus_mon_write_address:std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ signal oneplus_mon_clones_nr:std_logic_vector(LA_IDENTICAL_SAMPLES_BITS-1 downto 0);
+ signal data_in_changed: std_logic;
+ signal last_mem_addr_before_trigger: std_logic;
+ signal not_maximum_mon_clones_nr: std_logic;
+
+begin
+
+ -- Register the input data
+ -- such that mon_current_data_in is constant the full clock period.
+ register_input_data: process(clk, rst_l)
+ begin
+ if (rst_l='0') then
+ mon_old_data_in <= (others => '0');
+ mon_current_data_in <= (others => '0');
+ sys_run_reg <= '0';
+ elsif (rising_edge(clk)) then
+ mon_old_data_in <= mon_current_data_in;
+ mon_current_data_in <= data_in;
+ sys_run_reg <= sys_run;
+ end if;
+ end process;
+
+ -- set new values
+ state_reg: process(clk, rst_l)
+ begin
+ if (rst_l='0') then
+ mon_state <= MON_STATE_IDLE;
+ sc_run_aux <= '0';
+ mon_write_address <= std_logic_vector(to_unsigned(LA_MEM_FIRST_ADDR, LA_MEM_ADDRESS_BITS));
+ bt_queue_tail_address <= (others => '0');
+ mon_samples_after_trigger <= (others => '0');
+ mon_clones_nr <= ((LA_IDENTICAL_SAMPLES_BITS-1) downto 1 => '0', others => '1');
+ elsif (rising_edge(clk)) then
+ mon_state <= next_mon_state;
+ sc_run_aux <= next_sc_run_aux;
+ mon_write_address <= next_mon_write_address;
+ bt_queue_tail_address <= next_bt_queue_tail_address;
+ mon_samples_after_trigger <= next_mon_samples_after_trigger;
+ mon_clones_nr <= next_mon_clones_nr;
+ end if;
+ end process;
+
+ -- continuous assignments
+ one_plus_mon_write_address <=
+ std_logic_vector(to_unsigned(to_integer(unsigned(mon_write_address)) + 1, LA_MEM_ADDRESS_BITS));
+ oneplus_mon_clones_nr <=
+ std_logic_vector(to_unsigned(to_integer(unsigned(mon_clones_nr)) + 1, LA_IDENTICAL_SAMPLES_BITS));
+ data_in_changed <= '1' when ((mon_current_data_in and LA_TRACE_MASK) /= (mon_old_data_in and LA_TRACE_MASK)) else '0';
+ last_mem_addr_before_trigger <=
+ '1' when (to_integer(unsigned(mon_write_address)) = LA_MEM_LAST_ADDR_BEFORE_TRIGGER) else '0';
+ not_maximum_mon_clones_nr <=
+ '1' when (to_integer(unsigned(mon_clones_nr)) < LA_MAX_IDENTICAL_SAMPLES) else '0';
+ sc_run <= sc_run_aux;
+
+ -- state machine
+ comb_logic: process(mon_state, sys_run_reg, user_run, ack_sc_run, sc_done, sc_run_aux,
+ mon_write_address, bt_queue_tail_address, mon_samples_after_trigger,
+ mon_current_data_in, mon_old_data_in, mon_clones_nr,
+ data_in_changed, oneplus_mon_clones_nr, one_plus_mon_write_address,
+ not_maximum_mon_clones_nr, last_mem_addr_before_trigger)
+ begin
+ -- implicit
+ next_mon_state <= mon_state;
+ next_sc_run_aux <= sc_run_aux;
+ next_mon_write_address <= mon_write_address;
+ next_bt_queue_tail_address <= bt_queue_tail_address;
+ next_mon_samples_after_trigger <= mon_samples_after_trigger;
+ next_mon_clones_nr <= mon_clones_nr;
+ mem_port_A_address <= (others => '0');
+ mem_port_A_data_in <= (others => '0');
+ mem_port_A_wen <= '0';
+ case mon_state is
+ when MON_STATE_IDLE =>
+ if((sys_run_reg = '1') or (user_run = '1')) then
+ if((LA_MEM_CLEAN_BEFORE_RUN = 1) or (user_run = '1')) then
+ next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
+ next_mon_state <= MON_STATE_DO_MEM_CLEAN;
+ else
+ -- mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
+ -- we share the same clock as memory.
+ mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
+ mem_port_A_wen <= '1';
+ next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
+ end if;
+ else
+ next_mon_state <= MON_STATE_IDLE;
+ end if;
+ when MON_STATE_DO_MEM_CLEAN =>
+ mem_port_A_address <= mon_write_address;
+ mem_port_A_data_in <= LA_MEM_EMPTY_SLOT;
+ mem_port_A_wen <= '1';
+ if(to_integer(unsigned(mon_write_address)) < LA_MEM_LAST_ADDR) then
+ next_mon_write_address <= std_logic_vector(to_unsigned(to_integer(unsigned(mon_write_address)) + 1,
+ LA_MEM_ADDRESS_BITS));
+ next_mon_state <= MON_STATE_DO_MEM_CLEAN;
+ else
+ -- at the new posedge clock, will clean memory at its last address
+ next_mon_state <= MON_STATE_PREPARE_RUN;
+ end if;
+ when MON_STATE_PREPARE_RUN =>
+ -- mon_prepare_run is called from states MON_STATE_IDLE and MON_STATE_PREPARE_RUN
+ -- we share the same clock as memory.
+ mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in};
+ mem_port_A_wen <= '1';
+ next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
+ when MON_STATE_WAIT_TRIGGER_MATCH =>
+ -- circular queue
+ if((mon_current_data_in and LA_TRIGGER_MASK) /= (LA_TRIGGER_VALUE and LA_TRIGGER_MASK)) then
+ next_mon_state <= MON_STATE_WAIT_TRIGGER_MATCH;
+ mem_port_A_wen <= '1';
+ if(data_in_changed = '1') then
+ if(last_mem_addr_before_trigger = '1') then
+ mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
+ else
+ mem_port_A_address <= one_plus_mon_write_address;
+ end if;
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ mem_port_A_address <= mon_write_address;
+ else
+ if(last_mem_addr_before_trigger = '1') then
+ mem_port_A_address <= LA_MEM_FIRST_ADDR_SLV;
+ else
+ mem_port_A_address <= one_plus_mon_write_address;
+ end if;
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in}
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ mem_port_A_data_in <= mon_clones_nr & mon_current_data_in;
+ else
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ -- {{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in}
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ next_mon_clones_nr <= oneplus_mon_clones_nr;
+ else
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ if(last_mem_addr_before_trigger = '1') then
+ next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
+ else
+ next_mon_write_address <= one_plus_mon_write_address;
+ end if;
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ next_mon_write_address <= mon_write_address;
+ else
+ if(last_mem_addr_before_trigger = '1') then
+ next_mon_write_address <= LA_MEM_FIRST_ADDR_SLV;
+ else
+ next_mon_write_address <= one_plus_mon_write_address;
+ end if;
+ end if;
+ end if;
+ else
+ -- trigger matched
+ next_mon_state <= MON_STATE_AFTER_TRIGGER;
+ mem_port_A_address <= LA_TRIGGER_MATCH_MEM_ADDR_SLV;
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ -- {{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1}, mon_current_data_in};
+ mem_port_A_wen <= '1';
+ next_mon_write_address <= LA_TRIGGER_MATCH_MEM_ADDR_SLV;
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ next_bt_queue_tail_address <= mon_write_address;
+ next_mon_samples_after_trigger <= std_logic_vector(to_unsigned(1, LA_MAX_SAMPLES_AFTER_TRIGGER_BITS));
+ end if;
+ when MON_STATE_AFTER_TRIGGER =>
+ if((to_integer(unsigned(mon_samples_after_trigger)) < LA_MAX_SAMPLES_AFTER_TRIGGER) and
+ (to_integer(unsigned(mon_write_address)) < LA_MEM_LAST_ADDR)) then
+ mem_port_A_wen <= '1';
+ if(data_in_changed = '1') then
+ mem_port_A_address <= one_plus_mon_write_address;
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ mem_port_A_address <= mon_write_address;
+ else
+ mem_port_A_address <= one_plus_mon_write_address;
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in} :
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ mem_port_A_data_in <= mon_clones_nr & mon_current_data_in;
+ else
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_IDENTICAL_SAMPLES_BITS-1)) & '1' & mon_current_data_in;
+ --{{(LA_IDENTICAL_SAMPLES_BITS-1){1'b0}}, 1'b1, mon_current_data_in});
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ next_mon_clones_nr <= oneplus_mon_clones_nr;
+ else
+ next_mon_clones_nr <= std_logic_vector(to_unsigned(2, LA_IDENTICAL_SAMPLES_BITS));
+ end if;
+ end if;
+ if(data_in_changed = '1') then
+ next_mon_write_address <= one_plus_mon_write_address;
+ else
+ if(not_maximum_mon_clones_nr = '1') then
+ next_mon_write_address <= mon_write_address;
+ else
+ next_mon_write_address <= one_plus_mon_write_address;
+ end if;
+ end if;
+ next_mon_samples_after_trigger <=
+ std_logic_vector(to_unsigned(to_integer(unsigned(mon_samples_after_trigger)+1),
+ LA_MAX_SAMPLES_AFTER_TRIGGER_BITS));
+ next_mon_state <= MON_STATE_AFTER_TRIGGER;
+ else
+ mem_port_A_wen <= '0';
+ next_mon_state <= MON_STATE_DATA_CAPTURED;
+ end if;
+ when MON_STATE_DATA_CAPTURED =>
+ -- Save bt_queue_tail_address
+ mem_port_A_address <= LA_BT_QUEUE_TAIL_ADDRESS_SLV;
+ mem_port_A_data_in <=
+ std_logic_vector(to_unsigned(0, LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS)) & bt_queue_tail_address;
+ -- {{(LA_MEM_WORDLEN_BITS-LA_MEM_ADDRESS_BITS){1'b0}}, bt_queue_tail_address};
+ mem_port_A_wen <= '1';
+ next_mon_state <= MON_STATE_SC_RUN;
+ when MON_STATE_SC_RUN =>
+ next_mon_state <= MON_STATE_WAIT_SC_DONE;
+ next_sc_run_aux <= '1';
+ when MON_STATE_WAIT_SC_DONE =>
+ -- sc_run must already be 1.
+ if(ack_sc_run = '1') then
+ next_sc_run_aux <= '0';
+ end if;
+ if((sc_run_aux = '0') and (sc_done = '1')) then
+ next_mon_state <= MON_STATE_IDLE;
+ else
+ next_mon_state <= MON_STATE_WAIT_SC_DONE;
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ end case;
+ end process;
+
+end monitor_of_verifla_arch;
openverifla_2.3.b/vhdl/verifla/monitor_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/send_capture_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/send_capture_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/send_capture_of_verifla.vhd (revision 42)
@@ -0,0 +1,130 @@
+-- 20180820-1740
+-- Author: Laurentiu Duca
+-- License: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+use work.common_internal_verifla.all;
+
+-----------------------------------------------------
+
+entity send_capture_of_verifla is
+ port (clk, rst_l, baud_clk_posedge: in std_logic;
+ sc_run: in std_logic;
+ ack_sc_run, sc_done: out std_logic;
+ mem_port_B_address: out std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ mem_port_B_dout: in std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+ xmit_doneH: in std_logic;
+ xmitH: out std_logic;
+ xmit_dataH: out std_logic_vector(7 downto 0));
+end send_capture_of_verifla;
+
+-----------------------------------------------------
+
+architecture send_capture_of_verifla_arch of send_capture_of_verifla is
+
+ constant LA_MEM_LAST_ADDR_SLV: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0)
+ := std_logic_vector(to_unsigned(LA_MEM_LAST_ADDR, LA_MEM_ADDRESS_BITS));
+ constant USERCMD_RESET: std_logic_vector(7 downto 0) :=x"00";
+ constant USERCMD_RUN: std_logic_vector(7 downto 0) :=x"01";
+ type state_type is (SC_STATE_IDLE, SC_STATE_ACK_SC_RUN,
+ SC_STATE_SET_MEMADDR_TO_READ_FROM, SC_STATE_GET_MEM_OUTPUT_DATA,
+ SC_STATE_SEND_OCTET, SC_STATE_WAIT_OCTET_SENT, SC_STATE_WORD_SENT);
+
+ signal sc_state, next_sc_state: state_type;
+ signal sc_current_address, next_sc_current_address: std_logic_vector(LA_MEM_ADDRESS_BITS-1 downto 0);
+ signal sc_octet_id, next_sc_octet_id:std_logic_vector(LA_MEM_WORDLEN_OCTETS-1 downto 0);
+ signal sc_word_bits, next_sc_word_bits: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+
+begin
+
+ -- set up next value
+ state_reg: process(clk, rst_l)
+ begin
+ if (rst_l='0') then
+ sc_state<=SC_STATE_IDLE;
+ sc_current_address<=(others => '0');
+ sc_word_bits<=(others => '0');
+ sc_octet_id<= (others => '0');
+ elsif (rising_edge(clk)) then
+ if (baud_clk_posedge = '1') then
+ sc_state <= next_sc_state;
+ sc_current_address <= next_sc_current_address;
+ sc_word_bits <= next_sc_word_bits;
+ sc_octet_id <= next_sc_octet_id;
+ end if;
+ end if;
+ end process;
+
+ -- state machine
+ comb_logic: process(sc_state, sc_run, xmit_doneH,
+ sc_current_address, sc_word_bits, sc_octet_id, mem_port_B_dout)
+ begin
+ -- implicit
+ next_sc_state<=sc_state;
+ ack_sc_run<='0';
+ sc_done<='0';
+ xmit_dataH<=(others => '0');
+ xmitH<='0';
+ mem_port_B_address<=sc_current_address;
+ next_sc_current_address<=sc_current_address;
+ next_sc_word_bits<=sc_word_bits;
+ next_sc_octet_id<=sc_octet_id;
+ case sc_state is
+ when SC_STATE_IDLE =>
+ if(sc_run = '1') then
+ next_sc_state <= SC_STATE_ACK_SC_RUN;
+ next_sc_current_address <= LA_MEM_LAST_ADDR_SLV;
+ else
+ next_sc_state <= SC_STATE_IDLE;
+ end if;
+ when SC_STATE_ACK_SC_RUN =>
+ ack_sc_run <= '1';
+ next_sc_state <= SC_STATE_SET_MEMADDR_TO_READ_FROM;
+ when SC_STATE_SET_MEMADDR_TO_READ_FROM =>
+ mem_port_B_address <= sc_current_address;
+ -- next clock cycle we have memory dout of our read.
+ next_sc_state <= SC_STATE_GET_MEM_OUTPUT_DATA;
+ when SC_STATE_GET_MEM_OUTPUT_DATA =>
+ next_sc_word_bits <= mem_port_B_dout;
+ -- LSB first
+ next_sc_octet_id <= (others => '0');
+ next_sc_state <= SC_STATE_SEND_OCTET;
+ when SC_STATE_SEND_OCTET =>
+ xmit_dataH <= sc_word_bits(7 downto 0);
+ next_sc_word_bits <= x"00" & sc_word_bits(LA_MEM_WORDLEN_BITS-1 downto 8);
+ -- shift_right(unsigned(sc_word_bits),8);
+ xmitH <= '1';
+ next_sc_octet_id <= std_logic_vector(to_unsigned(
+ to_integer(unsigned(sc_octet_id))+1, LA_MEM_WORDLEN_OCTETS));
+ next_sc_state <= SC_STATE_WAIT_OCTET_SENT;
+ when SC_STATE_WAIT_OCTET_SENT =>
+ if(xmit_doneH = '1') then
+ if(to_integer(unsigned(sc_octet_id)) < LA_MEM_WORDLEN_OCTETS) then
+ next_sc_state <= SC_STATE_SEND_OCTET;
+ else
+ next_sc_state <= SC_STATE_WORD_SENT;
+ end if;
+ else
+ next_sc_state <= SC_STATE_WAIT_OCTET_SENT;
+ end if;
+ when SC_STATE_WORD_SENT =>
+ if(to_integer(unsigned(sc_current_address)) > LA_MEM_FIRST_ADDR) then
+ next_sc_current_address <= std_logic_vector(to_unsigned(
+ to_integer(unsigned(sc_current_address))-1, LA_MEM_ADDRESS_BITS));
+ next_sc_state <= SC_STATE_SET_MEMADDR_TO_READ_FROM;
+ else
+ -- done sending all captured data
+ sc_done <= '1';
+ next_sc_state <= SC_STATE_IDLE;
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ end case;
+ end process;
+
+end send_capture_of_verifla_arch;
openverifla_2.3.b/vhdl/verifla/send_capture_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/single_pulse_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/single_pulse_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/single_pulse_of_verifla.vhd (revision 42)
@@ -0,0 +1,66 @@
+-----------------------------------------------------
+-- single pulse from a multi-periods-contiguous pulse
+-- date: 20180820-1700
+-- author: Laurentiu Duca
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+-----------------------------------------------------
+
+entity single_pulse_of_verifla is
+port( clk, rst_l: in std_logic;
+ ub: in std_logic;
+ ubsing: out std_logic
+);
+end single_pulse_of_verifla;
+
+-----------------------------------------------------
+
+architecture single_pulse_of_verifla_arch of single_pulse_of_verifla is
+
+ signal next_state, state: std_logic;
+ signal ubsing_reg, next_ubsing_reg: std_logic;
+
+begin
+ ubsing <= ubsing_reg;
+
+ state_reg: process(clk, rst_l)
+ begin
+ if (rst_l='0') then
+ state <= '0';
+ ubsing_reg <= '0';
+ elsif (rising_edge(clk)) then
+ state <= next_state;
+ ubsing_reg <= next_ubsing_reg;
+ end if;
+ end process;
+
+ comb_logic: process(state, ub)
+ begin
+ next_state <= state;
+ next_ubsing_reg <= '0';
+ case state is
+ when '0' =>
+ if (ub = '1') then
+ next_state <= '1';
+ next_ubsing_reg <= '1';
+ end if;
+ when '1' =>
+ if (ub = '0') then
+ next_state <= '0';
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ --next_state <= '0';
+ --next_ubsing_reg <= '0';
+ end case;
+ end process;
+
+end single_pulse_of_verifla_arch;
+
+-----------------------------------------------------
Index: openverifla_2.3.b/vhdl/verifla/top_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/top_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/top_of_verifla.vhd (revision 42)
@@ -0,0 +1,71 @@
+-- 20180820-1740
+-- Author: Laurentiu Duca
+-- License: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+use work.common_internal_verifla.all;
+
+-----------------------------------------------------
+
+entity top_of_verifla is
+ port (clk, rst_l, sys_run: in std_logic;
+ data_in: in std_logic_vector(LA_DATA_INPUT_WORDLEN_BITS-1 downto 0);
+ -- Transceiver
+ uart_XMIT_dataH: out std_logic;
+ uart_REC_dataH: in std_logic);
+end top_of_verifla;
+
+-----------------------------------------------------
+
+architecture top_of_verifla_arch of top_of_verifla is
+
+ signal mem_port_A_data_in, mem_port_B_dout: std_logic_vector(LA_MEM_WORDLEN_BITS-1 downto 0);
+ signal mem_port_A_address, mem_port_B_address: std_logic_vector (LA_MEM_ADDRESS_BITS-1 downto 0) ;
+ signal mem_port_A_wen: std_logic;
+ signal user_run: std_logic;
+ signal sc_run, ack_sc_run, sc_done: std_logic;
+ -- Transmitter
+ signal xmit_dataH: std_logic_vector(7 downto 0);
+ signal xmit_doneH, xmitH: std_logic;
+ -- Receiver
+ signal rec_dataH: std_logic_vector(7 downto 0);
+ signal rec_readyH: std_logic;
+ -- Baud
+ signal baud_clk_posedge: std_logic;
+
+begin
+ iUART: entity work.uart_of_verifla(uart_of_verifla_arch)
+ port map(clk, rst_l, baud_clk_posedge,
+ -- Transmitter
+ uart_XMIT_dataH, xmitH, xmit_dataH, xmit_doneH,
+ -- Receiver
+ uart_REC_dataH, rec_dataH, rec_readyH);
+ mi: entity work.memory_of_verifla(memory_of_verifla_arch)
+ port map (addra => mem_port_A_address, addrb => mem_port_B_address,
+ clk=>clk, rst_l=>rst_l,
+ dina=>mem_port_A_data_in, doutb=>mem_port_B_dout,
+ wea=>mem_port_A_wen);
+
+ ci: entity work.computer_input_of_verifla(computer_input_of_verifla_arch)
+ port map (clk, rst_l, rec_dataH, rec_readyH, user_run);
+
+ mon: entity work.monitor_of_verifla(monitor_of_verifla_arch)
+ port map (clk, rst_l,
+ sys_run, user_run, data_in,
+ mem_port_A_address, mem_port_A_data_in, mem_port_A_wen,
+ ack_sc_run, sc_done, sc_run);
+
+ -- send_capture_of_verifla must use the same reset as the uart.
+ sc: entity work.send_capture_of_verifla(send_capture_of_verifla_arch)
+ port map (clk, rst_l, baud_clk_posedge,
+ sc_run, ack_sc_run, sc_done,
+ mem_port_B_address, mem_port_B_dout,
+ xmit_doneH, xmitH, xmit_dataH);
+
+end top_of_verifla_arch;
+
openverifla_2.3.b/vhdl/verifla/top_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/u_rec_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/u_rec_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/u_rec_of_verifla.vhd (revision 42)
@@ -0,0 +1,98 @@
+-- date: 20180816_1740
+-- author: Laurentiu Duca
+-- license: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+-----------------------------------------------------
+
+
+entity u_rec_of_verifla is
+port( clk_i, rst_i, baud_clk_posedge: in std_logic;
+ rxd_i: in std_logic; -- serial data in
+ rdy_o: out std_logic;
+ data_o:out std_logic_vector(7 downto 0)
+);
+end u_rec_of_verifla;
+
+-----------------------------------------------------
+
+architecture u_rec_of_verifla_arch of u_rec_of_verifla is
+
+ type state_type is (STA_IDLE, STA_CHECK_START_BIT, STA_RECEIVE);
+ signal rdy_o_reg: std_logic;
+ signal data_o_reg: std_logic_vector(7 downto 0);
+ signal rsr: std_logic_vector(7 downto 0); -- receiving shift reg
+ signal num_of_rec: std_logic_vector(3 downto 0);
+ signal reg_sta: state_type;
+ signal count: std_logic_vector(4 downto 0); -- the counter to count the clk in
+ --signal count_c: std_logic; -- the carry of count
+
+begin
+
+ rdy_o <= rdy_o_reg;
+ data_o <= data_o_reg;
+
+ state_reg: process(clk_i, rst_i)
+ begin
+ if (rst_i='1') then
+ data_o_reg <= x"00";
+ rdy_o_reg <= '0';
+ rsr <= x"00";
+ num_of_rec <= "0000";
+ count <= "00000";
+ --count_c <= '0';
+ reg_sta <= STA_IDLE;
+ elsif (rising_edge(clk_i)) then
+ if(baud_clk_posedge = '1') then
+ case reg_sta is
+ when STA_IDLE =>
+ num_of_rec <= x"0";
+ count <= "00000";
+ if(rxd_i = '0') then
+ reg_sta <= STA_CHECK_START_BIT;
+ else
+ reg_sta <= STA_IDLE;
+ end if;
+ when STA_CHECK_START_BIT =>
+ if(count >= "00111") then
+ count <= "00000";
+ if(rxd_i = '0') then
+ -- has passed 8 clk and rxd_i is still zero,then start bit has been confirmed
+ rdy_o_reg <= '0';
+ reg_sta <= STA_RECEIVE;
+ else
+ reg_sta <= STA_IDLE;
+ end if;
+ else
+ reg_sta <= STA_CHECK_START_BIT;
+ count <= std_logic_vector(unsigned(count)+"00001");
+ end if;
+ when STA_RECEIVE =>
+ count <= std_logic_vector(unsigned('0' & count(3 downto 0))+"00001");
+ if(count(4) = '1') then
+ -- has passed 16 clk after the last bit has been checked,sampling a bit
+ if(num_of_rec <= x"7") then
+ -- sampling the received bit
+ rsr <= rxd_i & rsr(7 downto 1);
+ num_of_rec <= std_logic_vector(unsigned(num_of_rec)+"0001");
+ reg_sta <= STA_RECEIVE;
+ else
+ -- sample the stop bit
+ data_o_reg <= rsr;
+ rdy_o_reg <= '1';
+ reg_sta <= STA_IDLE;
+ end if;
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ end case;
+ end if;
+ end if;
+ end process;
+end u_rec_of_verifla_arch;
openverifla_2.3.b/vhdl/verifla/u_rec_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/u_xmit_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/u_xmit_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/u_xmit_of_verifla.vhd (revision 42)
@@ -0,0 +1,87 @@
+-- 20180816-1600
+-- author: Laurentiu Duca
+-- license: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+-----------------------------------------------------
+
+
+entity u_xmit_of_verifla is
+port( clk_i, rst_i, baud_clk_posedge: in std_logic;
+ data_i:in std_logic_vector(7 downto 0);
+ wen_i: in std_logic;
+ txd_o, tre_o: out std_logic
+);
+end u_xmit_of_verifla;
+
+-----------------------------------------------------
+
+architecture u_xmit_of_verifla_arch of u_xmit_of_verifla is
+
+ type state_type is (STA_IDLE, STA_TRANS, STA_FINISH);
+ signal txd_o_reg, tre_o_reg: std_logic;
+ signal tsr: std_logic_vector(7 downto 0); -- transmitting shift register
+ signal num_of_trans: std_logic_vector(3 downto 0);
+ signal reg_sta: state_type;
+ signal count: std_logic_vector(4 downto 0); -- the counter to count the clk in
+ --signal count_c: std_logic; -- the carry of count
+
+begin
+
+ txd_o <= txd_o_reg;
+ tre_o <= tre_o_reg;
+
+ state_reg: process(clk_i, rst_i)
+ begin
+ if (rst_i='1') then
+ tsr <= x"00";
+ txd_o_reg <= '1';
+ tre_o_reg <= '1';
+ num_of_trans <= "0000";
+ --count_c <= '0';
+ count <= "00000";
+ reg_sta <= STA_IDLE;
+ elsif (rising_edge(clk_i)) then
+ if(baud_clk_posedge = '1') then
+ case reg_sta is
+ when STA_IDLE =>
+ num_of_trans <= "0000";
+ count <= "00000";
+ --count_c <= '0';
+ if (wen_i = '1') then
+ tsr <= data_i;
+ tre_o_reg <= '0';
+ txd_o_reg <= '0';
+ reg_sta <= STA_TRANS;
+ else
+ reg_sta <= STA_IDLE;
+ end if;
+ when STA_TRANS =>
+ count <= std_logic_vector(unsigned('0' & count(3 downto 0)) + "00001");
+ if(count(4) = '1') then
+ if(num_of_trans <= x"8") then
+ -- note ,when num_of_trans==8 ,we transmit the stop bit
+ tsr <= '1' & tsr(7 downto 1);
+ txd_o_reg <= tsr(0);
+ num_of_trans <= std_logic_vector(unsigned(num_of_trans) + "0001");
+ reg_sta <= STA_TRANS;
+ else
+ txd_o_reg <= '1';
+ tre_o_reg <= '1';
+ reg_sta <= STA_IDLE;
+ end if;
+ end if;
+ when others =>
+ -- this is forced by the vhdl compiler
+ end case;
+ end if;
+ end if;
+ end process;
+
+end u_xmit_of_verifla_arch;
\ No newline at end of file
openverifla_2.3.b/vhdl/verifla/u_xmit_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: openverifla_2.3.b/vhdl/verifla/uart_of_verifla.vhd
===================================================================
--- openverifla_2.3.b/vhdl/verifla/uart_of_verifla.vhd (nonexistent)
+++ openverifla_2.3.b/vhdl/verifla/uart_of_verifla.vhd (revision 42)
@@ -0,0 +1,50 @@
+-- uart_of_verifla
+-- date: 20180816_1740
+-- author: Laurentiu Duca
+-- license: GNU GPL
+-----------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+--use ieee.std_logic_arith.all;
+--use ieee.std_logic_unsigned.all;
+
+-----------------------------------------------------
+
+entity uart_of_verifla is
+port( sys_clk, sys_rst_l: in std_logic;
+ baud_clk_posedge: out std_logic;
+ uart_XMIT_dataH: out std_logic;
+ xmitH: in std_logic;
+ xmit_dataH: in std_logic_vector(7 downto 0);
+ xmit_doneH: out std_logic;
+ uart_REC_dataH: in std_logic;
+ rec_dataH: out std_logic_vector(7 downto 0);
+ rec_readyH: out std_logic
+);
+end uart_of_verifla;
+
+-----------------------------------------------------
+
+architecture uart_of_verifla_arch of uart_of_verifla is
+
+ signal sys_rst: std_logic;
+ signal baud_clk_posedge_wire: std_logic;
+
+begin
+ sys_rst <= not sys_rst_l;
+ baud_clk_posedge <= baud_clk_posedge_wire;
+
+ txd1: entity work.u_xmit_of_verifla(u_xmit_of_verifla_arch)
+ port map(clk_i => sys_clk, rst_i =>sys_rst, baud_clk_posedge => baud_clk_posedge_wire,
+ data_i => xmit_dataH, wen_i => xmitH, txd_o => uart_XMIT_dataH, tre_o => xmit_doneH);
+
+ rxd1: entity work.u_rec_of_verifla(u_rec_of_verifla_arch)
+ port map(clk_i => sys_clk, rst_i => sys_rst, baud_clk_posedge => baud_clk_posedge_wire,
+ rxd_i => uart_REC_dataH, rdy_o => rec_readyH, data_o => rec_dataH);
+
+ baud1: entity work.baud_of_verifla(baud_of_verifla_arch)
+ port map(sys_clk => sys_clk, sys_rst_l => sys_rst_l, baud_clk_posedge => baud_clk_posedge_wire);
+
+end uart_of_verifla_arch;
openverifla_2.3.b/vhdl/verifla/uart_of_verifla.vhd
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.