Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare first release candidate #5

Open
wants to merge 51 commits into
base: release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
0dfcb89
Added common interfaces for differential signals, high-speed lanes an…
Paebbels Jul 4, 2020
db96c57
Added I²C interface descriptions.
Paebbels Jul 4, 2020
a7663b1
Added JTAG interface.
Paebbels Jul 4, 2020
35489e8
Added SPI interface.
Paebbels Jul 4, 2020
4a17103
Fixed package name and signal name mappings.
Paebbels Jul 4, 2020
419863f
Added license text.
Paebbels Jul 4, 2020
9fb05fc
Added license text.
Paebbels Jul 4, 2020
582593b
Added license text.
Paebbels Jul 4, 2020
c7f12f6
Added DS for differential signaling to T_Lane. Added license text.
Paebbels Jul 4, 2020
0767550
Merged common interfaces
Paebbels Jul 4, 2020
83b6619
Merged i2c
Paebbels Jul 4, 2020
ed29bbb
Merged jtag
Paebbels Jul 4, 2020
c5e528a
Merged SPI
Paebbels Jul 4, 2020
699a2d0
Added Command-Status-Error interface.
Paebbels Jul 4, 2020
ca12d94
Added initial documentation.
Paebbels Jul 4, 2020
2083138
Fixed yml formatting for RTD. Extended conf.py. Added license file. A…
Paebbels Jul 4, 2020
e47ce6a
Disabled recursive loading of main requirements file.
Paebbels Jul 4, 2020
66d6dd2
This solves #10.
Paebbels Jul 4, 2020
b6d4734
Fixed typo.
Paebbels Jul 4, 2020
23908ed
Added common types for AXI4.
Paebbels Jul 5, 2020
ed32569
Added unconstraint interface description for AXI4-Lite.
Paebbels Jul 5, 2020
7c4a6f5
Added generic package, so commonly used presized AXI interface can be…
Paebbels Jul 5, 2020
2c9e68c
Added commonly used presized AXI4-Lite interfaces.
Paebbels Jul 5, 2020
315bda5
Added views.
Paebbels Jul 5, 2020
5bc9ae1
Merged CSE
Paebbels Jul 5, 2020
afb8728
Added UART interface and views.
Paebbels Jul 5, 2020
6f85961
Merged UART
Paebbels Jul 5, 2020
706880c
Added VGA interface.
Paebbels Jul 5, 2020
121e68d
Added I²S interface.
Paebbels Jul 5, 2020
dec4136
Merged I2S
Paebbels Jul 5, 2020
e8fb5bc
Merge pull request #12 from VHDL/naming
Paebbels Jul 5, 2020
db4944c
Merge pull request #11 from VHDL/documentation
Paebbels Jul 5, 2020
0aa8cd0
Added draft for Ethernet related interfaces (RMII, MII, RGMII, GMII, …
Paebbels Jul 5, 2020
f9146df
Added MIPI D-PHY interface.
Paebbels Jul 5, 2020
b7f6c4c
Fixed data in MIPI D-PHY to use an 'array mode view indication'.
Paebbels Jul 5, 2020
6413ed5
Added physical interfaces for cages like SFP and QSFP.
Paebbels Jul 5, 2020
1f7d22d
Merged Cages
Paebbels Jul 5, 2020
f8abd03
Updated after style reviews.
Paebbels Jul 6, 2020
4bf6fb5
Added predefined constants for AXI4.
Paebbels Jul 6, 2020
c3d53ca
Added missing Cache field in AXI4-Lite.
Paebbels Jul 6, 2020
24b8cb5
Added implementation for AXI4-Stream.
Paebbels Jul 6, 2020
995b4b3
Added AXI4 definitions (incomplete).
Paebbels Jul 6, 2020
f85b760
Added MIPI C-PHY interface.
Paebbels Jul 6, 2020
cd82571
Renamed Sender to Transmitter in UART protocol.
Paebbels May 18, 2023
a9c279c
Specified generic types in CSE package as enumeration types.
Paebbels May 18, 2023
9cab69e
Merge branch 'AXI' into dev
Paebbels May 18, 2023
a92ecae
Merge branch 'Ethernet' into dev
Paebbels May 18, 2023
9211893
Added MIPI M-PHY interface.
Paebbels Jul 6, 2020
9c3d619
Merge branch 'MIPI' into dev
Paebbels May 18, 2023
0c6ba95
Merge branch 'VGA' into dev
Paebbels May 18, 2023
24223c3
Updated file headers.
Paebbels May 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
root = true

[*]
charset = utf-8
# end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab
indent_size = 2
tab_width = 2


[*.py]
indent_style = tab
indent_size = 2

[*.{yml,yaml}]
indent_style = space
indent_size = 2

[*.{json,ini}]
indent_style = tab
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[*.rst]
indent_style = space
indent_size = 3
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
/temp
# Python cache and object files
__pycache__/
*.py[cod]

# Sphinx documentation
/doc/_build

# PyCharm project
/.idea/workspace.xml

# Temperary generated outputs from scripts
/temp
21 changes: 21 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2

submodules:
include: []

build:
image: latest

python:
version: 3.8
install:
- requirements: doc/requirements.txt

sphinx:
builder: html
configuration: doc/conf.py

formats:
- pdf
# - htmlzip
# - epub
174 changes: 174 additions & 0 deletions AMBA/AXI/v4/AXI4.unconstrained.vhdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
-- =============================================================================
-- Authors:
-- Rob Gaddi
-- Patrick Lehmann
--
-- Package:
-- VHDL-2019 AXI4 interface descriptions
--
-- Description:
-- Undocumented
--
-- License:
-- =============================================================================
-- Copyright 2016-2023 Open Source VHDL Group
--
-- 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.
-- =============================================================================

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;

use work.Axi4Common.all;


package Axi4 is
type Axi4_Address_Interface is record
-- Handshake signals
Valid : std_ulogic;
Ready : std_ulogic;

-- Payload signals
ID : ID_Type;
Address : Address_Type;
Len : Length_Type;
Size : Size_Type;
Burst : Burst_Type;
Lock : Lock_Type;
QoS : QualityOfService_Type;
Region : Region_Type;
Cache : Cache_Type;
Protect : Protect_Type;

User : User_Type;
end record;

type Axi4_WriteData_Interface is record
-- Handshake signals
Valid : std_ulogic;
Ready : std_ulogic;

-- Payload signals
Data : Data_Type;
Strobe : Strobe_Type;
Last : std_ulogic;

User : User_Type;
end record;

type Axi4_WriteResponse_Interface is record
-- Handshake signals
Valid : std_ulogic;
Ready : std_ulogic;

-- Payload signals
ID : ID_Type;
Response : Response_Type;

User : User_Type;
end record;

type Axi4_ReadData_Interface is record
-- Handshake signals
Valid : std_ulogic;
Ready : std_ulogic;

-- Payload signals
ID : ID_Type;
Response : Response_Type;

Data : Data_Type;
Last : std_ulogic;

User : User_Type;
end record;

type Axi4_Interface is record
WriteAddress : Axi4_Address_Interface;
WriteData : Axi4_WriteData_Interface;
WriteResponse : Axi4_WriteResponse_Interface;
ReadAddress : Axi4_Address_Interface;
ReadData : Axi4_ReadData_Interface;
end record;

-- All lower-level views are defined from the driver's point of view.
view Axi4_Address_MasterView of Axi4_Address_Interface is
-- Handshake signals
Valid : out;
Ready : in;

-- Payload signals
ID : out;
Address : out;
Len : out;
Size : out;
Burst : out;
Lock : out;
QoS : out;
Region : out;
Cache : out;
Protect : out;
User : out;
end view;
alias Axi4_Address_SlaveView is Axi4_Address_MasterView'converse;

view Axi4_WriteData_MasterView of Axi4_WriteData_Interface is
-- Handshake signals
Valid : out;
Ready : in;

-- Payload signals
Data : out;
Strobe : out;
Last : out;
User : out;
end view;
alias Axi4_WriteData_SlaveView is Axi4_WriteData_MasterView'converse;

view Axi4_WriteResponse_MasterView of Axi4_WriteResponse_Interface is
-- Handshake signals
Valid : in;
Ready : out;

-- Payload signals
ID : in;
Response : in;
User : in;
end view;
alias Axi4_WriteResponse_SlaveView is Axi4_WriteResponse_MasterView'converse;

view Axi4_ReadData_MasterView of Axi4_ReadData_Interface is
-- Handshake signals
Valid : in;
Ready : out;

-- Payload signals
ID : in;
Response : in;
Data : in;
Last : in;
User : in;
end view;
alias Axi4_ReadData_SlaveView is Axi4_ReadData_MasterView'converse;

view Axi4_MasterView of Axi4_Interface is
WriteAddress : view Axi4_Address_MasterView;
WriteData : view Axi4_WriteData_MasterView;
WriteResponse : view Axi4_WriteResponse_MasterView;
ReadAddress : view Axi4_Address_MasterView;
ReadData : view Axi4_ReadData_MasterView;
end view;
alias Axi4_SlaveView is Axi4_MasterView'converse;

end package;
92 changes: 92 additions & 0 deletions AMBA/AXI/v4/AXI4Common.vhdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
-- =============================================================================
-- Authors:
-- Patrick Lehmann
--
-- Package:
-- VHDL-2019 Common types in AXI4 interface descriptions
--
-- Description:
-- Undocumented
--
-- License:
-- =============================================================================
-- Copyright 2016-2023 Open Source VHDL Group
--
-- 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.
-- =============================================================================

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;


package Axi4Common is
-- Common to all AXI buses
subtype Data_Type is std_ulogic_vector;
subtype User_Type is std_ulogic_vector;

-- Unique to AXI-Stream
subtype Keep_Type is std_ulogic_vector;

-- Unique to AXI-Lite
subtype Address_Type is unresolved_unsigned;
subtype Strobe_Type is std_ulogic_vector;


-- Unique to AXI
subtype ID_Type is unsigned;
subtype Length_Type is unsigned(3 downto 0);
subtype Lock_Type is std_ulogic_vector(3 downto 0);
subtype Region_Type is std_ulogic_vector(3 downto 0);
subtype Cache_Type is std_ulogic_vector(3 downto 0);
subtype QualityOfService_Type is std_ulogic_vector(3 downto 0);


subtype Size_Type is unsigned(2 downto 0);
constant AXI4_SIZE_1 : Size_Type := "000";
constant AXI4_SIZE_2 : Size_Type := "001";
constant AXI4_SIZE_4 : Size_Type := "010";
constant AXI4_SIZE_8 : Size_Type := "011";
constant AXI4_SIZE_16 : Size_Type := "100";
constant AXI4_SIZE_32 : Size_Type := "101";
constant AXI4_SIZE_64 : Size_Type := "110";
constant AXI4_SIZE_128 : Size_Type := "111";


subtype Burst_Type is std_ulogic_vector(1 downto 0);
constant AXI4_BURST_FIXED : Burst_Type := "00";
constant AXI4_BURST_INCR : Burst_Type := "01";
constant AXI4_BURST_WRAP : Burst_Type := "10";


subtype Response_Type is std_ulogic_vector(1 downto 0);
constant AXI4_RESPONSE_OKAY : Response_Type := "00";
constant AXI4_RESPONSE_EX_OKAY : Response_Type := "01";
constant AXI4_RESPONSE_SLAVE_ERROR : Response_Type := "10";
constant AXI4_RESPONSE_DECODE_ERROR : Response_Type := "11";


subtype Protect_Type is std_ulogic_vector(2 downto 0);
-- Bit 0: 0 Unprivileged access 1 Privileged access
-- Bit 1: 0 Secure access 1 Non-secure access
-- Bit 2: 0 Data access 1 Instruction access
constant AXI4_PROTECT_INIT : Protect_Type := "UUU";
constant AXI4_PROTECT_NONE : Protect_Type := "000";


type AXI4_System_Interface is record
Clock : std_ulogic;
Reset_n : std_ulogic;
end record;

end package;
Loading