Cypress Semiconductor Perform CY7C1372D Betriebsanweisung Seite 58

  • Herunterladen
  • Zu meinen Handbüchern hinzufügen
  • Drucken
  • Seite
    / 97
  • Inhaltsverzeichnis
  • LESEZEICHEN
  • Bewertet. / 5. Basierend auf Kundenbewertungen
Seitenansicht 57
the logic. This allows the best timing for getting the signal on-chip since the DSP has rather poor
setup timing. The decoding is all done using these registered bus control signals using clocked
processes for best timing control. Here is an example of the DSP write decode process:
write_gen: process (reset, dsp_aeclk, dsp_a_ea_q_s, dsp_a_ce_n_q, dsp_a_awe_n_q)
begin
if (reset = '1') then
dsp_a_wr(i) <= '0';
elsif (rising_edge(dsp_Aeclk)) then
if ((dsp_a_ea_q_s = CONV_STD_LOGIC_VECTOR(i,7)) and dsp_a_ce_n_q(0)='0' and
dsp_a_awe_n_q ='0') then
dsp_a_wr(i) <= '1';
else
dsp_a_wr(i) <= '0';
end if;
end if;
end process write_gen;
The registered addresses are dsp_a_ea_q_s and the registered control signals are dsp_a_ce_n_q
and dsp_a_awe_n_q. This example process generates the 128 DSP write signals that are output
from the DSP hardware interface component. If you modify the code, try to follow these examples
to avoid the timing problems associated with using the DSP signals directly into the chip.
Adding FIFOs to the Design
The DSP FIFOs are also in the ii_quixote_dsp_emif_a component including their decoding. We
have commented out some of the code but left it in the source for you to use if you need to add
another FIFO. Just change the generic num_fifos to the number you want (there will be an equal
number of input and output FIFOs) and the data readback process. In the readback process you
will need to modify the case statement to be
-- the data mux
-- here's how to decode multiple fifos
a_decode <= dsp_a_ce_n_q(1) & dsp_a_ea_q_s(22 downto 20);
--* the data is either the fifo or the async status registers
rdback: process (dsp_aeclk, dsp_a_ce_n_q(0))
begin
if (rising_edge(dsp_Aeclk)) then
case a_decode is
when “0000” => dsp_a_rdout <= X"00000000" & status_d;
when "0001" => dsp_a_rdout <= dsp_a_ofifo_dout(1);
when "0010" => dsp_a_rdout <= dsp_a_ofifo_dout(2);
when "0011" => dsp_a_rdout <= dsp_a_ofifo_dout(3);
when "0100" => dsp_a_rdout <= dsp_a_ofifo_dout(4);
when "0101" => dsp_a_rdout <= dsp_a_ofifo_dout(5);
when "0110" => dsp_a_rdout <= dsp_a_ofifo_dout(6);
when "0111" => dsp_a_rdout <= dsp_a_ofifo_dout(7);
when others => dsp_a_rdout <= dsp_a_ofifo_dout(0);
end case;
end if;
end process rdback;
Notice that the case has been changed to a_decodes from the original source. You may also
have to change the UCF file for the component area definition to fit all the new FIFOs in the area
Innovative Integration FrameWork Logic User Guide 58
Seitenansicht 57
1 2 ... 53 54 55 56 57 58 59 60 61 62 63 ... 96 97

Kommentare zu diesen Handbüchern

Keine Kommentare