Audio Broadcasting using FPGA (Pod-Casting) Haider Ali Kent Borecky ECE 445, SENIOR DESIGN PROJECT. Summer TA: Alex Spektor. Project No.

Size: px
Start display at page:

Download "Audio Broadcasting using FPGA (Pod-Casting) Haider Ali Kent Borecky ECE 445, SENIOR DESIGN PROJECT. Summer TA: Alex Spektor. Project No."

Transcription

1 Audio Broadcasting using FPGA (Pod-Casting) By Haider Ali Kent Borecky ECE 445, SENIOR DESIGN PROJECT Summer 2005 TA: Alex Spektor 07/31/2005 Project No. 3

2 ABSTRACT Pod-Casting is an audio-content streaming project with Ethernet support. It is a proof-of-concept project in essence, because although there are several software-based solutions available for audio streaming and management (for example Nullsoft s Shoutcast), hardware based implementations which combine both decoding of compressed audio formats and provide network connectivity is not very popular. As such, Pod-Casting allows XUP development boards to communicate and stream PCM audio content. Attempts to implement a functional Ethernet MAC layer did not materialize initially, however, subsequent efforts led to functioning MAC layer allowing full network connectivity as proposed in the design review. Subsequent efforts with Pod-Casting would involve implementing the complete solution discussed above involving a MPEG decoder. In addition, any future endeavors in this area utilizing the XUP development hardware would certainly benefit from the experience gained from trying to implement Pod-Casting. ii

3 TABLE OF CONTENTS 1. INTRODUCTION MOTIVATION AND PURPOSE SPECIFICATIONS SUBPROJECTS LM4550 AC 97 AUDIO CODEC MEDIA ACCESS LAYER AND LXT972A PHY TRANSCEIVER PS/2 KEYBOARD INTERFACE SVGA ADAPTOR AND FMS3818 TRIPLE VIDEO DAC DESIGN PROCEDURE LM4550 AC 97 AUDIO CODEC MEDIA ACCESS LAYER AND LXT972A PHY TRANSCEIVER SRAM INTERFACE PS/2 KEYBOARD INTERFACE SVGA ADAPTOR AND FMS3818 TRIPLE VIDEO DAC CLK_DIVIDER DEBOUNCE_XUP DEFAULTS VGA_SYNC CHARACTER GENERATION DESIGN DETAILS LM4550 AC 97 AUDIO CODEC CONFIGURING THE CODEC WAVE FILE PLAYBACK FROM SRAM AND MIC-IN/LINE-IN MEDIA ACCESS LAYER AND LXT972A PHY TRANSCEIVER PS/2 KEYBOARD INTERFACE SVGA ADAPTOR AND FMS3818 TRIPLE VIDEO DAC VGA_SYNC CHARACTER GENERATION DESIGN VERIFICATION TESTS COUNTER SIMULATION TESTING AC97 CODEC SIMULATION TESTING VGA TIMING GENERATOR SIMULATION TESTING AC97, ETHERNET TESTING MAC TESTING CONCLUSIONS iii

4 5. COST CONCLUSIONS REFERENCES APPENDIX A BLOCK DIAGRAMS... APPENDIX B HARDWARE DESCRIPTION LANGUAGE SCHEMATICS... APPENDIX C SIMULATIONS... APPENDIX D SPECTRAL ANALYSIS... iv

5 1. INTRODUCTION Pod-Casting is a hardware-based audio-content streaming project designed and implemented to run on the XUP development boards from Diligent. These boards feature Xlinix s Virtex-II Pro FPGA along with numerous other I/O interfacing chips including National Semiconductor s LM4550 AC97 audio codec and Intel s LXT972 Ethernet transceiver. 1.1 Motivation and Purpose The motivation for Pod-Casting is for devices like ipod s to become more extensible by adding network connectivity so similar devices in close physical proximity can share their music. The general idea is to bring the extensible and popular P2P world of file sharing into the daily world without the requisite need of a complete PC. The social and legal ramifications of such widespread usage would have to be considered once the technology became fully functional. One technical issue with such device-based P2P networks is bandwidth and compatibility. To address the issue of bandwidth further research would be required to formulate a resource sharing mechanism similar to how the Torrent network operates every user while downloading any given file also uploads an equal amount of file content to other users who may be downloading the file. Extending this idea to the realm of Device-P2P, a typical situation might be where a single user could be broadcasting the same audio to several client users it would only to be equitable if the client users also shared whatever content they may have already received from the broadcaster to their fellow client users. Although this is a very high-level description of the bandwidth sharing regime that would need to be implemented for Device-P2P to be popular, it nonetheless encapsulates the general idea of equitable share on all users, not just the primary broadcaster who has the audio content. Although the current implementation of Pod-Casting uses Ethernet to support network connectivity, for compatibility reasons the project would need to support something like Bluetooth to support users with different vendor audio-devices. 1.2 Specifications Pod-Casting was initially envisioned to implement both the MPEG decoding and networking functionality. However, it was soon realized that in the limited time period available for the project, it would be best to pursue only one of these major goals as such, the project initially was set to be a audio broadcasting project with an Ethernet MAC layer for connectivity. Both the LM4550 Audio Codec interface and the LXT972 Ethernet transceiver interface were developed independently and eventually were brought together and connected. Besides interfacing with the additional chips, FIFO queues and arbiters also had to be included in order to accommodate the varying clock speeds at which the devices operated at (for example, the LXT972 operating at 100 Mbps is clocked at 25 MHz while the LM4550 operates at a 12.5 MHz frequency). In addition, keyboard and VGA devices were incorporated to provide an asynchronous means of providing textual information about the current stream. Since limited memory was issue during the course of development of the project, Pod-Casting utilizes the external add-on SRAM module for reading audio file content. Even though there are 136 Select+ BlockRAMs on board the Virtex-II Pro, the issue of loading arbitrary audio files onto the FPGA would be to cumbersome and infeasible given that the BlockRAMs are not intended to replace permanent storage, rather facilitate calculations. Pod-Casting utilizes the add-on USB module to transfer files onto 1

6 the SRAM module. SATA interfacing with a hard drive or Compact Flash would be adequate to address the storage issue. 1.3 Subprojects The design was broken into many modules, which each perform specific tasks. The modules we decided to implement were: LM4550 AC 97 Audio Codec The LM4550 [1] is an audio codec (coupled with a stereo amplifier) which supports the widely used AC97 audio standard from Intel. The AC97 codec standard provides an abstraction around the process of sampling/playing-back audio data by internally handling all the A/D and D/A conversions the codec-designer interface is serial PCM (Pulse Code Modulation) data. Hardware implementation was required to configure the codec for both digital playback and sampling data in from the Stereo Line-In input. The codec interface was responsible for providing the audio data for streaming Media Access Layer and LXT972A PHY Transceiver In order to stream the audio/textual data, the Ethernet network was utilized. The onboard LXT972A PHY Transceiver [2] provided very rudimentary, low-level functionality like encoding data in Manchester Encoding or MLT4/5 block encoding for transmission across the wire. Hardware implementation was still required to control the PHY; in addition, for extended connectivity, the Media Access Layer was implemented which operates at the frame level. It was responsible for generating Ethernet frames and embedding the audio data within them PS/2 Keyboard Interface In order to interface with the PS/2 port and keyboard, a hardware controller needed to be implemented which read data from the PS2_DATA using the PS2_CLOCK signals coming out of the PS/2 port. Standard device-to-host communication protocol was adhered to extract data from the PS2_DATA signal SVGA Adaptor and FMS3818 Triple Video DAC Driving a SVGA display involved passing the digital representation through the Video DAC hardware (FMS3818 chip [4]) which converts the digital pixels into analog voltages used by the monitor. However, the FMS3818 hardware is just simply a Video DAC as illustrated in [4]. Separate hardware needed to be implemented to drive the control signals to the display and provide pixel values at the right rate. In addition, hardware needed to be implemented for managing the timing of the VGA signals i.e. HSYNCH, VSYNCH, and BLANK. We targeted VGA resolution (640 X 480 at 256 colors) 2

