CDL Modules
Data Structures | Namespaces | Enumerations | Variables
framebuffer_teletext.cdl File Reference

Teletext framebuffer module with separate write and video sides. More...

Detailed Description

Teletext framebuffer module with separate write and video sides.

Copyright (C) 2016-2017, Gavin J Stark. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CDL implementation of a module that takes SRAM writes into a framebuffer, including a mapping to a dual-port SRAM (write on one side, read on the other), where the video side uses a teletext decoder and drives out vsync, hsync, data enable and pixel data.

The video side is asynchronous to the SRAM write side.

The video output side has a programmable horizontal period that starts with hsync high for one clock, and then has a programmable back porch, followed by a programmable number of pixels (with data out enabled only if on the correct vertical portion of the display), followed by a programmable front porch, repeating.

The video output side has a programmable vertical period that is in units of horizontal period; it starts with vsync high for one horizontal period, and then has a programmable front porch, followed by a programmable number of displayed lined, followed by a programmable front porch, repeating.

The video output start at a programmable base address in SRAM; moving down a line adds a programmable amount to the address in SRAM.

Data Structures

struct  framebuffer_teletext::t_video_state
 
struct  framebuffer_teletext::t_pixel_combs
 
struct  framebuffer_teletext::t_pixel_shift_register
 
struct  framebuffer_teletext::t_pixel_state
 
struct  framebuffer_teletext::t_sram_state
 
struct  framebuffer_teletext::t_video_csrs
 
struct  framebuffer_teletext::t_csrs
 

Namespaces

 framebuffer_teletext
 

Enumerations

enum  framebuffer_teletext::t_display_fsm {
  framebuffer_teletext::state_back_porch,
  framebuffer_teletext::state_display,
  framebuffer_teletext::state_front_porch
}
 

Variables

constant integer framebuffer_teletext::cfg_downsize_x =0
 
constant integer framebuffer_teletext::cfg_downsize_y =1
 
constant bit[16] framebuffer_teletext::csr_select_default = bbc_csr_select_framebuffer