OpenCores
URL https://opencores.org/ocsvn/ss_pcm/ss_pcm/trunk

Subversion Repositories ss_pcm

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /ss_pcm/tags/start/doc
    from Rev 3 to Rev 5
    Reverse comparison

Rev 3 → Rev 5

/README.txt
0,0 → 1,114
 
SS_PCM (Single Slot Slave PCM Intervace)
============================================
 
Status
------
This core is done. It was tested on a XESS XCV800 board
interfacing to a proprietary device with a TI DSP, exchanging
PCM streams in both directions.
 
Test Bench
----------
There is no test bench, period !
Please don't email me asking for one, unless you want to hire
me to write one ! As I said above I have tested this core in
real hardware and it works just fine.
 
Documentation
-------------
Sorry, there is none. I just don't have the time to write it.
 
Here is a short how to:
 
This is a Salve PCM interface, meaning Clock and Sync are input
to the core. To make it a Master interface add a clock and Sync
signal generator (for example a 128KHz clock and 8KHz Sync).
 
PCM Clock is an external clock source and can really be any
clock rate. It should however be 16 times faster than the PCM
Sync signal rate.
 
PCM Sync, indicates the start of a PCM frame and in a practical
application would come in 8KHz intervals.
 
SSEL, indicates how many clock cycles to wait after a Sync
signal before starting to receive and transmit data.
 
After seeing a the Sync signal, this core will wait 'SSEL'
number of PCM clock cycles and then start receiving and
transmitting. Receiving and transmitting always happens
simultaneously. After it has finished receiving and transmitting
16 bits it will wait for the next Sync signal before repeating
the process.
 
At the end of receive process data is transferred from a
shift register to a hold register, guaranteeing that the data
will only change once during one Sync period.
After seeing the Sync signal, data is transferred from a transmit
holding register to a transmit shift register. If the transmit
hold register is not updates during one sync period the previous
data is retransmitted.
 
All of the above behavior is in compliance with general PCM
stream usage.
 
The core itself has a 8 bit interface. 're_i' selects between
the high and low byte in the holding register:
re_i-1 High byte from the receive holding register is driven
on dout_o
re_i-0 Low byte from the receive holding register is driven
on dout_o
 
To write data to the core:
we_i[0]-1 Stores data from din_i to transmit hold
register low byte
we_i[1]-1 Stores data from din_i to transmit hold
register high byte
 
 
 
Misc
----
The SASC Project Page is:
http://www.opencores.org/cores/sasc/
 
To find out more about me (Rudolf Usselmann), please visit:
http://www.asics.ws
 
 
Directory Structure
-------------------
[core_root]
|
+-doc Documentation
|
+-bench--+ Test Bench
| +- verilog Verilog Sources
| +-vhdl VHDL Sources
|
+-rtl----+ Core RTL Sources
| +-verilog Verilog Sources
| +-vhdl VHDL Sources
|
+-sim----+
| +-rtl_sim---+ Functional verification Directory
| | +-bin Makefiles/Run Scripts
| | +-run Working Directory
| |
| +-gate_sim--+ Functional & Timing Gate Level
| | Verification Directory
| +-bin Makefiles/Run Scripts
| +-run Working Directory
|
+-lint--+ Lint Directory Tree
| +-bin Makefiles/Run Scripts
| +-run Working Directory
| +-log Linter log & result files
|
+-syn---+ Synthesis Directory Tree
| +-bin Synthesis Scripts
| +-run Working Directory
| +-log Synthesis log files
| +-out Synthesis Output
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.