вот описание структурного тела: port(s, c, r: in bit; d: in bit_vector (1 to 4); q1, q2, q3, q4: out bit); end RG4test;
architecture STR of RG4test is component nand2 port(x1, x2: in bit; y: out bit); end component nand2; component inv port(x: in bit; y: out bit); end component inv; component sdcrtt port(s, d, c, r: in bit; q: out bit); end component sdcrtt; signal nc, s1, s2, r1, nr1, nS2: bit; begin d1: inv port map (c, nc); d2: nand2 port map(s, r, s1); d3: nand2 port map(s, s1, s2); d4: nand2 port map(s1, r, r1); d5: inv port map (s2, nS2); d6: inv port map (r1, nR1); d7: sdcrtt port map (ns2, d(1), nc, nr1, q1); d8: sdcrtt port map (ns2, d(2), nc, nr1, q2); d9: sdcrtt port map (ns2, d(3), nc, nr1, q3); d10: sdcrtt port map (ns2, d(4), nc, nr1, q4); end STR; вот тест к нему:
entity test_RG4 is end test_RG4;
architecture test_RG4 of test_RG4 is component test_rg4_str is port(s, c, r: in bit; d: in bit_vector (1 to 4); q1, q2, q3, q4: out bit); end component; signal s, c, r: bit; signal d: bit_vector(1 to 4); signal q1_str, q2_str, q3_str, q4_str: bit; begin dstr: test_rg4_str port map(s, c, r, d, q1_str, q2_str, q3_str, q4_str); p1: process begin s <= '0' after 0 ns, '1' after 100 ns, '0' after 200 ns, '1' after 300 ns, '0' after 400 ns, '1' after 500 ns, '0' after 700 ns; r <= '0' after 0 ns, '1' after 100 ns, '0' after 200 ns, '1' after 300 ns, '0' after 400 ns, '1' after 500 ns, '0' after 600 ns, '1' after 700 ns; c <= '0' after 0 ns, '1' after 400 ns, '0' after 600 ns; d(1) <= '1' after 0 ns, '0' after 100 ns; d(2) <= '1' after 0 ns, '0' after 100 ns; d(3) <= '1' after 0 ns, '0' after 100 ns; d(4) <= '1' after 0 ns, '0' after 100 ns; wait for 800 ns; end process; end test_RG4; таблица истиности элемнта такая: s r c q1 q2 q3 q4 s=r s=r / d1 d2 d3 d4 s=r s=r 0,1,\ q1 q2 q3 q4 1 0 x 1 1 1 1 0 1 x 0 0 0 0
то есть, мне кажеться я правильно форимирую входные сигналы, для того чтобы получить на выходе нечто отличное от нуля. Или это не так?
|