Documentation for project veresta-docgen-demo

Generated by Sigasi 5.5.0.202312210927

Revision 2023-12-21

Table of Contents

Project files overview

Design Units

Project veresta-docgen-demo has 10 design units.

Module counter

This design unit is implemented in step​_1​_dut​_core.sv

Parameters and Ports

Parameters

NameTypeDefault ValueDescription
WIDTH16

Ports

NameDirectionTypeDescription
clkinwire logic
rstinwire logic
startinwire logic
enableinwire logic
endvalueinwire logic [(WIDTH-1):0]
countoutwire logic [(WIDTH-1):0]
near​_endoutlogic
on​_edgeoutlogic

Block Diagram

Always Blocks

  • unnamed : always
    • And 1 more

Module dut​_core

This design unit is implemented in step​_1​_dut​_core.sv

Parameters and Ports

Ports

NameDirectionTypeDescription
pixel​_outoutlogic [7:0]
pixel​_ppinwire logic [7:0]
pixel​_p0inwire logic [7:0]
pixel​_pminwire logic [7:0]
pixel​_0pinwire logic [7:0]
pixel​_0minwire logic [7:0]
pixel​_mpinwire logic [7:0]
pixel​_m0inwire logic [7:0]
pixel​_mminwire logic [7:0]
on​_edgeinwire logic
clockinwire logic
resetinwire logic

Block Diagram

Always Blocks

  • unnamed : always
    • TODO "Autocompletion" On the blank line below, type the first letters of always and then Ctrl+Space. Select Insert an always block with posedge clk (double-click, or use arrow up/down and press enter). An always block is generated and clk is selected. Type cl (replacing clk) and press Ctrl+Space again to auto-select clock which is our clock signal.

  • unnamed : always_ff

Module dut​_engine

This design unit is implemented in step​_5​_dut​_engine.sv

Parameters and Ports

Ports

NameDirectionTypeDescription
clkinwire logic
rstinwire logic
startinwire logic
extra​_at​_startinwire logic
start​_xoutlogic
enable​_xoutlogic
near​_end​_xinwire logic
start​_youtlogic
enable​_youtlogic
near​_end​_yinwire logic
pixel​_validoutlogic
idleoutlogic

Block Diagram

Always Blocks

  • unnamed : always
    • Statemachine

Module dut​_top

This design unit is implemented in step​_2​_dut​_top.sv

This file depends on: step_1_dut_core.sv, step_5_dut_engine.sv, step_3_pixelbuffer.sv

Parameters and Ports

Ports

NameDirectionTypeDescription
clkinwire logic

core clock

rstinwire logic

system reset

startinwire logic

start DUT (pulse)

size​_xinwire logic [11:0]

image width

size​_yinwire logic [11:0]

image height

pixel​_ininwire logic [7:0]

pixel in (streaming input)

pixel​_outoutwire logic [7:0]

pixel out (streaming output)

pixel​_validoutwire logic

indicates that the output pixel is valid

Instantiations

Block Diagram

Module image​_testbench

This design unit is implemented in step​_6​_image​_testbench.sv

This file depends on: drive_rst_start.vhd, step_2_dut_top.sv

Description

Standardized header of my.compa.ny

(c) 2020 MyCo Inc. All rites reversed.

Top-level testbench of the Imaginary Project

Author: Sigasi Team

Instantiations

Block Diagram

Initial Blocks

  • unnamed : initial
    • Initialize the source image

Always Blocks

  • unnamed : always
    • Clock generator

  • unnamed : always
    • Feed data into the DUT

Module pixel​_testbench

This design unit is implemented in step​_4​_pixel​_testbench.sv

This file depends on: step_2_dut_top.sv

Instantiations

Block Diagram

Always Blocks

  • unnamed : always
    • Feed data into the DUT

      Statemachine

  • unnamed : always
    • Clock generator

Module pixelbuffer

This design unit is implemented in step​_3​_pixelbuffer.sv

This file depends on: ram.sv

Description

Module pixelbuffer implements a buffer to contain 2 pixel rows + 3 pixels of the image. Pixels arrive into the buffer in a streaming mode. A 3x3 pixel window (without the central pixel) is offered at the output.

This is a behavioral implementation, not suitable for synthesis.

Parameters and Ports

Ports

NameDirectionTypeDescription
clkinwire logic

core clock and synchronous reset

rstinwire logic

core clock and synchronous reset

size​_xinwire logic [11:0]

image width

pixel​_ininwire logic [(24-1):0]

input pixel

pixel​_in​_validinwire logic

incoming pixel is valid

pixel​_ppoutlogic [(24-1):0]

3x3 pixel window: upper right

pixel​_p0outlogic [(24-1):0]

3x3 pixel window: middle right

pixel​_pmoutlogic [(24-1):0]

3x3 pixel window: bottom right

pixel​_0poutlogic [(24-1):0]

3x3 pixel window: upper middle

pixel​_0moutlogic [(24-1):0]

3x3 pixel window: lower middle

pixel​_mpoutlogic [(24-1):0]

3x3 pixel window: upper left

pixel​_m0outlogic [(24-1):0]

3x3 pixel window: middle left

pixel​_mmoutlogic [(24-1):0]

3x3 pixel window: bottom left

Instantiations

Block Diagram

Always Blocks

  • unnamed : always
    • And 1 more

Module ram

This design unit is implemented in ram.sv

Description

A naive RAM module without an impementation

Parameters and Ports

Parameters

NameTypeDefault ValueDescription
addrwidth8
datawidth8

Ports

NameDirectionTypeDescription
clkinwire logic

clock

rstinwire logic

reset

addressinwire logic [addrwidth-1:0]

address

reninwire logic

read enable

weninwire logic

write enable

data​_ininwire logic [datawidth-1:0]

data in

data​_outoutlogic [(datawidth-1):0]

data out

Block Diagram

Entity work.drive​_rst​_start

This design unit is implemented in drive​_rst​_start.vhd

Architectures

Generics and Ports

Ports

NameDirectionTypeDescription
rstoutstd​_logic
startoutstd​_logic

Architecture work.drive​_rst​_start(RTL)

This design unit is implemented in drive​_rst​_start.vhd

This architecture implements entity work.drive​_rst​_start

Processes

  • proc​_stim

Block Diagram