7 2. DESIGN PROCEDURE 2.1 LM4550 AC 97 Audio Codec National Semiconductors LM4550 chip supports the AC97 Audio Codec from Intel. The AC97 standard supports 4-48 KHz audio resolution with 20-bit samples (the LM4550 only supports 18-bit samples). The standard deals with directly processing Pulse Code Modulated (PCM) audio samples applying the necessary DAC conversions to output the sound to Line Out. The AC97 standard specifies communication with the audio codec over a serial interface in frames of 256 bits. The audio codec provides a BIT_CLK operating at approximately 12.5 MHz data on the SDATA_OUT/IN signals change on rising edges of the BIT_CLK. The frames are the unit of communication with the audio codec, as the codec will discard frames not exactly 256 bits. Frames are used for both configuring the codec and transmitting audio samples. The 256 bit frame is divided into 1 16-bit tag slot followed by 12 data slots of 20-bits each; a new frame is indicated by holding the SYNCH signal high for 16 clock cycles as shown below in Figure 1. Figure 1 AC97 Frame Format [5] Before the LM4550 audio codec can be utilized to play back sampled WAVE files or streamed data, the codec must be configured to enable various gain registers on the playback path. The codec by default starts out by muting the Line Out and Headphone Out ports, in addition to DAC gain registers. These registers must be configured in addition to others on the path from Line-In/MIC-In to the FPGA utilizing frames. Another non-standard feature of the LM4550 is that it enters into self-test modes if configured improperly and requires a cold-reset to be restored to functional mode. Although there are 12 slots each consisting of 20-bits of data, only slots 3 and 4 are used to carry sampled left and right channel audio data. The tag slot serves to inform the codec on the status of the rest of the slots that will follow: the first bit indicates whether the current frame is valid, followed by subsequent bits to indicate the status of the rest of the slots (unused bits are zeroed throughout the frame). When configuring the codec, slot 1 and 2 are used to carry the register to configure and the associated value to write to the register. As seen in the Figure 1 above, the SYNCH signal should be asserted one clock cycle before the tag slot starts and should be de-asserted before the last bit of the tag slot is transmitted to the codec over SDATA_OUT. Sampled data from Line-In/MIC-In is transmitted from the codec to the controller (the FPGA) over the SDATA_IN signal. Data transmitted from the codec to the controller follow the same protocol and conventions that are utilized for controller-to-codec communication. Audio data after being sampled and passed through the ADC s is transmitted in slots 3 and 4 (left and right channels) and are ready for playback on the following frame. 3

8 2.2 Media Access Layer and LXT972A PHY Transceiver The LXT972 Ethernet transceiver from Intel operates at the physical layer of the OSI 7-layer model. The following diagram (Figure 2) describes its position and functionality. Figure 2 Functionality and positioning of the PHY Transceiver within the OSI 7-layer model [2] The LXT972 is responsible for taking data and transmitting them over the CAT-5 cable in addition to establishing/negotiating a link with other Ethernet devices. At 100BASE-X, the transceiver utilizes 4B/5B block coding which is then encoded into MLT-3 codes (in 10BASE-X the data is Manchester encoded) to transmit over the wire. In addition to being responsible for negotiating/establishing links with other devices, the LXT972 also implements the Media Independent Interface (MII) which allows the transceiver to be connected to any MAC (which also supports MII) which operates at level 2 in the OSI 7-layer model. The MAC is responsible for implementing the complete Ethernet standard and also sits in between higher levels like the TCP/IP stack which operates on IP packets and the absolute low level transceiver. Part of implementing the MII, the transceiver provides a Management Data Input Output (MDIO) interface to configure the chip and check the status of various internal registers in the device. The MDIO is also a serial interface which operates at a maximum of 8 MHz (the clock is provided by the controller (the FGPA) to the transceiver). Fortunately, minimal effort is required for configuring the LXT972 because of the way it is implemented on the XUP board by Xlinix; it is automatically set to autonegotiate links at 10/100 Mbps, half/full duplex. When in auto-negotiate mode, the transceiver sends Fast Link Burst (FLP) signals to the device on the other end to establish connectivity; using FLP signals both devices advertise their capabilities and the fastest mode of common operation is chosen. The project s interface includes support for testing to determine if the link is operational and configuring the transceiver LEDs to provide information about link status, speed, and transmit/receive status. Pod-Casting includes support for communicating between multiple XUP boards using standard Ethernet cables and a networking switch; the full Ethernet standard is supported. Figure 3 illustrates the basic Ethernet frame structure. 4

9 Figure 3 Ethernet Frame Formats [2] The designs of the MAC consists of separately constructing the individual fields described in Figure 3 and then bringing them together to create the Cyclic Redundancy Check (CRC) after which all the fields are transmitted across the PHY Transceiver. Separate storage via shift-registers is allocated to fields of standard size such as the Preamble (64 bits), the Source and Destination Address (48 bits each) and the Field Length (16 bits). All Ethernet frames must be a certain minimum length which is 46 bytes as a result, the Data Field is padded to this length to ensure that the Ethernet Switch does not drop the packet after classifying it as a runt frame. Before the MAC frame can be assembled for transmission over the Ethernet wire, the Frame Check Sequence or CRC has to be calculated the generation of the CRC is a not trivial exercise. The CRC is generated on the Destination and Source Address, Length Field and the Data field. The generation of the CRC relies of assuming the input data as one polynomial M(x) and performing multiplication and division operations using a second reference polynomial G(x) G(x) is specific for Ethernet CRC and differs for standard file CRC. G(x) is given below as Equation 1. Another important feature of Ethernet frames is that they are transmitted Least Significant Bit first for all fields in the order given above in Figure 3 however, the FCS is transmitted Most Significant Bit first. A suitable Inter-Frame Gap must also be inserted in order to prevent successive frames from being discarded as invalid data. (1) 2.3 SRAM Interface The add-on expansion SRAM [3] module is utilized in conjunction with the USB module. Files from a PC are copied utilizing Diligent s USB software, while a separate bitfile (also from Diligent) is responsible from interfacing between the USB and SRAM modules and writing data to the SRAM chips. The SRAM module consists of two 8-bit 512 KB ISSI chips which are addressed separately using a 19- bit address bus and Chip Select (CS0, CS1) signals. The SRAM supports a relatively fast access time of 10/12 ns; however, because the chip is single-ported, doing simultaneous read and write operations became unreliable. SRAM access speed is not a critical factor in the project s design because the audio codec operates at a much slower clock period (approximately 80 ns). In addition, besides reading the data for playback every frame, there is no time critical usage of the SRAM. 2.4 PS/2 Keyboard Interface Our design of the scan code reader consists of a single block which takes the PS2_CLK1_H, PS2_DATA1_H (ps/2 signals), and PB_ENTER (push button onboard the XUP board) signals. The 5

10 interface reads from the PS2_DATA1_H signal until the stop bit is received and the keyboard clock stops pulsating. The particular design is simple and efficient for the given task. We did not have to worry about the break codes since they are the same as the scan codes (appended by a constant). A design utilizing a state machine would have achieved the same, but required creating multiple states for each bit received. 2.5 SVGA Adaptor and FMS3818 Triple Video DAC The SVGA design consisted of several high-order blocks: Clk_divider This block provides clock down conversion functionality. It accepts the system clock, a divisor specification, and reset as inputs. It outputs a down-converted clock signal as determined by the divisor. Specifically, if T represents the clock period of the input clock and D is the integer given by the divisor, then this block s output has a period of 2*D*T. This unit sources the debouncing circuit clock Debounce_XUP This block is intended to debounce keypresses with the assistance of the 100Hz clock generator. It accepts a raw button input and clock, and it outputs a debounced, non-inverted button signal Defaults Default values to other blocks are supplied here. For example, lengths of horizontal and vertical blanking intervals are defined and output, as are most of the constant or ported values into any other block VGA_sync After accepting relevant parameters (clock, horizontal and vertical resolution, blanking lengths, and synchronization lengths) for the desired resolution, this block produces horizontal and vertical synchronization signals along with blanking signals. A pixel clock at 25MHz (for 640 x 480 at 60Hz refresh) is also generated off the input clock. 2.6 Character Generation The design of the Character Generation unit consists of central pixel data ROM, a Finite State Machine acting as controller for displaying the characters and several combinational logic blocks for address generation and for book keeping purposes i.e. number of pixels displayed, number of characters finished, etc. 6

