2 h0t
Собственно проблема даже не в том как написано (хотя и в этом тоже), там главный трабл заключается в этом:
Код
entity RS422_receiver is
Port ( SCK : in STD_LOGIC;
RXD : in STD_LOGIC;
...
if (RXD='0' and prevRXD='1') then -- Start bit,
...
Собственно вас должно было на это натолкнуть вот это в модельсиме:
Цитата
# Time: 2118500 ps Iteration: 18 Instance: /main_schematic_main_schematic_sch_tb/UUT/XLXI_35_RxReady_REG
# ** Warning: /X_FF HOLD High VIOLATION ON I WITH RESPECT TO CLK;
# Expected := 4.5 ns; Observed := 1.5 ns; At : 2118.5 ns
И если глянуть на это самый тригер то можно увидеть что реально по холду не выдерживается времянка потому что так устанавливаются данные на самом DATA-входе дизайна. Асинхронные сигналы обычно нужно нарезать регистрами, чтобы не иметь потом в синхронных дизайнах проблем с неопреденными состояниями тригеров. Об этом, я так понял, вам намекал sazh, когда говорил про слой регистров.