Update yonga_lz4_decoder_top.v
diff --git a/verilog/rtl/yonga_lz4_decoder_top.v b/verilog/rtl/yonga_lz4_decoder_top.v
index e37bf93..d2600a9 100644
--- a/verilog/rtl/yonga_lz4_decoder_top.v
+++ b/verilog/rtl/yonga_lz4_decoder_top.v
@@ -1,197 +1,202 @@
-// SPDX-FileCopyrightText: 2020 Efabless Corporation

-//

-// Licensed under the Apache License, Version 2.0 (the "License");

-// you may not use this file except in compliance with the License.

-// You may obtain a copy of the License at

-//

-//      http://www.apache.org/licenses/LICENSE-2.0

-//

-// Unless required by applicable law or agreed to in writing, software

-// distributed under the License is distributed on an "AS IS" BASIS,

-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

-// See the License for the specific language governing permissions and

-// limitations under the License.

-// SPDX-License-Identifier: Apache-2.0

-

-module yonga_lz4_decoder_top (

-    input  clk,

-    input  rst,

-

-    input  valid,

-    output reg [31:0] rdata,

-    input  [31:0] wdata,

-    output reg ready,

-    input wr_en,

-

-    input [7:0] compressed_data1,

-    output [7:0] decompressed_data1,

-

-    input rx,

-    output tx

-);

-

-wire rstn;

-reg select;

- 

-reg  decompress_data_read_en1;

-reg  i_fifo_wr_en1;

-reg [7:0] i_fifo_w_data1;

-reg decompress_fifo_data_ready1;

-

-reg uart_tx_full_flag_control1;

-reg [2:0] uart_tx_full_flag_count1;

-

-wire decompress_fifo_empty1;

-

-wire o_in_fifo_full1;

-wire [7:0] decompress_data1;

-wire idle1;

-

-reg lz4_o_fifo_read_request1;

-wire rx_fifo_not_empty1;

-wire rx_empty1;

-wire [7:0] uart_r_data1;

-wire tx_full1;

-wire [5:0] decompress_fifo_data_count1;

-

-assign rstn = !rst;

-assign rx_fifo_not_empty1 = !rx_empty1;

-

-always@(*) begin

-    rdata = 32'b0;

-    rdata[0]  = idle1;

-    rdata[4]  = decompress_fifo_empty1;

-    rdata[8]  = decompress_fifo_data_ready1;

-    rdata[12] = o_in_fifo_full1;

-end

-

-    yonga_lz4_decoder U1 //  LZ4-CORE-1