11 Character pixel data had to be generated and obtained through ASCII art because there are no onboard palettes available on the XUP board. Alternatively, a bmp image file containing font data could have been utilized but issues with decoding the bmp file in addition to storage concerns lead to not using this approach. One important factor was that the SRAM where the bmp file would be stored would need to be constantly read in order to keep the display on the VGA valid previous experience with the SRAM module showed that it could become unreliable with excessive read requests. Drawing the characters on the VGA was implemented using a State Machine (FSM). The FSM sequences through all the characters that need to be drawn and sequentially copies the first pixel data entry before moving onto the next pixel data line for all the characters again. This is necessary because of the low-level nature of the implementation where we are forced to deal directly with VGA timing signals. In conventional implementations, data that needs to be drawn to the VGA would be copied to a set video memory location and that video memory is dumped directly however, since we have no video memory, the above approach had to be utilized. 7

12 3. DESIGN DETAILS 3.1 LM4550 AC 97 Audio Codec The LM4550 interface controller is responsible for both configuring the audio codec as well as supplying it either PCM samples from the WAVE file residing on the SRAM or playing back the sampled audio data received from MIC-In/Line-In. Audio data sampled in as well as transmitted via Line-out is sampled at 48 KHz (although the codec supports Variable Bit Rate audio as well) Configuring the Codec In order to facilitate configuring the codec, a configuration ROM is implemented which contains tag, register address slot, and register value slot triples for configuring the various codec registers. To allow audio data to be transmitted on Line-Out and the Headphone jacks, the PCM Gain Register (0x18), the Master Volume Register (0x02) and Headphone Volume Register (0x04) should be un-muted and configured to an appropriate gain value. In the input path, the MIC Gain Register (0x0E) and Record Gain Register (0x1C) need to be set up appropriately. In addition to the above mentioned registers, the National 3D Sound Circuitry and PC Beep Tone Registers are also disabled to avoid any signal interference. The first frames are thus purely configuration (configuration data is transmitted in slots 1 and 2). Counters are set up to count the number of rising edges of AC97_BIT_CLOCK on which data is transmitted. A separate counter keeps track of the number complete frames that have been transmitted and is used to index into the ROM. Besides holding configuration triples, the ROM also has one slot for the data frame tag, which is always read. The state machine ensures that data from the ROM is directed into the left shift register which forms the data to be transmitted on AC97_SDATA_OUT is always chosen when a new frame starts WAVE file playback from SRAM and MIC-In/Line-In The core functionality of the audio codec controller interface relies on a state machine which helps transmit data on the rising edge of the AC97_BIT_CLOCK and assert SYNCH signals at appropriate times during the frame transmission. Since only the first four data slots (besides the tag slot which is necessary for all frames) are necessary for both configuration frames and data frames, a single state machine handles both types of transmissions. Based on the current count of frames sent, a determination is made about whether it is necessary to send empty data on slot 1 and 2 or whether valid data needs to be transmitted. State slot_x and slot_y represent the generic slot on which valid data is transmitted (for configuration frames that would translate to slot 1 and slot 2, while for data frames that would be slot 3 and slot 4). Valid data is preloaded prior to entering either of these states by the preceding state the only action preformed by the above states is to enable the shift signal that feeds into the left shift register which is supplying the state machine data in MSB format to send over the SDATA_OUT line. If WAVE files are being played, a separate SRAM address generating block is utilized which generates the address based on the current frame count and a counter that counts up to 4. The WAVE files are 8

13 encoded to store 16-bit stereo sound and as such, every sample consists of 4 bytes of data bytes 0 and 1 represent the left channel sub-sample and bytes 2 and 3 the right channel sub-sample. Before entering slot_x, the state machine asserts the appropriate signals to start the data fetching from the SRAM as mentioned earlier, time is not critical because not only is the period of the AC97_BIT_CLOCK approximately 80 ns but in addition, 40 BIT_CLOCK cycles are expended before ever needing the left channel data in the case of the right channel data, it is fetched starting on the 19 and 20 th bit transmission of slot_x. Also, because the WAVE file samples are encoded as little-endian, they have to be exchanged before being transmitted to the codec because the codec requires data in big-endian format. Selection between playback of the WAVE file contents from the SRAM and sampled audio data from MIC-IN/Line-IN is made by a user controller dip switch on the XUP development board. A single 40-bit left-shift register is maintained to hold a single data-in sample at any given time; this is all that is required for on-demand playback because if the data is sampled on the current frame, it will be available for playback on the next frame. The codec interface controller is also extended to take a 40-bit streamed PCM sample and allow playback in lieu of the initial project goal to support audio streaming. In addition, sampled audio data or WAVE file samples are sourced for transmission over Ethernet. 3.2 Media Access Layer and LXT972A PHY Transceiver The Ethernet PHY interface consists establishing a link between XUP boards and then subsequently programming the transceiver LEDs. Once the interface controller determines the transceiver status and configuration, it is available to the rest of the design to transmit and receive data over the connection. The MDIO communication is a serial process and requires a controller generated clock the 32 MHZ board clock is utilized to derive an 8 MHz MDC clock to establish the bidirectional data transfer over the signal MDIO. As was the case with the audio codec configuration, read and write commands to the transceiver are stored in ROM for ease of programming and updating as well as extensibility (it is much easier to add or remove new configuration commands if they are in a ROM structure as opposed to other means). The transceiver samples data from the MDIO on the rising edge, and confirms all data transferred from the controller is valid prior to the rising edge of MDC; however, when the transceiver returns data, it is valid on the rising edge of MDC. The transceiver provides the controller for both the TX_CLOCK and RX_CLOCK (which operate at approximately 25 MHz when in 100BASE-X mode). The interface unit is responsible for fetching the 36-bit audio sample from the audio codec, packaging it into a Ethernet frame by prepending the 64-bit preamble, appending the Source and Destination Addresses and the Length Field, generating the CRC on these fields, and transmitting the data over TX_DATA while asserting TX_VALID to indicate the validity of the data. Because the transceiver operates using two-pairs of wires (one for transmitting and one for receiving), it is possible that at the same time the similar receiving logic is performing the reverse operations on received data over RX_DATA. As mentioned earlier in Section 2.2, the MAC design consists of storing the contents of an Ethernet frame in separate storage registers and collating them when necessary. Shift registers feature prominently in the implementation of the MAC. The Preamble field has a standard value and as such is hard-coded to 0x5D. For the Destination and Source Addresses, the onboard Dip Switches are utilized to assign unique addresses to each board since we are not on a real network, there is no concern of MAC address conflicts. (The onboard Silicon Serial Number contains a unique 48-bit MAC address if we ever wanted to have real addresses however, those are not registered with IEEE, so again would not be useful in a real network context) An implementation detail that was ascertained through successive 9

14 orders of testing was that Ethernet Switches do not allow successive frames with the Destination Address set to the universal Broadcast Address to be transmitted to other ports on the Switch this is to prevent Broadcast Storms, a common network exploit. As such, we have to sequence through all the possible addresses available and transmit every other frame to a particular device. Another approach that was utilized was sending a dummy frame in between broadcast frames to reset the Switch and allow a port to keep transmitting (Switches generally disable the port sending out Broadcast frames for ms timeout time however, if a frame with a uniquely addressed destination is sent by the same port, it resets the timeout). The CRC generation proved to be a difficult part to implement. We used the hardware design given in the Xlinix Application Note [8] to generate our CRC s. Quirks related to the CRC generation include the fact that the resulting CRC has to be bit-reversed and complemented. In addition, the first 32 bits on the input data have to be complemented which is accomplished by setting the CRC register to all 1 s. 3.3 PS/2 Keyboard Interface The implementation of the ps/2 interface consisted of a VHDL process, sensitive of PS2_CLK1_H and PB_ENTER, which read the PS2_CLK1_H signal on the falling edge (standard device-to-host communication protocol), and read the contents of PS2_DATA1_H signal, storing it in a register. A 10- bit shift register was implicitly defined in the block to store the scan code and parity. A shift register was necessary since the keyboard controller sends the data in frames of 11-bits (start bit, 8-bit data, parity bit, stop bit) starting with the least significant bit. As was the case with the design, the implementation is simple yet efficient. In addition, the block also detects when the break code is sent; in addition for validation purposes, the implementation also includes a timeout period detection after which the block is certain that the device-host communications has finished. 3.4 SVGA Adaptor and FMS3818 Triple Video DAC Only implementation of non-trivial blocks is covered here VGA_sync To produce the required 25 MHz pixel clock from the 100 MHz system clock, a standard clock divider is used with an input divisor of 1. This down converts the 100 MHz clock appropriately. Two counters are present to track when horizontal and vertical synchronization pulses should be sent. The horizontal sync counter is clocked off the pixel clock and counts up to one line s worth of pixels (800) as specified by the input port Hres. When the maxcount output goes high, we know one line has been traversed. This output clocks the second counter, which tracks lines in a similar manner. When the second counter s maxcount port goes high (after 520 lines), then an entire frame has been displayed. In order to output synchronization signals at the correct times, two small state machines are each used to generate horizontal and vertical syncs and blanking signals. They are almost identical in structure, so only the state_horiz state machine will be detailed here. The parameters state_horiz requires two outside parameters the length of the synchronization and blanking intervals in terms of pixel clock cycles. 10

