diff --git a/lib/axis/README.md b/lib/axis/README.md
index 8ea4b149d2eee23c026a4ff62833e76c1e7964a2..397ca505379162edc7476795cabeec72c9eb644f 100644
--- a/lib/axis/README.md
+++ b/lib/axis/README.md
@@ -205,7 +205,7 @@ Parametrizable priority encoder.
 
     DATA_WIDTH           : width of tdata signal
     KEEP_ENABLE          : enable tkeep signal (default DATA_WIDTH>8)
-    KEEP_WIDTH           : width of tkeep signal (default DATA_WIDTH/8)
+    KEEP_WIDTH           : width of tkeep signal (default (DATA_WIDTH+7)/8)
     LAST_ENABLE          : enable tlast signal
     ID_ENABLE            : enable tid signal
     ID_WIDTH             : width of tid signal
diff --git a/lib/axis/rtl/axis_adapter.v b/lib/axis/rtl/axis_adapter.v
index cb3325106f725f2c4eb6e654e0331c3493156ccb..51aa226ac23c15742d762b34367e6dd1a6f2aa45 100644
--- a/lib/axis/rtl/axis_adapter.v
+++ b/lib/axis/rtl/axis_adapter.v
@@ -39,14 +39,14 @@ module axis_adapter #
     // If disabled, tkeep assumed to be 1'b1
     parameter S_KEEP_ENABLE = (S_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on input interface
-    parameter S_KEEP_WIDTH = (S_DATA_WIDTH/8),
+    parameter S_KEEP_WIDTH = ((S_DATA_WIDTH+7)/8),
     // Width of output AXI stream interface in bits
     parameter M_DATA_WIDTH = 8,
     // Propagate tkeep signal on output interface
     // If disabled, tkeep assumed to be 1'b1
     parameter M_KEEP_ENABLE = (M_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on output interface
-    parameter M_KEEP_WIDTH = (M_DATA_WIDTH/8),
+    parameter M_KEEP_WIDTH = ((M_DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_arb_mux.v b/lib/axis/rtl/axis_arb_mux.v
index 83bdd4f6bec5bb77bfccec8637cccddde1bc9816..43a588f4108245153b4e5761d84ce0173a07f99d 100644
--- a/lib/axis/rtl/axis_arb_mux.v
+++ b/lib/axis/rtl/axis_arb_mux.v
@@ -40,7 +40,7 @@ module axis_arb_mux #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_arb_mux_wrap.py b/lib/axis/rtl/axis_arb_mux_wrap.py
index 091d36612846bd21fe8087c8f48b6b6e03a81e8e..076d8a1a9620caef3a7f646a437feea691f57633 100755
--- a/lib/axis/rtl/axis_arb_mux_wrap.py
+++ b/lib/axis/rtl/axis_arb_mux_wrap.py
@@ -75,7 +75,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_async_fifo.v b/lib/axis/rtl/axis_async_fifo.v
index 2d89f2da4810cd8147e9e60080539275030c0a70..4f1e3601e8b41778fae165d2c8902263777108b4 100644
--- a/lib/axis/rtl/axis_async_fifo.v
+++ b/lib/axis/rtl/axis_async_fifo.v
@@ -43,7 +43,7 @@ module axis_async_fifo #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_async_fifo_adapter.v b/lib/axis/rtl/axis_async_fifo_adapter.v
index 76a293a695a8eaf4c9ba0c14a7a2f0f9cc1a694f..848fcf501fc27d87d6e71541fed8e24c8c832553 100644
--- a/lib/axis/rtl/axis_async_fifo_adapter.v
+++ b/lib/axis/rtl/axis_async_fifo_adapter.v
@@ -43,14 +43,14 @@ module axis_async_fifo_adapter #
     // If disabled, tkeep assumed to be 1'b1
     parameter S_KEEP_ENABLE = (S_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on input interface
-    parameter S_KEEP_WIDTH = (S_DATA_WIDTH/8),
+    parameter S_KEEP_WIDTH = ((S_DATA_WIDTH+7)/8),
     // Width of output AXI stream interface in bits
     parameter M_DATA_WIDTH = 8,
     // Propagate tkeep signal on output interface
     // If disabled, tkeep assumed to be 1'b1
     parameter M_KEEP_ENABLE = (M_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on output interface
-    parameter M_KEEP_WIDTH = (M_DATA_WIDTH/8),
+    parameter M_KEEP_WIDTH = ((M_DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_broadcast.v b/lib/axis/rtl/axis_broadcast.v
index 16137ea73be3fb9535ec6fe024f116ed41841480..34fafd2665a599cdc7024a982fd576e85b31c800 100644
--- a/lib/axis/rtl/axis_broadcast.v
+++ b/lib/axis/rtl/axis_broadcast.v
@@ -40,7 +40,7 @@ module axis_broadcast #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_broadcast_wrap.py b/lib/axis/rtl/axis_broadcast_wrap.py
index e755a20ea540a1026f1bc748687e0b5f0f6afbe8..acd31571c2e2b80b28693d12e602267d489627ca 100755
--- a/lib/axis/rtl/axis_broadcast_wrap.py
+++ b/lib/axis/rtl/axis_broadcast_wrap.py
@@ -75,7 +75,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_crosspoint.v b/lib/axis/rtl/axis_crosspoint.v
index c6574d2699dd1fe0d99778a59e76a2b872825a93..7fde4ab4ed6353be97bbda0727c65961821f28fe 100644
--- a/lib/axis/rtl/axis_crosspoint.v
+++ b/lib/axis/rtl/axis_crosspoint.v
@@ -42,7 +42,7 @@ module axis_crosspoint #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_crosspoint_wrap.py b/lib/axis/rtl/axis_crosspoint_wrap.py
index f7396532b2c3ad5d664726f232cb165395f341c4..0646ec8a8132571b4b8d7397c25cde0e64cd88e1 100755
--- a/lib/axis/rtl/axis_crosspoint_wrap.py
+++ b/lib/axis/rtl/axis_crosspoint_wrap.py
@@ -81,7 +81,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_demux.v b/lib/axis/rtl/axis_demux.v
index 796799e552355cd67f5cad94fd45eaef93fe142f..7edd757f509a5711b9469cf90fc33d29fee29af2 100644
--- a/lib/axis/rtl/axis_demux.v
+++ b/lib/axis/rtl/axis_demux.v
@@ -40,7 +40,7 @@ module axis_demux #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_demux_wrap.py b/lib/axis/rtl/axis_demux_wrap.py
index 344c8bcb053654b1251c7559df08a6c4aea3f702..bc73117658dcb07a26b680127f9b1e383f1ccff8 100755
--- a/lib/axis/rtl/axis_demux_wrap.py
+++ b/lib/axis/rtl/axis_demux_wrap.py
@@ -75,7 +75,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_fifo.v b/lib/axis/rtl/axis_fifo.v
index bf3be6e199c07df0d32ca322d8184b76449cfbfe..c93147461554736a903d22b6b9482daaf5dbb346 100644
--- a/lib/axis/rtl/axis_fifo.v
+++ b/lib/axis/rtl/axis_fifo.v
@@ -43,7 +43,7 @@ module axis_fifo #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_fifo_adapter.v b/lib/axis/rtl/axis_fifo_adapter.v
index 7b43b00709c623e48ada74ff5c04cf4812734f91..095d6ce7463d5328b895ebeb71fb73298a350c9a 100644
--- a/lib/axis/rtl/axis_fifo_adapter.v
+++ b/lib/axis/rtl/axis_fifo_adapter.v
@@ -43,14 +43,14 @@ module axis_fifo_adapter #
     // If disabled, tkeep assumed to be 1'b1
     parameter S_KEEP_ENABLE = (S_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on input interface
-    parameter S_KEEP_WIDTH = (S_DATA_WIDTH/8),
+    parameter S_KEEP_WIDTH = ((S_DATA_WIDTH+7)/8),
     // Width of output AXI stream interface in bits
     parameter M_DATA_WIDTH = 8,
     // Propagate tkeep signal on output interface
     // If disabled, tkeep assumed to be 1'b1
     parameter M_KEEP_ENABLE = (M_DATA_WIDTH>8),
     // tkeep signal width (words per cycle) on output interface
-    parameter M_KEEP_WIDTH = (M_DATA_WIDTH/8),
+    parameter M_KEEP_WIDTH = ((M_DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_frame_len.v b/lib/axis/rtl/axis_frame_len.v
index a1f75e5d77708caa37a6c5deb8ed42b4f0385d49..49ce097a1c24903344f483075721e6c84ba905e2 100644
--- a/lib/axis/rtl/axis_frame_len.v
+++ b/lib/axis/rtl/axis_frame_len.v
@@ -39,7 +39,7 @@ module axis_frame_len #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Width of length counter
     parameter LEN_WIDTH = 16
 )
diff --git a/lib/axis/rtl/axis_frame_length_adjust.v b/lib/axis/rtl/axis_frame_length_adjust.v
index 42550ad008c245e67bc642d5faa9d874fde8c122..92fb2ec1187a0afc2184345c6b89caaa3d292b53 100644
--- a/lib/axis/rtl/axis_frame_length_adjust.v
+++ b/lib/axis/rtl/axis_frame_length_adjust.v
@@ -39,7 +39,7 @@ module axis_frame_length_adjust #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_frame_length_adjust_fifo.v b/lib/axis/rtl/axis_frame_length_adjust_fifo.v
index a580cee9dba80c11d3859dc4b8481cfd74761f8a..f2bc4a06564dc7014f615af29b7d7370d14f779d 100644
--- a/lib/axis/rtl/axis_frame_length_adjust_fifo.v
+++ b/lib/axis/rtl/axis_frame_length_adjust_fifo.v
@@ -39,7 +39,7 @@ module axis_frame_length_adjust_fifo #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_mux.v b/lib/axis/rtl/axis_mux.v
index ba97d939097b4626ef6fef50d75b93c3eafddd72..ab021d3ef74fde89d078764d9f45e5f2c643b469 100644
--- a/lib/axis/rtl/axis_mux.v
+++ b/lib/axis/rtl/axis_mux.v
@@ -40,7 +40,7 @@ module axis_mux #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_mux_wrap.py b/lib/axis/rtl/axis_mux_wrap.py
index bc1b8325b8cf5d9dcf5d9db9722a499b03bd9c9a..00698cd0d94c851bfc40c4610f53f7ba796a2a39 100755
--- a/lib/axis/rtl/axis_mux_wrap.py
+++ b/lib/axis/rtl/axis_mux_wrap.py
@@ -75,7 +75,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/rtl/axis_pipeline_fifo.v b/lib/axis/rtl/axis_pipeline_fifo.v
index 0da8145735fd41ef37996e8feb7c56f1cf28967d..4c194bf7eb31e44aebdb89500439040430a196b7 100644
--- a/lib/axis/rtl/axis_pipeline_fifo.v
+++ b/lib/axis/rtl/axis_pipeline_fifo.v
@@ -38,7 +38,7 @@ module axis_pipeline_fifo #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_pipeline_register.v b/lib/axis/rtl/axis_pipeline_register.v
index 1e22ffcc9f082eedc89c92baf641470b170f3713..9715dca4b687165a70d1b8c3525232c930d7d37f 100644
--- a/lib/axis/rtl/axis_pipeline_register.v
+++ b/lib/axis/rtl/axis_pipeline_register.v
@@ -38,7 +38,7 @@ module axis_pipeline_register #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_ram_switch.v b/lib/axis/rtl/axis_ram_switch.v
index ed831fe28435359750f45f5df7f714de42d7ae59..ac31dcca2cd24974113432458ecd075ae31df3a0 100644
--- a/lib/axis/rtl/axis_ram_switch.v
+++ b/lib/axis/rtl/axis_ram_switch.v
@@ -52,13 +52,13 @@ module axis_ram_switch #
     // Propagate tkeep signal
     parameter S_KEEP_ENABLE = (S_DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter S_KEEP_WIDTH = (S_DATA_WIDTH/8),
+    parameter S_KEEP_WIDTH = ((S_DATA_WIDTH+7)/8),
     // Width of output AXI stream interfaces in bits
     parameter M_DATA_WIDTH = 8,
     // Propagate tkeep signal
     parameter M_KEEP_ENABLE = (M_DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter M_KEEP_WIDTH = (M_DATA_WIDTH/8),
+    parameter M_KEEP_WIDTH = ((M_DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_ram_switch_wrap.py b/lib/axis/rtl/axis_ram_switch_wrap.py
index 45adfed5bf389e29f435c06185dd2f109953f5a1..1dbd223a8d1c6ae31eeb9744a08912b6391aa96c 100755
--- a/lib/axis/rtl/axis_ram_switch_wrap.py
+++ b/lib/axis/rtl/axis_ram_switch_wrap.py
@@ -91,13 +91,13 @@ module {{name}} #
     // Propagate tkeep signal
     parameter S_KEEP_ENABLE = (S_DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter S_KEEP_WIDTH = (S_DATA_WIDTH/8),
+    parameter S_KEEP_WIDTH = ((S_DATA_WIDTH+7)/8),
     // Width of output AXI stream interfaces in bits
     parameter M_DATA_WIDTH = 8,
     // Propagate tkeep signal
     parameter M_KEEP_ENABLE = (M_DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter M_KEEP_WIDTH = (M_DATA_WIDTH/8),
+    parameter M_KEEP_WIDTH = ((M_DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_rate_limit.v b/lib/axis/rtl/axis_rate_limit.v
index 3f91b4cbcb358cae3b07cbd1e5afd7999dddf461..24ec9546a0b45e2ece148cb763c7ece05b9cffee 100644
--- a/lib/axis/rtl/axis_rate_limit.v
+++ b/lib/axis/rtl/axis_rate_limit.v
@@ -39,7 +39,7 @@ module axis_rate_limit #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_register.v b/lib/axis/rtl/axis_register.v
index fbd245c1f66955a04755f5057e86ca0f42ff622a..7e8f109310f95da8414ed3373dc35eefee2af4b3 100644
--- a/lib/axis/rtl/axis_register.v
+++ b/lib/axis/rtl/axis_register.v
@@ -38,7 +38,7 @@ module axis_register #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_srl_fifo.v b/lib/axis/rtl/axis_srl_fifo.v
index e0cc4164a14d0dff2b1944627ecf55d512122895..7eabf8f45096245628c6ce4765e033912cf6889c 100644
--- a/lib/axis/rtl/axis_srl_fifo.v
+++ b/lib/axis/rtl/axis_srl_fifo.v
@@ -38,7 +38,7 @@ module axis_srl_fifo #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_srl_register.v b/lib/axis/rtl/axis_srl_register.v
index 4bfaeaafc066bb17322731b7cfeb95cb2b657730..f0e9efee28910e3f389832cfb1a10f72142b29db 100644
--- a/lib/axis/rtl/axis_srl_register.v
+++ b/lib/axis/rtl/axis_srl_register.v
@@ -38,7 +38,7 @@ module axis_srl_register #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tlast signal
     parameter LAST_ENABLE = 1,
     // Propagate tid signal
diff --git a/lib/axis/rtl/axis_stat_counter.v b/lib/axis/rtl/axis_stat_counter.v
index c59c441beda9fe24413cf2e1e04cf1a90413a419..cc04760839aaa472a51306335ca7b151c59d451f 100644
--- a/lib/axis/rtl/axis_stat_counter.v
+++ b/lib/axis/rtl/axis_stat_counter.v
@@ -39,7 +39,7 @@ module axis_stat_counter #
     // If disabled, tkeep assumed to be 1'b1
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Prepend data with tag
     parameter TAG_ENABLE = 1,
     // Tag field width
diff --git a/lib/axis/rtl/axis_switch.v b/lib/axis/rtl/axis_switch.v
index c949b700b618e60744512075b01042628bb026e4..d791294bbffe5f91ce054b6e365f2f42dacf002e 100644
--- a/lib/axis/rtl/axis_switch.v
+++ b/lib/axis/rtl/axis_switch.v
@@ -42,7 +42,7 @@ module axis_switch #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_switch_wrap.py b/lib/axis/rtl/axis_switch_wrap.py
index 0af37e02acbfd44393c59679191b1fa78383afd4..e3e13dc393a913e1305f3ec22077935e8eb35b43 100755
--- a/lib/axis/rtl/axis_switch_wrap.py
+++ b/lib/axis/rtl/axis_switch_wrap.py
@@ -81,7 +81,7 @@ module {{name}} #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // input tid signal width
diff --git a/lib/axis/rtl/axis_tap.v b/lib/axis/rtl/axis_tap.v
index a9c7e19e1fb19f21b226f3a55170f613034a0781..13966adcb0db5bf4a613bee52fccef8bffa725e1 100644
--- a/lib/axis/rtl/axis_tap.v
+++ b/lib/axis/rtl/axis_tap.v
@@ -38,7 +38,7 @@ module axis_tap #
     // Propagate tkeep signal
     parameter KEEP_ENABLE = (DATA_WIDTH>8),
     // tkeep signal width (words per cycle)
-    parameter KEEP_WIDTH = (DATA_WIDTH/8),
+    parameter KEEP_WIDTH = ((DATA_WIDTH+7)/8),
     // Propagate tid signal
     parameter ID_ENABLE = 0,
     // tid signal width
diff --git a/lib/axis/tb/axis_adapter/Makefile b/lib/axis/tb/axis_adapter/Makefile
index af559301a0111272bcbb019702ef979a78e5e765..621657d76c2508b7b9403c664847a0086ca77204 100644
--- a/lib/axis/tb/axis_adapter/Makefile
+++ b/lib/axis/tb/axis_adapter/Makefile
@@ -34,10 +34,10 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_S_DATA_WIDTH ?= 8
 export PARAM_S_KEEP_ENABLE ?= $(shell expr $(PARAM_S_DATA_WIDTH) \> 8 )
-export PARAM_S_KEEP_WIDTH ?= $(shell expr $(PARAM_S_DATA_WIDTH) / 8 )
+export PARAM_S_KEEP_WIDTH ?= $(shell expr \( $(PARAM_S_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_M_DATA_WIDTH ?= 8
 export PARAM_M_KEEP_ENABLE ?= $(shell expr $(PARAM_M_DATA_WIDTH) \> 8 )
-export PARAM_M_KEEP_WIDTH ?= $(shell expr $(PARAM_M_DATA_WIDTH) / 8 )
+export PARAM_M_KEEP_WIDTH ?= $(shell expr \( $(PARAM_M_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_adapter/test_axis_adapter.py b/lib/axis/tb/axis_adapter/test_axis_adapter.py
index addc7274575cf45a2a6e3f6c1052dacac03e367f..5997d61ef9c13172d55da2cba0866b11dab3ec6e 100644
--- a/lib/axis/tb/axis_adapter/test_axis_adapter.py
+++ b/lib/axis/tb/axis_adapter/test_axis_adapter.py
@@ -227,10 +227,10 @@ def test_axis_register(request, s_data_width, m_data_width):
 
     parameters['S_DATA_WIDTH'] = s_data_width
     parameters['S_KEEP_ENABLE'] = int(parameters['S_DATA_WIDTH'] > 8)
-    parameters['S_KEEP_WIDTH'] = parameters['S_DATA_WIDTH'] // 8
+    parameters['S_KEEP_WIDTH'] = (parameters['S_DATA_WIDTH'] + 7) // 8
     parameters['M_DATA_WIDTH'] = m_data_width
     parameters['M_KEEP_ENABLE'] = int(parameters['M_DATA_WIDTH'] > 8)
-    parameters['M_KEEP_WIDTH'] = parameters['M_DATA_WIDTH'] // 8
+    parameters['M_KEEP_WIDTH'] = (parameters['M_DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_arb_mux/Makefile b/lib/axis/tb/axis_arb_mux/Makefile
index 962af950fff112fe5abc2a58d73bb66fd484e15a..936f22b1c00610f811cc6ef63dee03d6051cb232 100644
--- a/lib/axis/tb/axis_arb_mux/Makefile
+++ b/lib/axis/tb/axis_arb_mux/Makefile
@@ -40,7 +40,7 @@ VERILOG_SOURCES += ../../rtl/priority_encoder.v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_S_ID_WIDTH ?= 8
 export PARAM_M_ID_WIDTH ?= $(shell python -c "print($(PARAM_S_ID_WIDTH) + ($(PORTS)-1).bit_length())")
diff --git a/lib/axis/tb/axis_arb_mux/test_axis_arb_mux.py b/lib/axis/tb/axis_arb_mux/test_axis_arb_mux.py
index ec23a41c7a80eb31c8a4181063409e8b596d7b18..187964b326fc987db0b8d7b890a80e2349bf0478 100644
--- a/lib/axis/tb/axis_arb_mux/test_axis_arb_mux.py
+++ b/lib/axis/tb/axis_arb_mux/test_axis_arb_mux.py
@@ -344,7 +344,7 @@ def test_axis_arb_mux(request, ports, data_width, round_robin):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['S_ID_WIDTH'] = 8
     parameters['M_ID_WIDTH'] = parameters['S_ID_WIDTH'] + (ports-1).bit_length()
diff --git a/lib/axis/tb/axis_async_fifo/Makefile b/lib/axis/tb/axis_async_fifo/Makefile
index 75efe9944f8e5eeaf3560c0d5d4e468fd40e45ee..f301f8b4546ecd68f56a484d20e5ed0cefed5ff2 100644
--- a/lib/axis/tb/axis_async_fifo/Makefile
+++ b/lib/axis/tb/axis_async_fifo/Makefile
@@ -35,7 +35,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 export PARAM_DEPTH ?= 1024
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_async_fifo/test_axis_async_fifo.py b/lib/axis/tb/axis_async_fifo/test_axis_async_fifo.py
index 223a7e36c062dec830ce95a1fab1b2745e9b5979..fb3026d8b71e921afb2921e4c71950c7a3623605 100644
--- a/lib/axis/tb/axis_async_fifo/test_axis_async_fifo.py
+++ b/lib/axis/tb/axis_async_fifo/test_axis_async_fifo.py
@@ -539,7 +539,7 @@ def test_axis_async_fifo(request, data_width, frame_fifo, drop_oversize_frame, d
     parameters['DEPTH'] = 1024
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_async_fifo_adapter/Makefile b/lib/axis/tb/axis_async_fifo_adapter/Makefile
index 1471541eb47aba5fe4a200418c9026b27e551bcf..c193ebb0d90aa0b72acdcfdaad2215ca9933331d 100644
--- a/lib/axis/tb/axis_async_fifo_adapter/Makefile
+++ b/lib/axis/tb/axis_async_fifo_adapter/Makefile
@@ -37,10 +37,10 @@ VERILOG_SOURCES += ../../rtl/axis_adapter.v
 export PARAM_DEPTH ?= 1024
 export PARAM_S_DATA_WIDTH ?= 8
 export PARAM_S_KEEP_ENABLE ?= $(shell expr $(PARAM_S_DATA_WIDTH) \> 8 )
-export PARAM_S_KEEP_WIDTH ?= $(shell expr $(PARAM_S_DATA_WIDTH) / 8 )
+export PARAM_S_KEEP_WIDTH ?= $(shell expr \( $(PARAM_S_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_M_DATA_WIDTH ?= 8
 export PARAM_M_KEEP_ENABLE ?= $(shell expr $(PARAM_M_DATA_WIDTH) \> 8 )
-export PARAM_M_KEEP_WIDTH ?= $(shell expr $(PARAM_M_DATA_WIDTH) / 8 )
+export PARAM_M_KEEP_WIDTH ?= $(shell expr \( $(PARAM_M_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_async_fifo_adapter/test_axis_async_fifo_adapter.py b/lib/axis/tb/axis_async_fifo_adapter/test_axis_async_fifo_adapter.py
index 6ff2ac88debed9a7cee28ef5a76b59f7c48e5b36..bae15ef00be128fcb59251011e80a5bdaaef1c0f 100644
--- a/lib/axis/tb/axis_async_fifo_adapter/test_axis_async_fifo_adapter.py
+++ b/lib/axis/tb/axis_async_fifo_adapter/test_axis_async_fifo_adapter.py
@@ -536,10 +536,10 @@ def test_axis_async_fifo_adapter(request, s_data_width, m_data_width, frame_fifo
     parameters['DEPTH'] = 1024
     parameters['S_DATA_WIDTH'] = s_data_width
     parameters['S_KEEP_ENABLE'] = int(parameters['S_DATA_WIDTH'] > 8)
-    parameters['S_KEEP_WIDTH'] = parameters['S_DATA_WIDTH'] // 8
+    parameters['S_KEEP_WIDTH'] = (parameters['S_DATA_WIDTH'] + 7) // 8
     parameters['M_DATA_WIDTH'] = m_data_width
     parameters['M_KEEP_ENABLE'] = int(parameters['M_DATA_WIDTH'] > 8)
-    parameters['M_KEEP_WIDTH'] = parameters['M_DATA_WIDTH'] // 8
+    parameters['M_KEEP_WIDTH'] = (parameters['M_DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_broadcast/Makefile b/lib/axis/tb/axis_broadcast/Makefile
index 8bd2282a3c509ea4a699b40b95f463a00d2029bc..7b66215cdaec9d09ee8773d74999fbe088b5938c 100644
--- a/lib/axis/tb/axis_broadcast/Makefile
+++ b/lib/axis/tb/axis_broadcast/Makefile
@@ -38,7 +38,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_broadcast/test_axis_broadcast.py b/lib/axis/tb/axis_broadcast/test_axis_broadcast.py
index 8bc7ac9a9fb5f2f550cc1c72f0fbe0286f54ce30..caca51885f940f744c345f7400c9a47465342e23 100644
--- a/lib/axis/tb/axis_broadcast/test_axis_broadcast.py
+++ b/lib/axis/tb/axis_broadcast/test_axis_broadcast.py
@@ -170,7 +170,7 @@ def test_axis_broadcast(request, ports, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_demux/Makefile b/lib/axis/tb/axis_demux/Makefile
index 6fd45472c44729026641fdf1970bca311c490cc0..8822019d2dd379998a9051bff532bd608387d052 100644
--- a/lib/axis/tb/axis_demux/Makefile
+++ b/lib/axis/tb/axis_demux/Makefile
@@ -38,7 +38,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
 export PARAM_DEST_ENABLE ?= 1
diff --git a/lib/axis/tb/axis_demux/test_axis_demux.py b/lib/axis/tb/axis_demux/test_axis_demux.py
index 832b02118e1c79f57be7531f8e19c8bf024480cf..bce6b471c5deafd857df027eb9597b5347560972 100644
--- a/lib/axis/tb/axis_demux/test_axis_demux.py
+++ b/lib/axis/tb/axis_demux/test_axis_demux.py
@@ -186,7 +186,7 @@ def test_axis_demux(request, ports, data_width, tdest_route):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_fifo/Makefile b/lib/axis/tb/axis_fifo/Makefile
index 9073da6cc4f221f2a5c4d9b740c3f92c5690ca0d..fabad14d26cf62119028ddd7dfe49acc37249b13 100644
--- a/lib/axis/tb/axis_fifo/Makefile
+++ b/lib/axis/tb/axis_fifo/Makefile
@@ -35,7 +35,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 export PARAM_DEPTH ?= 1024
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_fifo/test_axis_fifo.py b/lib/axis/tb/axis_fifo/test_axis_fifo.py
index 61b5351dea5b856c2fb2f598f8d0c9bfbc9e132a..db13ca87bb701eda6716e98057601670ec0ece02 100644
--- a/lib/axis/tb/axis_fifo/test_axis_fifo.py
+++ b/lib/axis/tb/axis_fifo/test_axis_fifo.py
@@ -329,7 +329,7 @@ def test_axis_fifo(request, data_width, frame_fifo, drop_oversize_frame, drop_ba
     parameters['DEPTH'] = 1024
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_fifo_adapter/Makefile b/lib/axis/tb/axis_fifo_adapter/Makefile
index 786c51c5329af7bc4ad92d3dfd4e4cad0c39eb9a..86e3f2f3c2e41f4da73d6164dfbad9af31f7d615 100644
--- a/lib/axis/tb/axis_fifo_adapter/Makefile
+++ b/lib/axis/tb/axis_fifo_adapter/Makefile
@@ -37,10 +37,10 @@ VERILOG_SOURCES += ../../rtl/axis_adapter.v
 export PARAM_DEPTH ?= 1024
 export PARAM_S_DATA_WIDTH ?= 8
 export PARAM_S_KEEP_ENABLE ?= $(shell expr $(PARAM_S_DATA_WIDTH) \> 8 )
-export PARAM_S_KEEP_WIDTH ?= $(shell expr $(PARAM_S_DATA_WIDTH) / 8 )
+export PARAM_S_KEEP_WIDTH ?= $(shell expr \( $(PARAM_S_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_M_DATA_WIDTH ?= 8
 export PARAM_M_KEEP_ENABLE ?= $(shell expr $(PARAM_M_DATA_WIDTH) \> 8 )
-export PARAM_M_KEEP_WIDTH ?= $(shell expr $(PARAM_M_DATA_WIDTH) / 8 )
+export PARAM_M_KEEP_WIDTH ?= $(shell expr \( $(PARAM_M_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_fifo_adapter/test_axis_fifo_adapter.py b/lib/axis/tb/axis_fifo_adapter/test_axis_fifo_adapter.py
index 6ff21ca98c249f44bdae8a702ed9e4e506d2aa68..bc3fc76ecb38002155506c7c9655bfc2d82fbfc8 100644
--- a/lib/axis/tb/axis_fifo_adapter/test_axis_fifo_adapter.py
+++ b/lib/axis/tb/axis_fifo_adapter/test_axis_fifo_adapter.py
@@ -332,10 +332,10 @@ def test_axis_fifo_adapter(request, s_data_width, m_data_width, frame_fifo, drop
     parameters['DEPTH'] = 1024
     parameters['S_DATA_WIDTH'] = s_data_width
     parameters['S_KEEP_ENABLE'] = int(parameters['S_DATA_WIDTH'] > 8)
-    parameters['S_KEEP_WIDTH'] = parameters['S_DATA_WIDTH'] // 8
+    parameters['S_KEEP_WIDTH'] = (parameters['S_DATA_WIDTH'] + 7) // 8
     parameters['M_DATA_WIDTH'] = m_data_width
     parameters['M_KEEP_ENABLE'] = int(parameters['M_DATA_WIDTH'] > 8)
-    parameters['M_KEEP_WIDTH'] = parameters['M_DATA_WIDTH'] // 8
+    parameters['M_KEEP_WIDTH'] = (parameters['M_DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_frame_length_adjust/Makefile b/lib/axis/tb/axis_frame_length_adjust/Makefile
index 0cec922d893316b004bc694b25a88e81ca753404..abe6052c376d3de472816fcccd72ad8c20ec061b 100644
--- a/lib/axis/tb/axis_frame_length_adjust/Makefile
+++ b/lib/axis/tb/axis_frame_length_adjust/Makefile
@@ -34,7 +34,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
 export PARAM_DEST_ENABLE ?= 1
diff --git a/lib/axis/tb/axis_frame_length_adjust/test_axis_frame_length_adjust.py b/lib/axis/tb/axis_frame_length_adjust/test_axis_frame_length_adjust.py
index 5817f5c0d2cfb86593dec104ba1ec8e3a8554339..260c9fe524887189e7b93c98f23102aa33d23b87 100644
--- a/lib/axis/tb/axis_frame_length_adjust/test_axis_frame_length_adjust.py
+++ b/lib/axis/tb/axis_frame_length_adjust/test_axis_frame_length_adjust.py
@@ -214,7 +214,7 @@ def test_axis_frame_length_adjust(request, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_frame_length_adjust_fifo/Makefile b/lib/axis/tb/axis_frame_length_adjust_fifo/Makefile
index ed886c2a2494e2a42734b4183443825fcd18ac70..59b5d822c84095019f7d22a89fc48b443b10a672 100644
--- a/lib/axis/tb/axis_frame_length_adjust_fifo/Makefile
+++ b/lib/axis/tb/axis_frame_length_adjust_fifo/Makefile
@@ -36,7 +36,7 @@ VERILOG_SOURCES += ../../rtl/axis_fifo.v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
 export PARAM_DEST_ENABLE ?= 1
diff --git a/lib/axis/tb/axis_frame_length_adjust_fifo/test_axis_frame_length_adjust_fifo.py b/lib/axis/tb/axis_frame_length_adjust_fifo/test_axis_frame_length_adjust_fifo.py
index b3403cd00cd320f4664ec53fd91d73746bdb4484..0ad01cf862fe4ebeb1c6fd502672db7650cc4fcd 100644
--- a/lib/axis/tb/axis_frame_length_adjust_fifo/test_axis_frame_length_adjust_fifo.py
+++ b/lib/axis/tb/axis_frame_length_adjust_fifo/test_axis_frame_length_adjust_fifo.py
@@ -306,7 +306,7 @@ def test_axis_frame_length_adjust_fifo(request, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_mux/Makefile b/lib/axis/tb/axis_mux/Makefile
index 5323a4d3f44dac3b2ea64797cf0c822e7b4d08d1..247a0784c3aa2d1137e073d02a849741b407ff6f 100644
--- a/lib/axis/tb/axis_mux/Makefile
+++ b/lib/axis/tb/axis_mux/Makefile
@@ -38,7 +38,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
 export PARAM_DEST_ENABLE ?= 1
diff --git a/lib/axis/tb/axis_mux/test_axis_mux.py b/lib/axis/tb/axis_mux/test_axis_mux.py
index 217b03ce6d542494297326f6c29d1a4027c8ab92..d722acf11006385c59e7d51acc8d395e3eb005c0 100644
--- a/lib/axis/tb/axis_mux/test_axis_mux.py
+++ b/lib/axis/tb/axis_mux/test_axis_mux.py
@@ -206,7 +206,7 @@ def test_axis_mux(request, ports, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
     parameters['DEST_ENABLE'] = 1
diff --git a/lib/axis/tb/axis_pipeline_fifo/Makefile b/lib/axis/tb/axis_pipeline_fifo/Makefile
index cfb36c0b3895d06d4438a31a1d6608c76a276e0a..a356a55e1374bd7b4ff14070649d12e2d279f921 100644
--- a/lib/axis/tb/axis_pipeline_fifo/Makefile
+++ b/lib/axis/tb/axis_pipeline_fifo/Makefile
@@ -34,7 +34,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_pipeline_fifo/test_axis_pipeline_fifo.py b/lib/axis/tb/axis_pipeline_fifo/test_axis_pipeline_fifo.py
index 830b0337662301422055c3e3175f7514fe81b2d2..575598579b985638ec36de36f7d400605a107d0f 100644
--- a/lib/axis/tb/axis_pipeline_fifo/test_axis_pipeline_fifo.py
+++ b/lib/axis/tb/axis_pipeline_fifo/test_axis_pipeline_fifo.py
@@ -317,7 +317,7 @@ def test_axis_pipeline_fifo(request, length, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_pipeline_register/Makefile b/lib/axis/tb/axis_pipeline_register/Makefile
index b635f72897d00c146cfdc2b6a603e8d24a74f8f2..13e6e6cf5ed9486d67acce90b1efb96829b6e9d5 100644
--- a/lib/axis/tb/axis_pipeline_register/Makefile
+++ b/lib/axis/tb/axis_pipeline_register/Makefile
@@ -35,7 +35,7 @@ VERILOG_SOURCES += ../../rtl/axis_register.v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_pipeline_register/test_axis_pipeline_register.py b/lib/axis/tb/axis_pipeline_register/test_axis_pipeline_register.py
index a971e8e19d527b7019b5b1af8d3315420f9db349..2ea13bf52487db94fee3cdf7ab551a81b1cc358f 100644
--- a/lib/axis/tb/axis_pipeline_register/test_axis_pipeline_register.py
+++ b/lib/axis/tb/axis_pipeline_register/test_axis_pipeline_register.py
@@ -229,7 +229,7 @@ def test_axis_pipeline_register(request, length, data_width, reg_type):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_ram_switch/Makefile b/lib/axis/tb/axis_ram_switch/Makefile
index adfea859f019261fbcd2b520c947fcfa7cbb6e3c..6b07dabe71db33c95e771b41bd736f0fac973bb9 100644
--- a/lib/axis/tb/axis_ram_switch/Makefile
+++ b/lib/axis/tb/axis_ram_switch/Makefile
@@ -45,10 +45,10 @@ export PARAM_CMD_FIFO_DEPTH ?= 32
 export PARAM_SPEEDUP ?= 0
 export PARAM_S_DATA_WIDTH ?= 8
 export PARAM_S_KEEP_ENABLE ?= $(shell expr $(PARAM_S_DATA_WIDTH) \> 8 )
-export PARAM_S_KEEP_WIDTH ?= $(shell expr $(PARAM_S_DATA_WIDTH) / 8 )
+export PARAM_S_KEEP_WIDTH ?= $(shell expr \( $(PARAM_S_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_M_DATA_WIDTH ?= 8
 export PARAM_M_KEEP_ENABLE ?= $(shell expr $(PARAM_M_DATA_WIDTH) \> 8 )
-export PARAM_M_KEEP_WIDTH ?= $(shell expr $(PARAM_M_DATA_WIDTH) / 8 )
+export PARAM_M_KEEP_WIDTH ?= $(shell expr \( $(PARAM_M_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_S_ID_WIDTH ?= 16
 export PARAM_M_ID_WIDTH ?= $(shell python -c "print($(PARAM_S_ID_WIDTH) + ($(S_COUNT)-1).bit_length())")
diff --git a/lib/axis/tb/axis_ram_switch/test_axis_ram_switch.py b/lib/axis/tb/axis_ram_switch/test_axis_ram_switch.py
index 422fcd843e1f936bc94e9244bf6e6145a0292717..6bc3fd1ee52909b848369a3f6dcd21d0e16021da 100644
--- a/lib/axis/tb/axis_ram_switch/test_axis_ram_switch.py
+++ b/lib/axis/tb/axis_ram_switch/test_axis_ram_switch.py
@@ -356,10 +356,10 @@ def test_axis_ram_switch(request, s_count, m_count, s_data_width, m_data_width):
     parameters['SPEEDUP'] = 0
     parameters['S_DATA_WIDTH'] = s_data_width
     parameters['S_KEEP_ENABLE'] = int(parameters['S_DATA_WIDTH'] > 8)
-    parameters['S_KEEP_WIDTH'] = parameters['S_DATA_WIDTH'] // 8
+    parameters['S_KEEP_WIDTH'] = (parameters['S_DATA_WIDTH'] + 7) // 8
     parameters['M_DATA_WIDTH'] = m_data_width
     parameters['M_KEEP_ENABLE'] = int(parameters['M_DATA_WIDTH'] > 8)
-    parameters['M_KEEP_WIDTH'] = parameters['M_DATA_WIDTH'] // 8
+    parameters['M_KEEP_WIDTH'] = (parameters['M_DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['S_ID_WIDTH'] = 16
     parameters['M_ID_WIDTH'] = parameters['S_ID_WIDTH'] + (s_count-1).bit_length()
diff --git a/lib/axis/tb/axis_rate_limit/Makefile b/lib/axis/tb/axis_rate_limit/Makefile
index 4da3e0bb0de9ded490c7ead775ed8c1c1654381f..002d611ce06fc93a36e73e63d6e4376655fe304d 100644
--- a/lib/axis/tb/axis_rate_limit/Makefile
+++ b/lib/axis/tb/axis_rate_limit/Makefile
@@ -34,7 +34,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_rate_limit/test_axis_rate_limit.py b/lib/axis/tb/axis_rate_limit/test_axis_rate_limit.py
index 170419df2affda23fd4a45b0b6e08815ac04c8ae..f54828e7c85d6ac2f16b2ebbea36fc1f347b711c 100644
--- a/lib/axis/tb/axis_rate_limit/test_axis_rate_limit.py
+++ b/lib/axis/tb/axis_rate_limit/test_axis_rate_limit.py
@@ -187,7 +187,7 @@ def test_axis_rate_limit(request, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_register/Makefile b/lib/axis/tb/axis_register/Makefile
index 20747961b54981ad45cf02f0af9b658a16e48dde..0a2e2e9de46d8958cadf5780917fe335fc51c9a7 100644
--- a/lib/axis/tb/axis_register/Makefile
+++ b/lib/axis/tb/axis_register/Makefile
@@ -34,7 +34,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_register/test_axis_register.py b/lib/axis/tb/axis_register/test_axis_register.py
index bd9e3e794cb3114a942d8de953a038452f961332..55e4c7864a6ecbd8276480571994c2cd1df3473d 100644
--- a/lib/axis/tb/axis_register/test_axis_register.py
+++ b/lib/axis/tb/axis_register/test_axis_register.py
@@ -227,7 +227,7 @@ def test_axis_register(request, data_width, reg_type):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_srl_fifo/Makefile b/lib/axis/tb/axis_srl_fifo/Makefile
index 35b77686b0c17afb1515f939ca35c8588a3b82e5..43b43716c7f12ff5b0029a195b8c53f010d2ee02 100644
--- a/lib/axis/tb/axis_srl_fifo/Makefile
+++ b/lib/axis/tb/axis_srl_fifo/Makefile
@@ -35,7 +35,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 export PARAM_DEPTH ?= 1024
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
 export PARAM_DEST_ENABLE ?= 1
diff --git a/lib/axis/tb/axis_srl_fifo/test_axis_srl_fifo.py b/lib/axis/tb/axis_srl_fifo/test_axis_srl_fifo.py
index e18fd8a88cf762035d035ccb41a9bebbc42355aa..0e7281a818b910594f7228f1ee5257a515ae0adc 100644
--- a/lib/axis/tb/axis_srl_fifo/test_axis_srl_fifo.py
+++ b/lib/axis/tb/axis_srl_fifo/test_axis_srl_fifo.py
@@ -317,7 +317,7 @@ def test_axis_srl_fifo(request, data_width):
     parameters['DEPTH'] = 1024
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_srl_register/Makefile b/lib/axis/tb/axis_srl_register/Makefile
index d1842025d76e84f49b14170f4243bc3d1e7a93ce..d7c66b7642f7e2fc7f669a1092b916c0a740744b 100644
--- a/lib/axis/tb/axis_srl_register/Makefile
+++ b/lib/axis/tb/axis_srl_register/Makefile
@@ -34,7 +34,7 @@ VERILOG_SOURCES += ../../rtl/$(DUT).v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_LAST_ENABLE ?= 1
 export PARAM_ID_ENABLE ?= 1
 export PARAM_ID_WIDTH ?= 8
diff --git a/lib/axis/tb/axis_srl_register/test_axis_srl_register.py b/lib/axis/tb/axis_srl_register/test_axis_srl_register.py
index 4dd1c0c37fd4f2bbb7f300d5149c7d03d56531ef..7be3ad87348db0d1206ef5303b5acaea75edc65c 100644
--- a/lib/axis/tb/axis_srl_register/test_axis_srl_register.py
+++ b/lib/axis/tb/axis_srl_register/test_axis_srl_register.py
@@ -226,7 +226,7 @@ def test_axis_srl_register(request, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['LAST_ENABLE'] = 1
     parameters['ID_ENABLE'] = 1
     parameters['ID_WIDTH'] = 8
diff --git a/lib/axis/tb/axis_switch/Makefile b/lib/axis/tb/axis_switch/Makefile
index 9cf5559934b5339837f0cc42b2ed4e27c42cf8b3..a59fb3dbeae404810b529073ded110253f4f64a7 100644
--- a/lib/axis/tb/axis_switch/Makefile
+++ b/lib/axis/tb/axis_switch/Makefile
@@ -42,7 +42,7 @@ VERILOG_SOURCES += ../../rtl/priority_encoder.v
 # module parameters
 export PARAM_DATA_WIDTH ?= 8
 export PARAM_KEEP_ENABLE ?= $(shell expr $(PARAM_DATA_WIDTH) \> 8 )
-export PARAM_KEEP_WIDTH ?= $(shell expr $(PARAM_DATA_WIDTH) / 8 )
+export PARAM_KEEP_WIDTH ?= $(shell expr \( $(PARAM_DATA_WIDTH) + 7 \) / 8 )
 export PARAM_ID_ENABLE ?= 1
 export PARAM_S_ID_WIDTH ?= 16
 export PARAM_M_ID_WIDTH ?= $(shell python -c "print($(PARAM_S_ID_WIDTH) + ($(S_COUNT)-1).bit_length())")
diff --git a/lib/axis/tb/axis_switch/test_axis_switch.py b/lib/axis/tb/axis_switch/test_axis_switch.py
index 9e250e3334ab54fb7809b11b001c944b42909f7a..c2da5a08e13c7dd0942f2905b026063fd088cee4 100644
--- a/lib/axis/tb/axis_switch/test_axis_switch.py
+++ b/lib/axis/tb/axis_switch/test_axis_switch.py
@@ -351,7 +351,7 @@ def test_axis_switch(request, s_count, m_count, data_width):
 
     parameters['DATA_WIDTH'] = data_width
     parameters['KEEP_ENABLE'] = int(parameters['DATA_WIDTH'] > 8)
-    parameters['KEEP_WIDTH'] = parameters['DATA_WIDTH'] // 8
+    parameters['KEEP_WIDTH'] = (parameters['DATA_WIDTH'] + 7) // 8
     parameters['ID_ENABLE'] = 1
     parameters['S_ID_WIDTH'] = 16
     parameters['M_ID_WIDTH'] = parameters['S_ID_WIDTH'] + (s_count-1).bit_length()
diff --git a/lib/axis/tox.ini b/lib/axis/tox.ini
index 2fc6307f2e5296b86bb91ba79f44bd3ccb3f5a6c..0fba1b4bdbc23dd51eadd93f0c5ec9d043e22611 100644
--- a/lib/axis/tox.ini
+++ b/lib/axis/tox.ini
@@ -1,21 +1,23 @@
 # tox configuration
 [tox]
-envlist = py39
+envlist = py3
 skipsdist = True
+minversion = 3.2.0
+requires = virtualenv >= 16.1
 
 [gh-actions]
 python =
-    3.9: py39
+    3.9: py3
 
 [testenv]
 deps =
-    pytest
-    pytest-xdist
-    pytest-split
-    cocotb
-    cocotb-test
-    cocotbext-axi
-    jinja2
+    pytest == 6.2.5
+    pytest-xdist == 2.4.0
+    pytest-split == 0.4.0
+    cocotb == 1.6.1
+    cocotb-test == 0.2.1
+    cocotbext-axi == 0.1.16
+    jinja2 == 3.0.3
 
 commands =
     pytest -n auto {posargs}