-        (

-            .clk    (clk),

-            .rstn   (rstn),

-

-            .i_lz4_decompress_enable  (1'b0),

-            .lz4_decompress_start     (1'b0),

-            

-            .i_compress_data_write    (i_fifo_wr_en1),

-            .o_compress_fifo_full     (o_in_fifo_full1),    

-            .i_compress_data          (i_fifo_w_data1),

-            

-            .i_decompress_data_read   (decompress_data_read_en1),

-            .o_decompress_fifo_empty  (decompress_fifo_empty1),

-            .o_fifo2_data_count       (decompress_fifo_data_count1),

-            .o_decompress_data        (decompressed_data1),

-            

-            .o_idle      (idle1)

-        );

-        

-    // ------------------------------UART------------------

-    uart    // UART-1

-        #(

-           .DBIT(8), 

-           .SB_TICK(16), 

-           .DVSR(163), 

-           .DVSR_BIT(8), 

-           .FIFO_W(2) 

-         )

-        U5(

-            .clk(clk),

-            .reset(!rstn),

-            .tx(tx),

-            .rx(rx),

-            .rd_uart(rx_fifo_not_empty1),

-            .wr_uart(lz4_o_fifo_read_request1),

-            .r_data(uart_r_data1),

-            .w_data(decompressed_data1),

-            .tx_full(tx_full1),

-            .rx_empty(rx_empty1)          

-        ); 

-        

-//------------------------------------------------------------------------------------------------------------//    

-//-----------------Uart or Logic Analyzer Select--------------------------------------------------------------//       

-        always @(posedge clk) begin

-            if(rstn == 1'b0) 

-                select <= 1'b1;

-            else begin

-                if(valid && !ready) begin

-                    if(wr_en ==1'b1 && wdata[8] == 1'b1) // uart enable

-                        select <= 1'b0;

-                    else if(wr_en ==1'b1 && wdata[9] == 1'b1) // Logic Analyzer enable

-                        select <= 1'b1;

-                end     

-            end  

-        end

-//------------------------------------------------------------------------------------------------------------//            

-//-----------------Decompress Fifo Data Ready Control---------------------------------------------------------// 

-        always @(posedge clk) begin

-            if(rstn == 1'b0) begin

-                decompress_fifo_data_ready1 <= 1'b0;

-            end else begin

-                if(decompress_fifo_data_count1> 20)

-                    decompress_fifo_data_ready1 <= 1'b1;

-                else

-                    decompress_fifo_data_ready1 <= 1'b0;

-            end  

-        end

-//------------------------------------------------------------------------------------------------------------//            

-                      

-        always @(posedge clk) begin

-            if(rstn == 1'b0) begin 

-                ready         <= 1'b0; 

-                i_fifo_wr_en1 <= 1'b0;

-                decompress_data_read_en1 <= 1'b0;

-                lz4_o_fifo_read_request1 <= 1'b0;

-                i_fifo_w_data1 <= 0;

-                uart_tx_full_flag_control1 <= 1'b1;

-                uart_tx_full_flag_count1 <= 0;

-            end else begin             

-                ready         <= 1'b0;

-                i_fifo_wr_en1 <= 1'b0;

-                decompress_data_read_en1 <= 1'b0;

-                

-                if(valid && !ready) 

-                    ready  <= 1'b1;

-//------------------------------------------Uart---------------------------------------------------------------//                         

-                if(select == 1'b0) begin // uart enable

-//                           Write fifo data

-                    lz4_o_fifo_read_request1 <= decompress_data_read_en1;

-                  

-                    if(rx_fifo_not_empty1 == 1'b1)begin

-                        i_fifo_wr_en1  <= 1'b1;

-                        i_fifo_w_data1 <= uart_r_data1;

-                    end

-//------------------------------------------------------------------------------------------------------------//                                                

-//                      Read fifo data                    

-                    if(!decompress_fifo_empty1 && uart_tx_full_flag_control1 == 1 && tx_full1 == 1'b0)begin 

-                       decompress_data_read_en1   <=  1'b1;

-                       uart_tx_full_flag_control1 <=  1'b0;

-                    end

-//------------------------------------------------------------------------------------------------------------//                          

-//                      uart_tx_full_flag_control                     

-                    if(uart_tx_full_flag_control1 ==  1'b0 )begin                        

-                        if(uart_tx_full_flag_count1 == 2)begin

-                            uart_tx_full_flag_count1   <= 0;

-                            uart_tx_full_flag_control1 <= 1'b1;

-                        end else

-                            uart_tx_full_flag_count1 <= uart_tx_full_flag_count1+1;

-                    end                   

-//------------------------------------------------------------------------------------------------------------//   

-//-------------------------------------------Logic Analyzer---------------------------------------------------//

-                end else begin 

-                    if(valid && !ready) begin // Logic Analyzer enable

-//                       Write fifo data

-                        if(wr_en ==1'b1 && wdata[0]) begin

-                            i_fifo_wr_en1  <= 1'b1;

-                            i_fifo_w_data1 <= compressed_data1;

-                        end

-//------------------------------------------------------------------------------------------------------------//                                                

-//                      Read fifo data

-                        if(wr_en ==1'b1 && wdata[4])

-                            decompress_data_read_en1 <=  1'b1;      

-                    end     

-//------------------------------------------------------------------------------------------------------------//                                                                                              

-                end                                             

-            end

-        end

-            

-endmodule

+// =====================================================================================  
+// (C) COPYRIGHT 2016 YongaTek (Yonga Technology Microelectronics)
+// All rights reserved.
+// This file contains confidential and proprietary information of YongaTek and 
+// is protected under international copyright and other intellectual property laws.
+// =====================================================================================
+// Project           : lz4_decompress
+// File ID           : %%
+// Design Unit Name  : user_pro_example.v
+// Description       : 
+// Comments          :
+// Revision          : %%
+// Last Changed Date : %%
+// Last Changed By   : 
+// Designer
+//          Name     : Bahadir TÜRKOGLU
+//          E-mail   : bahadir.turkoglu@yongatek.com          
+// =====================================================================================
+
+`default_nettype none
+module yonga_lz4_decoder_top (
+    input  clk,
+    input  rst,
+
+    input  valid,
+    output reg [31:0] rdata,
+    input  [31:0] wdata,
+    output reg ready,
+    input wr_en,
+
+    input [7:0] compressed_data1,
+    output [7:0] decompressed_data1,
+
+    input rx,
+    output tx
+);
+
+wire rstn;
+reg select;
+ 
+reg  decompress_data_read_en1;
+reg  i_fifo_wr_en1;
+reg [7:0] i_fifo_w_data1;
+reg decompress_fifo_data_ready1;
+
+reg uart_tx_full_flag_control1;
+reg [2:0] uart_tx_full_flag_count1;
+
+wire decompress_fifo_empty1;
+
+wire o_in_fifo_full1;
+wire [7:0] decompress_data1;
+wire idle1;
+
+reg lz4_o_fifo_read_request1;
+wire rx_fifo_not_empty1;
+wire rx_empty1;
+wire [7:0] uart_r_data1;
+wire tx_full1;
+wire [5:0] decompress_fifo_data_count1;
+
+assign rstn = !rst;
+assign rx_fifo_not_empty1 = !rx_empty1;
+
+always@(*) begin
+    rdata = 32'b0;
+    rdata[0]  = idle1;
+    rdata[4]  = decompress_fifo_empty1;
+    rdata[8]  = decompress_fifo_data_ready1;
+    rdata[12] = o_in_fifo_full1;
+end
+
+    yonga_lz4_decoder U1 //  LZ4-CORE-1
+        (
+            .clk    (clk),
+            .rstn   (rstn),
+
+            .i_lz4_decompress_enable  (1'b0),
+            .lz4_decompress_start     (1'b0),
+            
+            .i_compress_data_write    (i_fifo_wr_en1),
+            .o_compress_fifo_full     (o_in_fifo_full1),    
+            .i_compress_data          (i_fifo_w_data1),
+            
+            .i_decompress_data_read   (decompress_data_read_en1),
+            .o_decompress_fifo_empty  (decompress_fifo_empty1),
+            .o_fifo2_data_count       (decompress_fifo_data_count1),
+            .o_decompress_data        (decompressed_data1),
+            
+            .o_idle      (idle1)
+        );
+        
+    // ------------------------------UART------------------
+    uart    // UART-1
+        #(
+           .DBIT(8), 
+           .SB_TICK(16), 
+           .DVSR(163), 
+           .DVSR_BIT(8), 
+           .FIFO_W(2) 
+         )
+        U5(
+            .clk(clk),
+            .reset(!rstn),
+            .tx(tx),
+            .rx(rx),
+            .rd_uart(rx_fifo_not_empty1),
+            .wr_uart(lz4_o_fifo_read_request1),
+            .r_data(uart_r_data1),
+            .w_data(decompressed_data1),
+            .tx_full(tx_full1),
+            .rx_empty(rx_empty1)          
+        ); 
+        
+//------------------------------------------------------------------------------------------------------------//    
+//-----------------Uart or Logic Analyzer Select--------------------------------------------------------------//       
+        always @(posedge clk) begin
+            if(rstn == 1'b0) 
+                select <= 1'b1;
+            else begin
+                if(valid && !ready) begin
+                    if(wr_en ==1'b1 && wdata[8] == 1'b1) // uart enable
+                        select <= 1'b0;
+                    else if(wr_en ==1'b1 && wdata[9] == 1'b1) // Logic Analyzer enable
+                        select <= 1'b1;
+                end     
+            end  
+        end
+//------------------------------------------------------------------------------------------------------------//            
+//-----------------Decompress Fifo Data Ready Control---------------------------------------------------------// 
+        always @(posedge clk) begin
+            if(rstn == 1'b0) begin
+                decompress_fifo_data_ready1 <= 1'b0;
+            end else begin
+                if(decompress_fifo_data_count1> 20)
+                    decompress_fifo_data_ready1 <= 1'b1;
+                else
+                    decompress_fifo_data_ready1 <= 1'b0;
+            end  
+        end
+//------------------------------------------------------------------------------------------------------------//            
+                      
+        always @(posedge clk) begin
+            if(rstn == 1'b0) begin 
+                ready         <= 1'b0; 
+                i_fifo_wr_en1 <= 1'b0;
+                decompress_data_read_en1 <= 1'b0;
+                lz4_o_fifo_read_request1 <= 1'b0;
+                i_fifo_w_data1 <= 0;
+                uart_tx_full_flag_control1 <= 1'b1;
+                uart_tx_full_flag_count1 <= 0;
+            end else begin             
+                ready         <= 1'b0;
+                i_fifo_wr_en1 <= 1'b0;
+                decompress_data_read_en1 <= 1'b0;
+                
+                if(valid && !ready) 
+                    ready  <= 1'b1;
+//------------------------------------------Uart---------------------------------------------------------------//                         
+                if(select == 1'b0) begin // uart enable
+//                           Write fifo data
+                    lz4_o_fifo_read_request1 <= decompress_data_read_en1;
+                  
+                    if(rx_fifo_not_empty1 == 1'b1)begin
+                        i_fifo_wr_en1  <= 1'b1;
+                        i_fifo_w_data1 <= uart_r_data1;
+                    end
+//------------------------------------------------------------------------------------------------------------//                                                
+//                      Read fifo data                    
+                    if(!decompress_fifo_empty1 && uart_tx_full_flag_control1 == 1 && tx_full1 == 1'b0)begin 
+                       decompress_data_read_en1   <=  1'b1;
+                       uart_tx_full_flag_control1 <=  1'b0;
+                    end
+//------------------------------------------------------------------------------------------------------------//                          
+//                      uart_tx_full_flag_control                     
+                    if(uart_tx_full_flag_control1 ==  1'b0 )begin                        
+                        if(uart_tx_full_flag_count1 == 2)begin
+                            uart_tx_full_flag_count1   <= 0;
+                            uart_tx_full_flag_control1 <= 1'b1;
+                        end else
+                            uart_tx_full_flag_count1 <= uart_tx_full_flag_count1+1;
+                    end                   
+//------------------------------------------------------------------------------------------------------------//   
+//-------------------------------------------Logic Analyzer---------------------------------------------------//
+                end else begin 
+                    if(valid && !ready) begin // Logic Analyzer enable
+//                       Write fifo data
+                        if(wr_en ==1'b1 && wdata[0]) begin
+                            i_fifo_wr_en1  <= 1'b1;
+                            i_fifo_w_data1 <= compressed_data1;
+                        end
+//------------------------------------------------------------------------------------------------------------//                                                
+//                      Read fifo data
+                        if(wr_en ==1'b1 && wdata[4])
+                            decompress_data_read_en1 <=  1'b1;      
+                    end     
+//------------------------------------------------------------------------------------------------------------//                                                                                              
+                end                                             
+            end
+        end
+            
+endmodule