15 Upon reset, the fsm remains in the idle state until 640 pixels of real data have been displayed, as tracked by the horizontal sync counter (known to the fsm as h_count). Next, the front porch is counted off in the Assert_blank state, where only the blanking signal is asserted. Next, the horizontal sync along with blanking is asserted in the Assert_hsync stage. The fsm remains in this state for hsync_len cycles. Finally, the fsm reaches the back porch of the VGA signal in the Deassert_hSync stage. Here, the output blanking signal remains asserted, but the fsm lifts the horizontal sync. The fsm exits Deassert_hSync once the entire line has been read and maxcount on the coupled counter goes high (the signal h_trigger to the fsm). The return back to Idle indicates the start of a new line. The fsm state_vert functions in a similar manner, except that relevant parameters are stated in terms of lines. The blanking signal from both state machines are OR d together to produce Blank_Z, the net blanking signal. An OR is used because both outputs are active low. Although it may be possible implement this component in the absence of a formal state machine, some memory of state, whether in the form of a counter or flip-flops, will be required. More combinational logic could be used to create identical functionality, but this requires a significantly higher level of complexity. As such, the use of two relatively state machines is preferred in our design. 3.5 Character Generation The implementation of the Character Generation is fairly intuitive. The State Machine (FSM) takes in several inputs like the output of counters keeping track of the number of pixels/characters displayed; in addition, it also takes in the current horizontal and vertical pixel count as generated by the VGA Timing Generator as described in section 3.4 The FSM starts off when the horizontal/vertical pixel count is at a certain location i.e. top right. This is necessary because the display is refreshed every ms (60 Hz refresh rate) and its necessary that the content is drawn at the same position every time otherwise it will seem that the data is moving across the screen. The subsequent states are responsible for setting signals to load the combinational logic which take the ASCII representation and convert it to the character ROM specific address. The 8-bit data from the character ROM is loaded into a left shift register that register is then left shifted 8 times and each bit is copied to the VGA display using the VGA RGB signals. After the first line of the first character is drawn, the first line of the next character is fetched and the process is repeated. After the FSM has finished drawing the first lines of all the characters, everything is reset and focus moves onto second lines of all the characters. This process is repeated until all the characters are fully drawn. (See Appendix C.2 for simulation result) 11

16 4. DESIGN VERIFICATION The primary design verification that we wanted to carry out was predicated upon the successful implementation of the Ethernet MAC layer, where we would connect five XUP boards to an Ethernet switch and try out different configurations of boards broadcasting and streaming data to verify that our implementation could be used in a large scale networked context. This is precisely what we did and verified that the MAC layer was fully functional. 4.1 Tests Given the nature of the project where we were dealing with a FPGA development board, direct testing was a difficult prospect because you could not simply connect up oscilloscope or logic analyzer probes on packaged IC chips and observe the state of the device. Instead, we had to primarily rely on simulation testing to verify that the hardware designs we implemented were functional and behaved as expected. Another important point is that it is difficult to simulate the behavior of external chips like the audio codec and the Ethernet PHY transceiver without having external libraries that define its behavior to the simulator. As such, we had to assume that the chips would behave as outlined in the datasheets for simulation testing purposes. There are a limited number of debug header pins on the development board that can be connected to a logic analyzer we utilized them to do individual component testing as a last resort to determine why a component was not working as we designed it to. Besides simulation and logic analyzer testing, the successful run of the Synthesis tool indicated to a large extent that the design was successfully mapped into hardware and that the design did not contain too many behavioral components Counter Simulation Testing We designed a 20-bit counter with a separate enable pin to prevent gating the clock. In addition, two separate inputs are available to define from where to start counting and when to stop. The counter was used extensively throughout the project; therefore we felt that simulation verification of its correct operation was necessary. The simulation output with a description of the test can be found in Appendix C AC97 Codec Simulation Testing The AC97 Codec simulation was used to verify that the SYNCH signals were being asserted at the appropriate time as well as the fact that the frames were off the correct length. The simulation output with a description of the test can be found in Appendix C VGA Timing Generator Simulation Testing Initially, a misunderstanding of the VGA standard caused a great deal of problems. It was erroneously thought that a notion of time, not of pixel count, dictated the length of the various porches. Upon changing the design to count pixels and lines for the various porches, the design functioned as expected. The simulation in Appendix C.4 shows the assertion of HSYNC, Blank and VSYNC signals at appropriate times and was matched with the VGA timing reference diagram given in Appendix A.4 12

17 4.1.3 AC97, Ethernet Testing Even though the functional testing verified that the AC97 plus Ethernet worked as expected, we preformed logic analyzer testing to ensure that the frames were of the appropriate lengths. In addition, at times the sound on the remote side had noise and static we used the logic analyzer to isolate and solve that problem. The logic analyzer output can be found in Appendix C.5 with a description of the output MAC Testing To ensure the functionality of the MAC layer, we took an incremental approach to testing. The first step was to produce a design that appeared to simulate properly in ModelSim. The next step was to synthesize the design, and send the design to the XUP boards. For our initially hopeful tests, we connected two boards to each other using a crossover cable. We looked at the results using a logic analyzer to verify that data could properly be transferred between two devices. Next we connected the two devices to an Ethernet switch. Looking at the logic analyzer traces, we realized that our frames were being dropped. This resulted in much looking at the frames that we were sending. This led to our next test which involved connecting one device directly to the computer using a crossover cable. The computer would try and capture the frames produced by our device using the program Ethereal [6]. However, this approach did not work. Frames that are considered invalid by the Ethernet card are discarded without notifying software. This led to the next approach to see what a valid frame is. Winpcap [7] is a library that provides an API for capturing and sending raw frames from the Ethernet card. We modified an example program to send a frame to our device. We then would look at the results captured by the logic analyzer. We found that the preamble and SFD (Start Field Delimiter) were different than specified in the IEEE standard. The extensive testing finally led to a breakthrough when we were able to successfully generate a valid CRC which had been our main problem. A misreading of the Xlinix CRC Application Note [8] had led to a misunderstanding with respect to utilizing the CRC module. 4.2 Conclusions The testing outlined above helped verify that the components were working as expected and provided a greater measure of confidence in the final integrated design working properly. In the end, we stuck to our initial Design Review testing plan to verify the correct functioning of our project. 13

18 5. Cost Table 1 Labor and Parts Breakdown Labor Haider Ali ($50/hr) x 2.5 x 100 hrs $12,500 Kent Borecky ($50/hr) x 2.5 x 100 hrs $12,500 Parts XUP Development Board (Available) $ 300 ISSI IS61LV5128T, 512K x 8 SRAM Module (Available) $50 Cypress CY7C68013 USB controller (Available) $50 D-link Ethernet Switch $25 Dynex 7 CAT6 Network Cable (5 cables) $(15*5) TOTAL $25,500 In the end, our labor and parts cost were in line with our estimates during the Design Review as suggested by Table 1. Given the fact that the project was a proof-of-concept, it would not be feasible to project any price for which the project could be sold to end-users. Rather, if this was to be sold to customers, an ASIC or packaged FPGA device with only the necessary external devices would be more appropriate. For a ball park reference, given that today ipods are sold for around $300, a device with ipod functionality in addition to network connectivity would be around $400-$500 range. 14

