summaryrefslogtreecommitdiffhomepage
path: root/src/controller.v
diff options
context:
space:
mode:
authorPrivate Island Networks Inc <opensource@privateisland.tech>2026-06-30 14:34:45 -0400
committerPrivate Island Networks Inc <opensource@privateisland.tech>2026-06-30 14:34:45 -0400
commit7d8b0ec0dd703db060c527537bd9da7798cf86e6 (patch)
tree7476a02a9410dd884c3a763da2d8268f3ea84180 /src/controller.v
parent2d95906292d0cc91f3ec8aa20298c646b934a7ab (diff)
pkt_gen: create first pass skelton source file and changes to support packet generation
Diffstat (limited to 'src/controller.v')
-rw-r--r--src/controller.v8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/controller.v b/src/controller.v
index e30d461..922a9f0 100644
--- a/src/controller.v
+++ b/src/controller.v
@@ -48,6 +48,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
output reg pkt_filter_sel,
output reg mac_sel,
output reg mle_sel,
+ output reg pkt_gen_sel,
output reg hf_ptrs_sel,
output reg hf_tx_sel,
output reg hf_rx_sel,
@@ -341,6 +342,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
{MSG_MAC_ADDR[15:8],8'h??}: msg_response <= mem_d_i;
{MSG_MDIO_ADDR[15:8],8'h??}: msg_response <= mdio_d;
{MSG_MLE_ADDR[15:8],8'h??}: msg_response <= mem_d_i;
+ {MSG_PKT_GEN_ADDR[15:8],8'h??}: msg_response <= mem_d_i;
default: msg_response <= mem_d_i[15:0];
endcase
@@ -486,7 +488,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
mem_cmd <= 1'b0;
else if (cont_state == CONT_ST_IDLE && !rx_msg_captured)
mem_cmd <= 1'b0;
- else if (rx_msg_captured && msg_addr[15:8] >= MSG_MAC_ADDR[15:8] && msg_addr[15:8] < MSG_MLE_ADDR[15:8])
+ else if (rx_msg_captured && msg_addr[15:8] >= MSG_MAC_ADDR[15:8] && msg_addr[15:8] < MSG_INVALID_ADDR[15:8])
mem_cmd <= 1'b1;
// Primary Memory Controller Actions
@@ -498,6 +500,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
mac_sel <= 1'b0;
mle_sel <= 1'b0;
pkt_filter_sel <= 1'b0;
+ pkt_gen_sel <= 1'b0;
hf_ptrs_sel <= 1'b0;
hf_tx_sel <= 1'b0;
hf_rx_sel <= 1'b0;
@@ -534,6 +537,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
MSG_MAC_ADDR[15:8]: mac_sel <= 1'b1;
MSG_PKT_FILTER_ADDR[15:8]: pkt_filter_sel <= 1'b1;
MSG_MLE_ADDR[15:8]: mle_sel <= 1'b1;
+ MSG_PKT_GEN_ADDR[15:8]: pkt_gen_sel <= 1'b1;
endcase
end
end
@@ -544,6 +548,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
mac_sel <= 1'b0;
mle_sel <= 1'b0;
pkt_filter_sel <= 1'b0;
+ pkt_gen_sel <= 1'b0;
end
else if (mem_state == MEM_ST_REPLY_START && tx_fifo_empty) begin // write byte cnt
hf_ptrs_sel <= 1'b1;
@@ -606,6 +611,7 @@ module controller #(parameter MDIO_ADDR_SZ = 7, parameter NUM_PHYS=3)
hf_ptrs_sel <= 1'b0;
hf_tx_sel <= 1'b0;
hf_rx_sel <= 1'b0;
+ pkt_gen_sel <= 1'b0;
end
// rx_cnt

Highly Recommended Verilog Books