Line 1... |
Line 1... |
-- $Id: rlink_core.vhd 718 2015-12-26 15:59:48Z mueller $
|
-- $Id: rlink_core.vhd 767 2016-05-26 07:47:51Z mueller $
|
--
|
--
|
-- Copyright 2007-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
-- Copyright 2007-2016 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
--
|
--
|
-- This program is free software; you may redistribute and/or modify it under
|
-- This program is free software; you may redistribute and/or modify it under
|
-- the terms of the GNU General Public License as published by the Free
|
-- the terms of the GNU General Public License as published by the Free
|
-- Software Foundation, either version 2, or at your option any later version.
|
-- Software Foundation, either version 2, or at your option any later version.
|
--
|
--
|
Line 26... |
Line 26... |
-- Test bench: tb/tb_rlink_direct
|
-- Test bench: tb/tb_rlink_direct
|
-- tb/tb_rlink_serport
|
-- tb/tb_rlink_serport
|
-- tb/tb_rlink_tba_ttcombo
|
-- tb/tb_rlink_tba_ttcombo
|
--
|
--
|
-- Target Devices: generic
|
-- Target Devices: generic
|
-- Tool versions: ise 8.2-14.7; viv 2014.4; ghdl 0.18-0.31
|
-- Tool versions: ise 8.2-14.7; viv 2014.4-2016.1; ghdl 0.18-0.33
|
--
|
--
|
-- Synthesized (xst):
|
-- Synthesized (xst):
|
-- Date Rev ise Target flop lutl lutm slic t peri
|
-- Date Rev ise Target flop lutl lutm slic t peri
|
-- 2015-12-26 718 14.7 131013 xc6slx16-2 312 460 16 150 s 7.0 ver 4.1
|
-- 2015-12-26 718 14.7 131013 xc6slx16-2 312 460 16 150 s 7.0 ver 4.1
|
-- 2014-12-20 614 14.7 131013 xc6slx16-2 310 453 16 146 s 6.8 ver 4.0
|
-- 2014-12-20 614 14.7 131013 xc6slx16-2 310 453 16 146 s 6.8 ver 4.0
|
-- 2014-08-13 581 14.7 131013 xc6slx16-2 160 230 0 73 s 6.0 ver 3.0
|
-- 2014-08-13 581 14.7 131013 xc6slx16-2 160 230 0 73 s 6.0 ver 3.0
|
-- 2014-08-13 581 14.7 131013 xc3s1000-4 160 358 0 221 s 8.9 ver 3.0
|
-- 2014-08-13 581 14.7 131013 xc3s1000-4 160 358 0 221 s 8.9 ver 3.0
|
--
|
--
|
-- Revision History:
|
-- Revision History:
|
-- Date Rev Version Comment
|
-- Date Rev Version Comment
|
|
-- 2016-05-22 787 4.1.2 don't init N_REGS (vivado fix for fsm inference)
|
-- 2015-12-26 718 4.1.1 add proc_sres: strip 'x' from RB_SRES.dout
|
-- 2015-12-26 718 4.1.1 add proc_sres: strip 'x' from RB_SRES.dout
|
-- 2014-12-21 617 4.1 use stat(_rbf_rbtout) to signal rbus timeout
|
-- 2014-12-21 617 4.1 use stat(_rbf_rbtout) to signal rbus timeout
|
-- 2014-12-20 614 4.0 largely rewritten; 2 FSMs; v3 protocol; 4 bit STAT
|
-- 2014-12-20 614 4.0 largely rewritten; 2 FSMs; v3 protocol; 4 bit STAT
|
-- 2014-08-15 583 3.5 rb_mreq addr now 16 bit; add s_rxaddrl state
|
-- 2014-08-15 583 3.5 rb_mreq addr now 16 bit; add s_rxaddrl state
|
-- 2011-11-19 427 3.1.3 now numeric_std clean
|
-- 2011-11-19 427 3.1.3 now numeric_std clean
|
Line 387... |
Line 388... |
'0','0', -- anena,atoena
|
'0','0', -- anena,atoena
|
(others=>'0') -- atoval
|
(others=>'0') -- atoval
|
);
|
);
|
|
|
signal R_LREGS : lregs_type := lregs_init; -- state registers link FSM
|
signal R_LREGS : lregs_type := lregs_init; -- state registers link FSM
|
signal N_LREGS : lregs_type := lregs_init; -- next value state regs link FSM
|
signal N_LREGS : lregs_type; -- don't init (vivado fix for fsm infer)
|
signal R_BREGS : bregs_type := bregs_init; -- state registers bus FSM
|
signal R_BREGS : bregs_type := bregs_init; -- state registers bus FSM
|
signal N_BREGS : bregs_type := bregs_init; -- next value state regs bus FSM
|
signal N_BREGS : bregs_type; -- don't init (vivado fix for fsm infer)
|
signal R_CREGS : cregs_type := cregs_init; -- state registers config
|
signal R_CREGS : cregs_type := cregs_init; -- state registers config
|
signal N_CREGS : cregs_type := cregs_init; -- next value state regs config
|
signal N_CREGS : cregs_type := cregs_init; -- next value state regs config
|
|
|
signal RTBUF_ENB : slbit := '0';
|
signal RTBUF_ENB : slbit := '0';
|
signal RTBUF_WEA : slbit := '0';
|
signal RTBUF_WEA : slbit := '0';
|
Line 755... |
Line 756... |
end if;
|
end if;
|
end if;
|
end if;
|
end if;
|
end if;
|
|
|
when sl_txeop => -- sl_txeop: send eop ----------------
|
when sl_txeop => -- sl_txeop: send eop ----------------
|
|
n.state := sl_txeop; -- needed to prevent vivado iSTATE
|
ido := c_rlink_dat_eop; -- send eop character
|
ido := c_rlink_dat_eop; -- send eop character
|
ival := '1';
|
ival := '1';
|
if RL_HOLD = '0' then -- wait for accept
|
if RL_HOLD = '0' then -- wait for accept
|
n.moneop := '1'; -- signal on rl_moni
|
n.moneop := '1'; -- signal on rl_moni
|
n.state := sl_idle; -- next: idle state, wait for sop
|
n.state := sl_idle; -- next: idle state, wait for sop
|