19 6. CONCLUSIONS From the outset, Pod-Casting was a rather ambitious project even while just focusing on the Ethernet MAC implementation. Although we were unable to initially get the MAC layer fully functional, we however did manage to fix the problems we were having with the CRC module of the Ethernet Frame structure. After fixing this problem, our project was able to support multiple XUP boards communicating via an Ethernet switch and broadcasting and listening to streams simultaneously. In addition, we were able to integrate the keyboard and VGA for asynchronous audio information update into the rest of the design implementation. As such, Pod-Casting adhered to the initial project plan to implement an audio streaming architecture, with all the features initially proposed in the design review. A certain improvement on the current implementation would involve more efficient means to broadcast data; in the current paradigm the broadcaster acts like a AM/FM Radio station by sending out data to everyone given the constraints on bandwidth, it might be more useful to allow other devices to notice the presence of a broadcasting device and manually select to join the broadcasting. In this way, the issue with not being able to use the broadcast address would then be reduced to sequencing through all connected devices listening to the audio stream and ensuring that everyone gets all the audio frames to prevent static and noise on the received side. Given that we are operating at such a low level of abstraction where there is no reliable delivery mechanism, the next step towards an improved streaming experience would be to implement the TCP stack and IP and/or UDP packets to transfer the audio data. Given the widespread availability of cheap DSP chips that perform hardware-based MPEG Layer III decoding, it begs the question whether it is really worth re-inventing the wheel at least with respect to the decoder part of the project. Nonetheless, even after this experience, the project developers feel that the basic premise of the project is valid and that it would be interesting to see the direction in which a device-p2p network would flourish towards. A more realistic enterprise could perhaps utilize a soft-core RISC processor for the Virtex-II Pro using which the MPEG decoder could be implemented. 15

20 REFERENCES [1] National Semiconductors, LM4550 AC 97 Rev 2.1 Multi-Channel Audio Codec with Stereo Headphone Amplifier, Sample Rate Conversion and National 3D Sound, [Online Document], May 2004 [cited 12 Jun 2005], Available HTTP: [2] Intel, Intel LXT972A 3.3V Dual-Speed Fast Ethernet Transceiver Datasheet, [Online Document], August 2002 [cited 16 Jun 2005], Available HTTP: [3] ISSI Semiconductors, 512K x 8 HIGH-SPEED CMOS STATIC RAM, [Online Document], February 2003 [cited 16 Jun 2005], Available HTTP: [4] Fairchild Semiconductors, FMS3818 Triple Video D/A Converter 3 x 8 bit, 180 Ms/s, [Online Document], November 2001 [cited 16 Jun 2005], Available HTTP: [5] MIT., Audio Input and Output, [Online Document], April 2004, [cited 30 Jun 2005], Available [6] Ethereal., Network Analyzer Software, [Online Website], July 2005, [cited 30 Jun 2005], Available [7] Winpcap, Network Capture API, [Online Website], July 2005, [cited 30 Jun 2005], Available [8] Xilinx, CRC App Note [Online Document], July 2005, [cited 30 Jun 2005], Available 16

21 Appendix A Block Diagrams Appendix B Hardware Description Language Schematics Appendix C Simulations Appendix D Spectral Analysis 17

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

FPGA Laboratory Assignment 4. Due Date: 06/11/2012 FPGA Laboratory Assignment 4 Due Date: 06/11/2012 Aim The purpose of this lab is to help you understanding the fundamentals of designing and testing memory-based processing systems. In this lab, you will

More information

Checkpoint 1 AC97 Audio

Checkpoint 1 AC97 Audio UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Checkpoint 1 AC97 Audio 1.0 Motivation One of the most difficult aspects of digital

More information

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress Nor Zaidi Haron Ayer Keroh +606-5552086 zaidi@utem.edu.my Masrullizam Mat Ibrahim Ayer Keroh +606-5552081 masrullizam@utem.edu.my

More information

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4) ECE 574: Modeling and synthesis of digital systems using Verilog and VHDL Fall Semester 2017 Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 3, 2006 Problem Set Due: March 15, 2006 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 2, 2007 Problem Set Due: March 14, 2007 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

Design and Implementation of an AHB VGA Peripheral

Design and Implementation of an AHB VGA Peripheral Design and Implementation of an AHB VGA Peripheral 1 Module Overview Learn about VGA interface; Design and implement an AHB VGA peripheral; Program the peripheral using assembly; Lab Demonstration. System

More information

An FPGA Based Solution for Testing Legacy Video Displays

An FPGA Based Solution for Testing Legacy Video Displays An FPGA Based Solution for Testing Legacy Video Displays Dale Johnson Geotest Marvin Test Systems Abstract The need to support discrete transistor-based electronics, TTL, CMOS and other technologies developed

More information

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA 1 ARJUNA RAO UDATHA, 2 B.SUDHAKARA RAO, 3 SUDHAKAR.B. 1 Dept of ECE, PG Scholar, 2 Dept of ECE, Associate Professor, 3 Electronics,

More information

Arbitrary Waveform Generator

Arbitrary Waveform Generator 1 Arbitrary Waveform Generator Client: Agilent Technologies Client Representatives: Art Lizotte, John Michael O Brien Team: Matt Buland, Luke Dunekacke, Drew Koelling 2 Client Description: Agilent Technologies

More information

Figure 1: Feature Vector Sequence Generator block diagram.

Figure 1: Feature Vector Sequence Generator block diagram. 1 Introduction Figure 1: Feature Vector Sequence Generator block diagram. We propose designing a simple isolated word speech recognition system in Verilog. Our design is naturally divided into two modules.

More information

Design of VGA Controller using VHDL for LCD Display using FPGA

