Commit 920b7a16 authored by Dimitris Lampridis's avatar Dimitris Lampridis

migrate complete RTL and SPEC ref memory map and interconnect to Cheby

parent 8008de69
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
SIM =../testbench/include
DOC =../../doc/manual
SW =../../software/include/hw
SOURCES = $(wildcard *.cheby)
......@@ -13,6 +12,5 @@ $(TARGETS): %.vhd : %.cheby
@echo "\n\033[34m\033[1m-> Processing file $<\033[0m"
@cheby -i $< --gen-hdl=$@
@cheby -i $< \
--gen-doc=$(DOC)/$(@:.vhd=.html) \
--gen-consts=$(SIM)/$(@:.vhd=.v) \
--gen-c=$(SW)/$(@:.vhd=.h)
memory-map:
bus: wb-32-be
name: fmc_adc_100ms_csr
size: 0x200
description: FMC ADC 100MS/s core registers
comment: |
Wishbone slave for FMC ADC 100MS/s core
......
memory-map:
name: fmc_adc_mezzanine_mmap
bus: wb-32-be
description: FMC-ADC-100M mezzanine memory map
size: 0x2000
x-hdl:
busgroup: True
children:
- submap:
name: fmc_adc_100m_csr
address: 0x1000
description: FMC ADC 100M CSR
filename: fmc_adc_100Ms_csr.cheby
- submap:
name: fmc_i2c_master
address: 0x1400
size: 0x100
interface: wb-32-be
x-hdl:
busgroup: True
description: Mezzanine system management I2C master
- submap:
name: fmc_adc_eic
address: 0x1500
size: 0x10
interface: wb-32-be
x-hdl:
busgroup: True
description: FMC ADC Embedded Interrupt Controller
- submap:
name: si570_i2c_master
address: 0x1600
size: 0x100
interface: wb-32-be
x-hdl:
busgroup: True
description: Si570 control I2C master
- submap:
name: ds18b20_onewire_master
address: 0x1700
size: 0x100
interface: wb-32-be
x-hdl:
busgroup: True
description: DS18B20 OneWire master
- submap:
name: fmc_spi_master
address: 0x1800
size: 0x20
interface: wb-32-be
x-hdl:
busgroup: True
description: Mezzanine SPI master (ADC control + DAC offsets)
- submap:
name: timetag_core
address: 0x1900
description: Timetag Core
filename: timetag_core_regs.cheby
This diff is collapsed.
memory-map:
name: spec_ref_fmc_adc_100m_mmap
bus: wb-32-be
description: SPEC FMC-ADC-100M memory map
size: 0x6000
x-hdl:
busgroup: True
children:
- submap:
name: metadata
address: 0x2000
size: 0x40
interface: wb-32-be
x-hdl:
busgroup: True
description: a ROM containing the application metadata
- submap:
name: fmc_adc_mezzanine
address: 0x4000
description: FMC ADC Mezzanine
filename: fmc_adc_mezzanine_mmap.cheby
......@@ -2,6 +2,7 @@ memory-map:
bus: wb-32-be
name: timetag_core_regs
description: Time-tagging core registers
size: 0x80
comment: |
Wishbone slave for registers related to time-tagging core
x-hdl:
......
......@@ -3,11 +3,12 @@ files = [
"fmc_adc_mezzanine_pkg.vhd",
"fmc_adc_100Ms_core.vhd",
"fmc_adc_100Ms_core_pkg.vhd",
"fmc_adc_100Ms_csr.vhd",
"fmc_adc_aux_trigin.vhd",
"fmc_adc_aux_trigout.vhd",
"fmc_adc_eic.vhd",
"offset_gain_s.vhd",
"timetag_core_regs.vhd",
"timetag_core.vhd",
"../cheby/fmc_adc_mezzanine_mmap.vhd",
"../cheby/fmc_adc_100Ms_csr.vhd",
"../cheby/fmc_adc_aux_trigin.vhd",
"../cheby/fmc_adc_aux_trigout.vhd",
"../cheby/timetag_core_regs.vhd",
]
This diff is collapsed.
`define FMC_ADC_100MS_CSR_SIZE 344
`define FMC_ADC_100MS_CSR_SIZE 512
`define ADDR_FMC_ADC_100MS_CSR_CTL 'h0
`define FMC_ADC_100MS_CSR_CTL_FSM_CMD_OFFSET 0
`define FMC_ADC_100MS_CSR_CTL_FSM_CMD 'h3
......
`define FMC_ADC_MEZZANINE_MMAP_SIZE 8192
`define ADDR_FMC_ADC_MEZZANINE_MMAP_FMC_ADC_100M_CSR 'h1000
`define FMC_ADC_MEZZANINE_MMAP_FMC_ADC_100M_CSR_SIZE 512
`define ADDR_FMC_ADC_MEZZANINE_MMAP_FMC_I2C_MASTER 'h1400
`define FMC_ADC_MEZZANINE_MMAP_FMC_I2C_MASTER_SIZE 256
`define ADDR_FMC_ADC_MEZZANINE_MMAP_FMC_ADC_EIC 'h1500
`define FMC_ADC_MEZZANINE_MMAP_FMC_ADC_EIC_SIZE 16
`define ADDR_FMC_ADC_MEZZANINE_MMAP_SI570_I2C_MASTER 'h1600
`define FMC_ADC_MEZZANINE_MMAP_SI570_I2C_MASTER_SIZE 256
`define ADDR_FMC_ADC_MEZZANINE_MMAP_DS18B20_ONEWIRE_MASTER 'h1700
`define FMC_ADC_MEZZANINE_MMAP_DS18B20_ONEWIRE_MASTER_SIZE 256
`define ADDR_FMC_ADC_MEZZANINE_MMAP_FMC_SPI_MASTER 'h1800
`define FMC_ADC_MEZZANINE_MMAP_FMC_SPI_MASTER_SIZE 32
`define ADDR_FMC_ADC_MEZZANINE_MMAP_TIMETAG_CORE 'h1900
`define FMC_ADC_MEZZANINE_MMAP_TIMETAG_CORE_SIZE 128
`define SPEC_REF_FMC_ADC_100M_MMAP_SIZE 24576
`define ADDR_SPEC_REF_FMC_ADC_100M_MMAP_METADATA 'h2000
`define SPEC_REF_FMC_ADC_100M_MMAP_METADATA_SIZE 64
`define ADDR_SPEC_REF_FMC_ADC_100M_MMAP_FMC_ADC_MEZZANINE 'h4000
`define SPEC_REF_FMC_ADC_100M_MMAP_FMC_ADC_MEZZANINE_SIZE 8192
`define TIMETAG_CORE_REGS_SIZE 72
`define TIMETAG_CORE_REGS_SIZE 128
`define ADDR_TIMETAG_CORE_REGS_SECONDS_UPPER 'h0
`define TIMETAG_CORE_REGS_SECONDS_UPPER_OFFSET 0
`define TIMETAG_CORE_REGS_SECONDS_UPPER 'hff
......
SIM =../../testbench/include
DOC =../../../doc/manual
SW =../../../software/include/hw
SOURCES = $(wildcard *.cheby)
TARGETS = $(SOURCES:.cheby=.vhd)
all: $(TARGETS)
.PHONY: $(TARGETS)
$(TARGETS): %.vhd : %.cheby
@echo "\n\033[34m\033[1m-> Processing file $<\033[0m"
@cheby -i $< --gen-hdl=$@
@cheby -i $< \
--gen-doc=$(DOC)/$(@:.vhd=.html) \
--gen-consts=$(SIM)/$(@:.vhd=.v) \
--gen-c=$(SW)/$(@:.vhd=.h)
files = [
"spec_ref_fmc_adc_100Ms.vhd",
"spec_carrier_csr.vhd",
"dma_eic.vhd",
"../../cheby/spec_ref_fmc_adc_100Ms_mmap.vhd",
]
fetchto = "../../ip_cores"
......
This diff is collapsed.
This diff is collapsed.
WBGEN2=$(shell which wbgen2)
RTL=../
TEX=../../../../doc/manual/spec/
all: dma_eic
dma_eic:
$(WBGEN2) -l vhdl -V $(RTL)$@.vhd -f html -D $@.htm -C $@.h $@.wb
$(WBGEN2) -f texinfo -D $(TEX)$@.tex $@.wb
This diff is collapsed.
This diff is collapsed.
peripheral {
name = "GN4124 DMA enhanced interrupt controller";
description = "Enhanced interrrupt controller for GN4124 DMA.";
hdl_entity = "dma_eic";
prefix = "dma_eic";
irq {
name = "DMA done interrupt";
description = "DMA done interrupt line (rising edge sensitive).";
prefix = "dma_done";
trigger = EDGE_RISING;
};
irq {
name = "DMA error interrupt";
description = "DMA error interrupt line (rising edge sensitive).";
prefix = "dma_error";
trigger = EDGE_RISING;
};
};
This diff is collapsed.
#ifndef __CHEBY__AUX_TRIGIN__H__
#define __CHEBY__AUX_TRIGIN__H__
#define AUX_TRIGIN_SIZE 20
/* Core version */
#define AUX_TRIGIN_VERSION 0x0UL
......@@ -18,13 +19,13 @@
struct aux_trigin {
/* [0x0]: REG (ro) Core version */
uint32_t version;
/* [0x4]: REG (rw) Control register */
uint32_t ctrl;
/* [0x8]: REG (rw) Time (seconds) to trigger */
uint64_t seconds;
/* [0x10]: REG (rw) Time (cycles) to trigger */
uint32_t cycles;
};
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment