Я собираю UART RX и хочу сделать его настраиваемым во время синтеза, либо не получен бит четности:
module uart_rx # (
parameter EXPECT_PARITY_BIT = 0,
parameter CLK_PER_BAUD = 434,
parameter CLK_PER_BAUD_WIDTH = 9
) (
input clk,
input rst,
input uart_rx,
output reg data_ready,
output reg parity_bit = 1'H0,
output [7:0] data
);
Если EXPECT_PARITY_BIT равен нулю, в FSM происходит следующее:
receiveData:
if (current_rx_bit == 8) begin
if (EXPECT_PARITY_BIT == 1)
nextState = receiveParity;
else
nextState = receiveStop;
end
Переменная parity_bit установлена следующим образом:
always @(posedge clk) begin
if (rst == 1)
parity_bit <= 1'H0;
else if (receive_parity == 1 && mtimer_done == 1)
parity_bit <= uart_rx;
end
Receive_parity только в состоянии receiveParity, что означает, что parity_bit будет нулевым, если не используется. Это приводит к предупреждению от веб-пакета ISE:
Xst:1293 - FF/Latch <parity_bit> has a constant value of 0 in block <uart_rx>. This FF/Latch will be trimmed during the optimization process.
И я хочу исправить это предупреждение. Как мне запрограммировать мой UART RX так, чтобы паритет получения был необязательным, и во время синтеза не появлялось никаких предупреждений?