Design of VGA Controller using VHDL for LCD Display using FPGA International OPEN ACCESS Journal Of Modern Engineering Research (IJMER) Design of VGA Controller using VHDL for LCD Display using FPGA Khan Huma Aftab 1, Monauwer Alam 2 1, 2 (Department of ECE, Integral

More information

AD9884A Evaluation Kit Documentation

AD9884A Evaluation Kit Documentation a (centimeters) AD9884A Evaluation Kit Documentation Includes Documentation for: - AD9884A Evaluation Board - SXGA Panel Driver Board Rev 0 1/4/2000 Evaluation Board Documentation For the AD9884A Purpose

More information

Sandia Project Document.doc

Sandia Project Document.doc Sandia Project Document Version 3.0 Author: Date: July 13, 2010 Reviewer: Don Figer Date: July 13, 2010 Printed on Monday, June 04, 2012 Sandia Project Document.doc 1.0 INTRODUCTION...1 2.0 PROJECT STATEMENT

More information

Spartan-II Development System

Spartan-II Development System 2002-May-4 Introduction Dünner Kirchweg 77 32257 Bünde Germany www.trenz-electronic.de The Spartan-II Development System is designed to provide a simple yet powerful platform for FPGA development, which

More information

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview Digilent Nexys-3 Cellular RAM Controller Reference Design Overview General Overview This document describes a reference design of the Cellular RAM (or PSRAM Pseudo Static RAM) controller for the Digilent

More information

Laboratory Exercise 4

Laboratory Exercise 4 Laboratory Exercise 4 Polling and Interrupts The purpose of this exercise is to learn how to send and receive data to/from I/O devices. There are two methods used to indicate whether or not data can be

More information

Lab # 9 VGA Controller

Lab # 9 VGA Controller Lab # 9 VGA Controller Introduction VGA Controller is used to control a monitor (PC monitor) and has a simple protocol as we will see in this lab. Kit parts for this lab 1 A closer look VGA Basics The

More information

Commsonic. Satellite FEC Decoder CMS0077. Contact information

Commsonic. Satellite FEC Decoder CMS0077. Contact information Satellite FEC Decoder CMS0077 Fully compliant with ETSI EN-302307-1 / -2. The IP core accepts demodulated digital IQ inputs and is designed to interface directly with the CMS0059 DVB-S2 / DVB-S2X Demodulator

More information

Lab 3: VGA Bouncing Ball I

Lab 3: VGA Bouncing Ball I CpE 487 Digital Design Lab Lab 3: VGA Bouncing Ball I 1. Introduction In this lab, we will program the FPGA on the Nexys2 board to display a bouncing ball on a 640 x 480 VGA monitor connected to the VGA

More information

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018 Petter Källström, Mario Garrido September 10, 2018 Abstract In the initialization of the DE2-115 (after you restart it), an image is copied into the SRAM memory. What you have to do in this lab is to read

More information

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC reset underflow Supplied as human readable VHDL (or Verilog) source code Simple FIFO input interface

More information

TV Synchronism Generation with PIC Microcontroller

TV Synchronism Generation with PIC Microcontroller TV Synchronism Generation with PIC Microcontroller With the widespread conversion of the TV transmission and coding standards, from the early analog (NTSC, PAL, SECAM) systems to the modern digital formats

More information

Logic Analysis Basics

Logic Analysis Basics Logic Analysis Basics September 27, 2006 presented by: Alex Dickson Copyright 2003 Agilent Technologies, Inc. Introduction If you have ever asked yourself these questions: What is a logic analyzer? What

More information

Logic Analysis Basics

Logic Analysis Basics Logic Analysis Basics September 27, 2006 presented by: Alex Dickson Copyright 2003 Agilent Technologies, Inc. Introduction If you have ever asked yourself these questions: What is a logic analyzer? What

More information

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline EECS150 - Digital Design Lecture 12 - Video Interfacing Oct. 8, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John

More information

Chapter 4. Logic Design

Chapter 4. Logic Design Chapter 4 Logic Design 4.1 Introduction. In previous Chapter we studied gates and combinational circuits, which made by gates (AND, OR, NOT etc.). That can be represented by circuit diagram, truth table

More information

VGA 8-bit VGA Controller

VGA 8-bit VGA Controller Summary This document provides detailed reference information with respect to the VGA Controller peripheral device. Core Reference CR0113 (v3.0) March 13, 2008 The VGA Controller provides a simple, 8-bit

More information

Laboratory Exercise 7

Laboratory Exercise 7 Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied

More information

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components VGA Controller Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, 2012 Fig. 1. VGA Controller Components 1 VGA Controller Leif Andersen, Daniel Blakemore, Jon Parker University

More information

6.111 Project Proposal IMPLEMENTATION. Lyne Petse Szu-Po Wang Wenting Zheng

6.111 Project Proposal IMPLEMENTATION. Lyne Petse Szu-Po Wang Wenting Zheng 6.111 Project Proposal Lyne Petse Szu-Po Wang Wenting Zheng Overview: Technology in the biomedical field has been advancing rapidly in the recent years, giving rise to a great deal of efficient, personalized

More information

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity.

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity. Prototyping an ASIC with FPGAs By Rafey Mahmud, FAE at Synplicity. With increased capacity of FPGAs and readily available off-the-shelf prototyping boards sporting multiple FPGAs, it has become feasible

More information

Checkpoint 2 Video Encoder

Checkpoint 2 Video Encoder UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE ASSIGNED: Week of 3/7 DUE: Week of 3/14, 10 minutes after start (xx:20) of your assigned

More information

Using the XC9500/XL/XV JTAG Boundary Scan Interface

Using the XC9500/XL/XV JTAG Boundary Scan Interface Application Note: XC95/XL/XV Family XAPP69 (v3.) December, 22 R Using the XC95/XL/XV JTAG Boundary Scan Interface Summary This application note explains the XC95 /XL/XV Boundary Scan interface and demonstrates

More information

EEM Digital Systems II

EEM Digital Systems II ANADOLU UNIVERSITY DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING EEM 334 - Digital Systems II LAB 3 FPGA HARDWARE IMPLEMENTATION Purpose In the first experiment, four bit adder design was prepared

More information

IP LIVE PRODUCTION UNIT NXL-IP55

IP LIVE PRODUCTION UNIT NXL-IP55 IP LIVE PRODUCTION UNIT NXL-IP55 OPERATION MANUAL 1st Edition (Revised 2) [English] Table of Contents Overview...3 Features... 3 Transmittable Signals... 3 Supported Networks... 3 System Configuration

More information

SECTION 686 VIDEO DECODER DESCRIPTION

SECTION 686 VIDEO DECODER DESCRIPTION 686 SECTION 686 VIDEO DECODER DESCRIPTION 686.01.01 GENERAL A. This specification describes the functional, performance, environmental, submittal, documentation, and warranty requirements, as well as the

More information

L14: Final Project Kickoff. L14: Spring 2006 Introductory Digital Systems Laboratory

L14: Final Project Kickoff. L14: Spring 2006 Introductory Digital Systems Laboratory L14: Final Project Kickoff 1 Schedule - I Form project teams this week (nothing to turn in) Project Abstract (Due April 10 th in 38-107 by 1PM) Start discussing project ideas with the 6.111 staff Each

More information

HOLITA HDLC Core: Datasheet

HOLITA HDLC Core: Datasheet HOLITA HDLC Core: Datasheet Version 1.0, July 2012 8-bit Parallel to Serial Shift 8-bit Serial to Parallel Shift HDLC Core FSC16/32 Generation Zero Insert Transmit Control FSC16/32 Check Zero Deletion

More information

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC or SoC Supplied as human readable VHDL (or Verilog) source code Output supports full flow control permitting

More information

Digital Audio Design Validation and Debugging Using PGY-I2C

Digital Audio Design Validation and Debugging Using PGY-I2C Digital Audio Design Validation and Debugging Using PGY-I2C Debug the toughest I 2 S challenges, from Protocol Layer to PHY Layer to Audio Content Introduction Today s digital systems from the Digital

More information

An Efficient SOC approach to Design CRT controller on CPLD s

An Efficient SOC approach to Design CRT controller on CPLD s A Monthly Peer Reviewed Open Access International e-journal An Efficient SOC approach to Design CRT controller on CPLD s Abstract: Sudheer Kumar Marsakatla M.tech Student, Department of ECE, ACE Engineering

More information

L13: Final Project Kickoff. L13: Spring 2005 Introductory Digital Systems Laboratory

L13: Final Project Kickoff. L13: Spring 2005 Introductory Digital Systems Laboratory L13: Final Project Kickoff 1 Schedule Project Abstract (Due April 4 th in class) Start discussing project ideas with the 6.111 staff Abstract should be about 1 page (clearly state the work partition) a

More information

IEEE802.11a Based Wireless AV Module(WAVM) with Digital AV Interface. Outline

IEEE802.11a Based Wireless AV Module(WAVM) with Digital AV Interface. Outline IEEE802.11a Based Wireless AV Module() with Digital AV Interface TOSHIBA Corp. T.Wakutsu, N.Shibuya, E.Kamagata, T.Matsumoto, Y.Nagahori, T.Sakamoto, Y.Unekawa, K.Tagami, M.Serizawa Outline Background

More information

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin EDA385 Bomberman Fredrik Ahlberg ael09fah@student.lu.se Adam Johansson rys08ajo@student.lu.se Magnus Hultin ael08mhu@student.lu.se 2013-09-23 Abstract This report describes how a Super Nintendo Entertainment

More information

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core Video overlays on 24-bit RGB or YCbCr 4:4:4 video Supports all video resolutions up to 2 16 x 2 16 pixels Supports any

More information

Using on-chip Test Pattern Compression for Full Scan SoC Designs

Using on-chip Test Pattern Compression for Full Scan SoC Designs Using on-chip Test Pattern Compression for Full Scan SoC Designs Helmut Lang Senior Staff Engineer Jens Pfeiffer CAD Engineer Jeff Maguire Principal Staff Engineer Motorola SPS, System-on-a-Chip Design

More information

Decade Counters Mod-5 counter: Decade Counter:

Decade Counters Mod-5 counter: Decade Counter: Decade Counters We can design a decade counter using cascade of mod-5 and mod-2 counters. Mod-2 counter is just a single flip-flop with the two stable states as 0 and 1. Mod-5 counter: A typical mod-5

More information

EECS150 - Digital Design Lecture 12 Project Description, Part 2

EECS150 - Digital Design Lecture 12 Project Description, Part 2 EECS150 - Digital Design Lecture 12 Project Description, Part 2 February 27, 2003 John Wawrzynek/Sandro Pintz Spring 2003 EECS150 lec12-proj2 Page 1 Linux Command Server network VidFX Video Effects Processor

More information

CHECKPOINT 2.5 FOUR PORT ARBITER AND USER INTERFACE

CHECKPOINT 2.5 FOUR PORT ARBITER AND USER INTERFACE 1.0 MOTIVATION UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE CHECKPOINT 2.5 FOUR PORT ARBITER AND USER INTERFACE Please note that

More information

SignalTap Plus System Analyzer

SignalTap Plus System Analyzer SignalTap Plus System Analyzer June 2000, ver. 1 Data Sheet Features Simultaneous internal programmable logic device (PLD) and external (board-level) logic analysis 32-channel external logic analyzer 166

More information

Contents Circuits... 1

Contents Circuits... 1 Contents Circuits... 1 Categories of Circuits... 1 Description of the operations of circuits... 2 Classification of Combinational Logic... 2 1. Adder... 3 2. Decoder:... 3 Memory Address Decoder... 5 Encoder...

More information

B. The specified product shall be manufactured by a firm whose quality system is in compliance with the I.S./ISO 9001/EN 29001, QUALITY SYSTEM.

B. The specified product shall be manufactured by a firm whose quality system is in compliance with the I.S./ISO 9001/EN 29001, QUALITY SYSTEM. VideoJet 8000 8-Channel, MPEG-2 Encoder ARCHITECTURAL AND ENGINEERING SPECIFICATION Section 282313 Closed Circuit Video Surveillance Systems PART 2 PRODUCTS 2.01 MANUFACTURER A. Bosch Security Systems

More information

Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop. Course project for ECE533

Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop. Course project for ECE533 Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop Course project for ECE533 I. Objective: REPORT-I The objective of this project is to design a 4-bit counter and implement it into a chip

More information

Generation and Measurement of Burst Digital Audio Signals with Audio Analyzer UPD

Generation and Measurement of Burst Digital Audio Signals with Audio Analyzer UPD Generation and Measurement of Burst Digital Audio Signals with Audio Analyzer UPD Application Note GA8_0L Klaus Schiffner, Tilman Betz, 7/97 Subject to change Product: Audio Analyzer UPD . Introduction

More information

UG0651 User Guide. Scaler. February2018

UG0651 User Guide. Scaler. February2018 UG0651 User Guide Scaler February2018 Contents 1 Revision History... 1 1.1 Revision 5.0... 1 1.2 Revision 4.0... 1 1.3 Revision 3.0... 1 1.4 Revision 2.0... 1 1.5 Revision 1.0... 1 2 Introduction... 2

More information

PCM ENCODING PREPARATION... 2 PCM the PCM ENCODER module... 4

PCM ENCODING PREPARATION... 2 PCM the PCM ENCODER module... 4 PCM ENCODING PREPARATION... 2 PCM... 2 PCM encoding... 2 the PCM ENCODER module... 4 front panel features... 4 the TIMS PCM time frame... 5 pre-calculations... 5 EXPERIMENT... 5 patching up... 6 quantizing

More information

Rec. ITU-R BT RECOMMENDATION ITU-R BT * WIDE-SCREEN SIGNALLING FOR BROADCASTING

Rec. ITU-R BT RECOMMENDATION ITU-R BT * WIDE-SCREEN SIGNALLING FOR BROADCASTING Rec. ITU-R BT.111-2 1 RECOMMENDATION ITU-R BT.111-2 * WIDE-SCREEN SIGNALLING FOR BROADCASTING (Signalling for wide-screen and other enhanced television parameters) (Question ITU-R 42/11) Rec. ITU-R BT.111-2

More information

COSC3213W04 Exercise Set 2 - Solutions

COSC3213W04 Exercise Set 2 - Solutions COSC313W04 Exercise Set - Solutions Encoding 1. Encode the bit-pattern 1010000101 using the following digital encoding schemes. Be sure to write down any assumptions you need to make: a. NRZ-I Need to

More information

NOW Handout Page 1. Traversing Digital Design. EECS Components and Design Techniques for Digital Systems. Lec 13 Project Overview.

NOW Handout Page 1. Traversing Digital Design. EECS Components and Design Techniques for Digital Systems. Lec 13 Project Overview. Traversing Digital Design EECS 150 - Components and Design Techniques for Digital Systems You Are Here EECS150 wks 6-15 Lec 13 Project Overview David Culler Electrical Engineering and Computer Sciences

More information

Error performance objective for 400GbE

Error performance objective for 400GbE Error performance objective for 400GbE Pete Anslow, Ciena IEEE 400 Gb/s Ethernet Study Group, York, September 2013 1 Introduction The error performance objective adopted for the P802.3ba, P802.3bj and

More information

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics EECS150 - Digital Design Lecture 10 - Interfacing Oct. 1, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

Design of a Binary Number Lock (using schematic entry method) 1. Synopsis: 2. Description of the Circuit:

Design of a Binary Number Lock (using schematic entry method) 1. Synopsis: 2. Description of the Circuit: Design of a Binary Number Lock (using schematic entry method) 1. Synopsis: This lab gives you more exercise in schematic entry, state machine design using the one-hot state method, further understanding

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - III Sequential Logic I Sequential circuits: latches flip flops analysis of clocked sequential circuits state reduction and assignments Registers and Counters: Registers shift registers ripple counters

More information

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit) Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6. - Introductory Digital Systems Laboratory (Spring 006) Laboratory - Introduction to Digital Electronics

