HDLC Controller

HDLC Controller

Details

Category: Communication Controller

Created: September 25, 2001

Updated: January 27, 2020

Other project properties

Development Status: Stable

WishBone compliant: Yes

WishBone version: n/a

License: n/a

Description

Features

- 8 bit parallel backend interface
- use external RX and TX clocks
- Start and end of frame pattern generation
- Start and end of frame pattern checking
- Idle pattern generation and detection (all ones)
- Idle pattern is assumed only after the end of a frame which is signaled by an abort signal
- Zero insertion
- Abort pattern generation and checking
- Address insertion and detection by software
- CRC generation and checking (Optional, external, since CRC-16 or CRC-32 can be used)
- FIFO buffers and synchronization (External)
- Byte aligned data (if data is not aligned to 8-bits extra random bits are inserted)
- Q.921, LAPB and LAPD compliant.
- For complete specifications refer to spec document

Status

The VHDL code is ready in the opencores CVS. The code needs verification contact me if you are intrested in helping me.

- also see Download section

Resource usage

Rx Channel Block: which includes HDLC Framing extraction, zero removal and conversion from serial to parallel.

Vendor Device Size Frequency 

Board Tested

Functional Test

Notes
Altera

EP20K100BC356-3

108 LCs

91.48MHz

- - No optimization was performed, using Quartus II

 

Tx Channel Block: which includes HDLC Frame generation, zero insertion and conversion from parallel to serial.

Vendor Device Size Frequency 

Board Tested

Functional Test

Notes
Altera

EP20K100BC356-3

100 LCs

112.42MHz

- - No optimization was performed, using Quartus II

 

HDLC controller Block: which includes both the Rx and Tx channels, FCS-16 generation and checking, 128 byte buffering for each direction and Wishbon SOC bus interface and controller registers.

Vendor Device Size Frequency 

Board Tested

Functional Test

Notes
Altera

EP20K100BC356-3

630 LCs, 2 ESBs

CLK_I=74.02, RxClk=101.86, TxClk=106.42

- - No optimization was performed, using Quartus II

 

Links

  • http://www.rad.com/networks/1994/hdlc/hdlc.htm
  • http://www.erg.abdn.ac.uk/users/gorry/course/dl-pages/hdlc-framing.html
  • http://members.tripod.com/~vkalra/hdlc.html
  • http://goanna.cs.rmit.edu.au/~ivan/cs361/lec/lec5.pdf
  • http://www.inicore.com/____pdf/inihdlc.pdf
  • http://www.mentorg.com/inventra/netlist_program/actel/ds/hdlccoreA1_pd.pdf