More information

Error performance objective for 25 GbE

Error performance objective for 25 GbE Error performance objective for 25 GbE Pete Anslow, Ciena IEEE 25 Gb/s Ethernet Study Group, Ottawa, Canada, September 2014 1 History The error performance objective adopted for the P802.3ba, P802.3bj

More information

Laboratory Exercise 7

Laboratory Exercise 7 Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied

More information

LMH0340/LMH0341 SerDes EVK User Guide

LMH0340/LMH0341 SerDes EVK User Guide LMH0340/LMH0341 SerDes EVK User Guide July 1, 2008 Version 1.05 1 1... Overview 3 2... Evaluation Kit (SD3GXLEVK) Contents 3 3... Hardware Setup 4 3.1 ALP100 BOARD (MAIN BOARD) DESCRIPTION 5 3.2 SD340EVK

More information

MTL Software. Overview

MTL Software. Overview MTL Software Overview MTL Windows Control software requires a 2350 controller and together - offer a highly integrated solution to the needs of mechanical tensile, compression and fatigue testing. MTL

More information

Teletext Inserter Firmware. User s Manual. Contents

Teletext Inserter Firmware. User s Manual. Contents Teletext Inserter Firmware User s Manual Contents 0 Definition 3 1 Frontpanel 3 1.1 Status Screen.............. 3 1.2 Configuration Menu........... 4 2 Controlling the Teletext Inserter via RS232 4 2.1

More information

VGA Port. Chapter 5. Pin 5 Pin 10. Pin 1. Pin 6. Pin 11. Pin 15. DB15 VGA Connector (front view) DB15 Connector. Red (R12) Green (T12) Blue (R11)

VGA Port. Chapter 5. Pin 5 Pin 10. Pin 1. Pin 6. Pin 11. Pin 15. DB15 VGA Connector (front view) DB15 Connector. Red (R12) Green (T12) Blue (R11) Chapter 5 VGA Port The Spartan-3 Starter Kit board includes a VGA display port and DB15 connector, indicated as 5 in Figure 1-2. Connect this port directly to most PC monitors or flat-panel LCD displays

More information

Experiment # 4 Counters and Logic Analyzer

Experiment # 4 Counters and Logic Analyzer EE20L - Introduction to Digital Circuits Experiment # 4. Synopsis: Experiment # 4 Counters and Logic Analyzer In this lab we will build an up-counter and a down-counter using 74LS76A - Flip Flops. The

More information

Low-speed serial buses are used in wide variety of electronics products. Various low-speed buses exist in different

Low-speed serial buses are used in wide variety of electronics products. Various low-speed buses exist in different Low speed serial buses are widely used today in mixed-signal embedded designs for chip-to-chip communication. Their ease of implementation, low cost, and ties with legacy design blocks make them ideal

More information

A MISSILE INSTRUMENTATION ENCODER

A MISSILE INSTRUMENTATION ENCODER A MISSILE INSTRUMENTATION ENCODER Item Type text; Proceedings Authors CONN, RAYMOND; BREEDLOVE, PHILLIP Publisher International Foundation for Telemetering Journal International Telemetering Conference

More information

R5 RIC Quickstart R5 RIC. R5 RIC Quickstart. Saab TransponderTech AB. Appendices. Project designation. Document title. Page 1 (25)

R5 RIC Quickstart R5 RIC. R5 RIC Quickstart. Saab TransponderTech AB. Appendices. Project designation. Document title. Page 1 (25) Appendices 1 (25) Project designation R5 RIC Document title CONTENTS 2 (25) 1 References... 4 2 Dimensions... 5 3 Connectors... 6 3.1 Power input... 6 3.2 Video I... 6 3.3 Video Q... 6 3.4 Sync... 6 3.5

More information

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited April 2, 2013 John Wawrzynek Spring 2013 EECS150 - Lec19-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential

More information

Smart Night Light. Figure 1: The state diagram for the FSM of the ALS.

Smart Night Light. Figure 1: The state diagram for the FSM of the ALS. Smart Night Light Matt Ball, Aidan Faraji-Tajrishi, Thomas Goold, James Wallace Electrical and Computer Engineering Department School of Engineering and Computer Science Oakland University, Rochester,

More information

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory L14: Quiz Information and Final Project Kickoff 1 Quiz Quiz Review on Monday, March 29 by TAs 7:30 P.M. to 9:30 P.M. Room 34-101 Quiz will be Closed Book on March 31 st (during class time, Location, Walker

More information

Sapera LT 8.0 Acquisition Parameters Reference Manual

Sapera LT 8.0 Acquisition Parameters Reference Manual Sapera LT 8.0 Acquisition Parameters Reference Manual sensors cameras frame grabbers processors software vision solutions P/N: OC-SAPM-APR00 www.teledynedalsa.com NOTICE 2015 Teledyne DALSA, Inc. All rights

More information

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras Group #4 Prof: Chow, Paul Student 1: Robert An Student 2: Kai Chun Chou Student 3: Mark Sikora April 10 th, 2015 Final

More information

HDMI & VGA Receiver over IP with USB Connections - ID# & 15456

HDMI & VGA Receiver over IP with USB Connections - ID# & 15456 HDMI & VGA Receiver over IP with USB Connections - ID# 15455 & 15456 Operation Manual Introduction The 4K2K video and audio extender is multi-function extender supports up to 4K2K ultra high-definition

More information

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging Compatible Windows Software GLOBAL LAB Image/2 DT Vision Foundry DT3162 Variable-Scan Monochrome Frame Grabber for the PCI Bus Key Features High-speed acquisition up to 40 MHz pixel acquire rate allows

More information

The World Leader in High Performance Signal Processing Solutions. Section 15. Parallel Peripheral Interface (PPI)

The World Leader in High Performance Signal Processing Solutions. Section 15. Parallel Peripheral Interface (PPI) The World Leader in High Performance Signal Processing Solutions Section 5 Parallel Peripheral Interface (PPI) L Core Timer 64 Performance Core Monitor Processor ADSP-BF533 Block Diagram Instruction Memory

More information

White Paper Lower Costs in Broadcasting Applications With Integration Using FPGAs

White Paper Lower Costs in Broadcasting Applications With Integration Using FPGAs Introduction White Paper Lower Costs in Broadcasting Applications With Integration Using FPGAs In broadcasting production and delivery systems, digital video data is transported using one of two serial

More information

Hello, and welcome to this presentation of the STM32 Serial Audio Interface. I will present the features of this interface, which is used to connect

Hello, and welcome to this presentation of the STM32 Serial Audio Interface. I will present the features of this interface, which is used to connect Hello, and welcome to this presentation of the STM32 Serial Audio Interface. I will present the features of this interface, which is used to connect external audio devices 1 The Serial Audio Interface

More information

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath Objectives Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath In the previous chapters we have studied how to develop a specification from a given application, and

More information

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS Application Note ABSTRACT... 3 KEYWORDS... 3 I. INTRODUCTION... 4 II. TIMING SIGNALS USAGE AND APPLICATION... 5 III. FEATURES AND

More information

Kramer Electronics, Ltd. USER MANUAL. Model: FC Analog Video to SDI Converter

Kramer Electronics, Ltd. USER MANUAL. Model: FC Analog Video to SDI Converter Kramer Electronics, Ltd. USER MANUAL Model: FC-7501 Analog Video to SDI Converter Contents Contents 1 Introduction 1 2 Getting Started 1 3 Overview 2 4 Your Analog Video to SDI Converter 3 5 Using Your

More information

Notes on Digital Circuits

Notes on Digital Circuits PHYS 331: Junior Physics Laboratory I Notes on Digital Circuits Digital circuits are collections of devices that perform logical operations on two logical states, represented by voltage levels. Standard

More information

BLOCK CODING & DECODING

BLOCK CODING & DECODING BLOCK CODING & DECODING PREPARATION... 60 block coding... 60 PCM encoded data format...60 block code format...61 block code select...62 typical usage... 63 block decoding... 63 EXPERIMENT... 64 encoding...

More information

Video Graphics Array (VGA)

Video Graphics Array (VGA) Video Graphics Array (VGA) Chris Knebel Ian Kaneshiro Josh Knebel Nathan Riopelle Image Source: Google Images 1 Contents History Design goals Evolution The protocol Signals Timing Voltages Our implementation

More information

ECE 532 Design Project Group Report. Virtual Piano

ECE 532 Design Project Group Report. Virtual Piano ECE 532 Design Project Group Report Virtual Piano Chi Wei Hecheng Wang April 9, 2012 Table of Contents 1 Overview... 3 1.1 Goals... 3 1.2 Background and motivation... 3 1.3 System overview... 3 1.4 IP

More information

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus Digital logic: ALUs Sequential logic circuits CS207, Fall 2004 October 11, 13, and 15, 2004 1 Read-only memory (ROM) A form of memory Contents fixed when circuit is created n input lines for 2 n addressable

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) Quiz #2 - Spring 2003 Prof. Anantha Chandrakasan and Prof. Don

More information

Implementation of CRC and Viterbi algorithm on FPGA

Implementation of CRC and Viterbi algorithm on FPGA Implementation of CRC and Viterbi algorithm on FPGA S. V. Viraktamath 1, Akshata Kotihal 2, Girish V. Attimarad 3 1 Faculty, 2 Student, Dept of ECE, SDMCET, Dharwad, 3 HOD Department of E&CE, Dayanand

More information

Interfacing the TLC5510 Analog-to-Digital Converter to the

Interfacing the TLC5510 Analog-to-Digital Converter to the Application Brief SLAA070 - April 2000 Interfacing the TLC5510 Analog-to-Digital Converter to the TMS320C203 DSP Perry Miller Mixed Signal Products ABSTRACT This application report is a summary of the

More information

Commsonic. ISDB-S3 Modulator CMS0070. Contact information

Commsonic. ISDB-S3 Modulator CMS0070. Contact information ISDB-S3 Modulator CMS0070 Fully compliant with ARIB STD-B44. Variable sample-rate interpolation provides ultra-flexible clocking strategy BPSK, QPSK, 8-PSK, 16-APSK and 32-APSK supported. Integrated LDPC

More information

Logic Devices for Interfacing, The 8085 MPU Lecture 4

Logic Devices for Interfacing, The 8085 MPU Lecture 4 Logic Devices for Interfacing, The 8085 MPU Lecture 4 1 Logic Devices for Interfacing Tri-State devices Buffer Bidirectional Buffer Decoder Encoder D Flip Flop :Latch and Clocked 2 Tri-state Logic Outputs

More information

Digital Electronics II 2016 Imperial College London Page 1 of 8

Digital Electronics II 2016 Imperial College London Page 1 of 8 Information for Candidates: The following notation is used in this paper: 1. Unless explicitly indicated otherwise, digital circuits are drawn with their inputs on the left and their outputs on the right.

More information

TV Character Generator

TV Character Generator TV Character Generator TV CHARACTER GENERATOR There are many ways to show the results of a microcontroller process in a visual manner, ranging from very simple and cheap, such as lighting an LED, to much

More information