Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
Conv TTL Blocking
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
5
Issues
5
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Conv TTL Blocking
Commits
0a562a82
Commit
0a562a82
authored
Feb 22, 2013
by
Theodor-Adrian Stana
Browse files
Options
Browse Files
Download
Plain Diff
Merged with code-cleanup branch.
parents
9a13e613
18145f41
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
364 additions
and
502 deletions
+364
-502
.gitignore
hdl/IMAGES/image1/.gitignore
+1
-1
BloV2.ucf
hdl/IMAGES/image1/constraints/V2/BloV2.ucf
+14
-14
image1.gise
hdl/IMAGES/image1/project/image1.gise
+0
-191
image1_core.vhd
hdl/IMAGES/image1/rtl/image1_core.vhd
+132
-93
image1_pkg.vhd
hdl/IMAGES/image1/rtl/image1_pkg.vhd
+32
-32
image1_top.vhd
hdl/IMAGES/image1/top/image1_top.vhd
+106
-92
basic_trigger_top.vhd
hdl/basic_trigger/rtl/basic_trigger_top.vhd
+21
-21
i2c_regs.vhd
hdl/i2c_slave_wb_master/rtl/i2c_regs.vhd
+22
-22
i2c_slave_core.vhd
hdl/i2c_slave_wb_master/rtl/i2c_slave_core.vhd
+12
-12
i2c_slave_pkg.vhd
hdl/i2c_slave_wb_master/rtl/i2c_slave_pkg.vhd
+8
-8
i2c_slave_top.vhd
hdl/i2c_slave_wb_master/rtl/i2c_slave_top.vhd
+16
-16
No files found.
hdl/IMAGES/image1/.gitignore
View file @
0a562a82
...
...
@@ -11,7 +11,7 @@
#Ignore autotrash from ISE
project/*
project/*/
!project/image1.gise
#
!project/image1.gise
!project/image1.xise
!project/image1.tcl
#!project/waveform/
...
...
hdl/IMAGES/image1/constraints/V2/BloV2.ucf
View file @
0a562a82
...
...
@@ -7,8 +7,8 @@
##----------------------------------------
NET "
rst_i
" LOC = N20;
NET "
rst_i
" IOSTANDARD = LVTTL;
NET "
RST
" LOC = N20;
NET "
RST
" IOSTANDARD = LVTTL;
#NET "FPGA_SYSRESET_N" LOC = L20;
NET "MR_N" LOC = T22;
NET "MR_N" IOSTANDARD = LVTTL;
...
...
@@ -371,18 +371,18 @@ NET "LEVEL" IOSTANDARD = LVCMOS33;
##--
##-- + ACT: CMOS 3.3V input
##-------------------
NET "
fpga_rtmm_n_i
[0]" LOC = V21;
NET "
fpga_rtmm_n_i
[0]" IOSTANDARD = LVCMOS33;
NET "
fpga_rtmm_n_i
[1]" LOC = V22;
NET "
fpga_rtmm_n_i
[1]" IOSTANDARD = LVCMOS33;
NET "
fpga_rtmm_n_i
[2]" LOC = U22;
NET "
fpga_rtmm_n_i
[2]" IOSTANDARD = LVCMOS33;
NET "
fpga_rtmp_n_i
[0]" LOC = W22;
NET "
fpga_rtmp_n_i
[0]" IOSTANDARD = LVCMOS33;
NET "
fpga_rtmp_n_i
[1]" LOC = Y22;
NET "
fpga_rtmp_n_i
[1]" IOSTANDARD = LVCMOS33;
NET "
fpga_rtmp_n_i
[2]" LOC = Y21;
NET "
fpga_rtmp_n_i
[2]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMM_N
[0]" LOC = V21;
NET "
FPGA_RTMM_N
[0]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMM_N
[1]" LOC = V22;
NET "
FPGA_RTMM_N
[1]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMM_N
[2]" LOC = U22;
NET "
FPGA_RTMM_N
[2]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMP_N
[0]" LOC = W22;
NET "
FPGA_RTMP_N
[0]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMP_N
[1]" LOC = Y22;
NET "
FPGA_RTMP_N
[1]" IOSTANDARD = LVCMOS33;
NET "
FPGA_RTMP_N
[2]" LOC = Y21;
NET "
FPGA_RTMP_N
[2]" IOSTANDARD = LVCMOS33;
###-------------------
###-- General purpose
###--
...
...
hdl/IMAGES/image1/project/image1.gise
deleted
100644 → 0
View file @
9a13e613
This diff is collapsed.
Click to expand it.
hdl/IMAGES/image1/rtl/image1_core.vhd
View file @
0a562a82
This diff is collapsed.
Click to expand it.
hdl/IMAGES/image1/rtl/image1_pkg.vhd
View file @
0a562a82
...
...
@@ -119,38 +119,38 @@ package image1_pkg is
c_mask_trigleds_wb
,
c_MASK_I2C_SLAVE
);
component
basic_trigger_top
generic
(
g_NUMBER_OF_CHANNELS
:
NATURAL
:
=
6
;
g_CLK_PERIOD
:
TIME
:
=
20
ns
;
g_OUTPUT_PULSE_LENGTH
:
TIME
:
=
1000
ns
;
g_LED_BLINKING_LENGTH
:
TIME
:
=
(
10
**
6
)
*
250
ns
);
port
(
clk_i
:
in
STD_LOGIC
;
rst_i
:
in
STD_LOGIC
;
led_ttl_o
:
out
STD_LOGIC
;
fpga_o_en
:
out
STD_LOGIC
;
fpga_o_ttl_en
:
out
STD_LOGIC
;
fpga_o_inv_en
:
out
STD_LOGIC
;
fpga_o_blo_en
:
out
STD_LOGIC
;
level_i
:
in
STD_LOGIC
;
switch_i
:
in
STD_LOGIC
;
--! General enable
manual_rst_n_o
:
out
STD_LOGIC
;
--! It allows power sequencing of the
--! 24V rail after a security given
--! delay
pulse_i_front
:
in
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_o_front
:
out
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_i_rear
:
in
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_o_rear
:
out
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
led_o_front
:
out
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
led_o_rear
:
out
STD_LOGIC_VECTOR
(
g_NUMBER_OF_CHANNELS
downto
1
);
inv_i
:
in
STD_LOGIC_VECTOR
(
4
downto
1
);
inv_o
:
out
STD_LOGIC_VECTOR
(
4
downto
1
));
end
component
;
--
component basic_trigger_top
--
generic(g_NUMBER_OF_CHANNELS : NATURAL := 6;
--
g_CLK_PERIOD : TIME := 20 ns;
--
g_OUTPUT_PULSE_LENGTH : TIME := 1000 ns;
--
g_LED_BLINKING_LENGTH : TIME := (10**6)*250 ns);
--
port (clk_i : in STD_LOGIC;
--
rst_i : in STD_LOGIC;
--
--
led_ttl_o : out STD_LOGIC;
--
--
fpga_o_en : out STD_LOGIC;
--
fpga_o_ttl_en : out STD_LOGIC;
--
fpga_o_inv_en : out STD_LOGIC;
--
fpga_o_blo_en : out STD_LOGIC;
--
--
level_i : in STD_LOGIC;
--
switch_i : in STD_LOGIC; --! General enable
--
manual_rst_n_o : out STD_LOGIC; --! It allows power sequencing of the
--
--! 24V rail after a security given
--
--! delay
--
pulse_i_front : in STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
pulse_o_front : out STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
--
pulse_i_rear : in STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
pulse_o_rear : out STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
--
led_o_front : out STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
led_o_rear : out STD_LOGIC_VECTOR(g_NUMBER_OF_CHANNELS downto 1);
--
--
inv_i : in STD_LOGIC_VECTOR(4 downto 1);
--
inv_o : out STD_LOGIC_VECTOR(4 downto 1));
--
end component;
-- component i2c_slave_top
...
...
hdl/IMAGES/image1/top/image1_top.vhd
View file @
0a562a82
...
...
@@ -48,7 +48,7 @@ entity image1_top is
);
port
(
rst_i
:
in
std_logic
;
RST
:
in
std_logic
;
CLK20_VCXO
:
in
std_logic
;
FPGA_CLK_P
:
in
std_logic
;
--Using the 125MHz clock
FPGA_CLK_N
:
in
std_logic
;
...
...
@@ -102,8 +102,8 @@ entity image1_top is
-- RTM identifiers, should match with the expected values
-- TODO: add matching
fpga_rtmm_n_i
:
in
std_logic_vector
(
2
downto
0
);
fpga_rtmp_n_i
:
in
std_logic_vector
(
2
downto
0
)
FPGA_RTMM_N
:
in
std_logic_vector
(
2
downto
0
);
FPGA_RTMP_N
:
in
std_logic_vector
(
2
downto
0
)
);
end
image1_top
;
...
...
@@ -114,54 +114,68 @@ architecture Behavioral of image1_top is
generic
(
g_NUMBER_OF_CHANNELS
:
NATURAL
:
=
6
);
port
);
port
(
rst_i
:
in
std_logic
;
clk_20_i
:
in
std_logic
;
clk_125_i
:
in
std_logic
;
rst_i
:
in
std_logic
;
clk_20_i
:
in
std_logic
;
clk_125_i
:
in
std_logic
;
-- LEDs
led_array_o
:
out
t_led_array_o
;
led_array_o
:
out
t_led_array_o
;
led_front_n_o
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
led_rear_n_o
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
-- I/Os for pulses
led_front_n
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
led_rear_n
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_i_front_n
:
in
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_o_front
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_i_rear
:
in
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_o_rear
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
inv_i_n
:
in
std_logic_vector
(
4
downto
1
);
inv_o
:
out
std_logic_vector
(
4
downto
1
);
pulse_front_n_i
:
in
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_front_o
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_rear_i
:
in
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
pulse_rear_o
:
out
std_logic_vector
(
g_NUMBER_OF_CHANNELS
downto
1
);
inv_n_i
:
in
std_logic_vector
(
4
downto
1
);
inv_o
:
out
std_logic_vector
(
4
downto
1
);
-- Lines for the i2c_slave
i2c_slave_i
:
in
t_i2c_slave_i
;
i2c_slave_o
:
out
t_i2c_slave_o
;
i2c_slave_i
:
in
t_i2c_slave_i
;
i2c_slave_o
:
out
t_i2c_slave_o
;
-- FPGA Geographical address pins (reused for i2c address)
FPGA_GA
:
in
std_logic_vector
(
4
downto
0
);
FPGA_GAP
:
in
std_logic
;
fpga_ga_i
:
in
std_logic_vector
(
4
downto
0
);
fpga_gap_i
:
in
std_logic
;
-- Pins of the SPI interface to write into the Flash memory
spi_master_i
:
in
t_spi_master_i
;
spi_master_o
:
out
t_spi_master_o
;
-- RTM identifiers, should match with the expected values
-- TODO: add matching
fpga_o_en
:
out
std_logic
;
fpga_o_blo_en
:
out
std_logic
;
fpga_o_ttl_en
:
out
std_logic
;
fpga_o_inv_en
:
out
std_logic
;
level_i
:
in
std_logic
;
switch_i
:
in
std_logic
;
-- General enable
manual_rst_n_o
:
out
std_logic
;
-- It allows power sequencing of the
-- 24V rail after a security given delay
rtmm_i
:
in
std_logic_vector
(
2
downto
0
);
rtmp_i
:
in
std_logic_vector
(
2
downto
0
)
spi_master_i
:
in
t_spi_master_i
;
spi_master_o
:
out
t_spi_master_o
;
-- Enable signals
fpga_en_o
:
out
std_logic
;
fpga_blo_en_o
:
out
std_logic
;
fpga_ttl_en_o
:
out
std_logic
;
fpga_inv_en_o
:
out
std_logic
;
-- Level and switch inputs
level_i
:
in
std_logic
;
switch_i
:
in
std_logic
;
-- Manual reset, allows power sequencing of the
-- 24V rail after a security given delay
manual_rst_n_o
:
out
std_logic
;
-- RTM identifiers
rtmm_i
:
in
std_logic_vector
(
2
downto
0
);
rtmp_i
:
in
std_logic_vector
(
2
downto
0
)
);
end
component
;
end
component
image1_core
;
signal
clk_125
:
std_logic
;
signal
clk_125
:
std_logic
;
signal
s_led_array
:
t_led_array_o
:
=
c_led_array_default
;
signal
s_i2c_slave_i
:
t_i2c_slave_i
;
signal
i2c_slave
:
t_i2c_slave_i
;
signal
s_i2c_slave_o
:
t_i2c_slave_o
;
signal
s_spi_master_i
:
t_spi_master_i
;
signal
s_spi_master_o
:
t_spi_master_o
;
signal
s_rtm_i
:
t_rtm_i
;
signal
s
_switch_i
:
std_logic_vector
(
1
downto
1
);
signal
s
witch
:
std_logic_vector
(
1
downto
1
);
signal
rtmm
,
rtmp
:
std_logic_vector
(
2
downto
0
);
...
...
@@ -180,65 +194,65 @@ begin
O
=>
clk_125
);
LED_CTRL0
<=
s_led_array
.
CTRL0
;
LED_CTRL0_OEN
<=
s_led_array
.
CTRL0_OEN
;
LED_CTRL1
<=
s_led_array
.
CTRL1
;
LED_CTRL1_OEN
<=
s_led_array
.
CTRL1_OEN
;
LED_MULTICAST_2_0
<=
s_led_array
.
MULTICAST_2_0
;
LED_MULTICAST_3_1
<=
s_led_array
.
MULTICAST_3_1
;
LED_WR_GMT_TTL_TTLN
<=
s_led_array
.
WR_GMT_TTL_TTLN
;
LED_WR_LINK_SYSERROR
<=
s_led_array
.
WR_LINK_SYSERROR
;
LED_WR_OK_SYSPW
<=
s_led_array
.
WR_OK_SYSPW
;
LED_WR_OWNADDR_I2C
<=
s_led_array
.
WR_OWNADDR_I2C
;
s_i2c_slave_i
.
SCL_I
<=
SCL_I
;
s_i2c_slave_i
.
SDA_I
<=
SDA_I
;
SCL_O
<=
s_i2c_slave_o
.
SCL_O
;
SCL_OE
<=
s_i2c_slave_o
.
SCL_OE
;
SDA_O
<=
s_i2c_slave_o
.
SDA_O
;
SDA_OE
<=
s_i2c_slave_o
.
SDA_OE
;
s_spi_master_i
.
DIN
<=
FPGA_PROM_DIN
;
FPGA_PROM_CCLK
<=
s_spi_master_o
.
CCLK
;
FPGA_PROM_CSO_B_N
<=
s_spi_master_o
.
CSO_B_N
;
FPGA_PROM_MOSI
<=
s_spi_master_o
.
MOSI
;
rtmm
<=
not
fpga_rtmm_n_i
;
rtmp
<=
not
fpga_rtmp_n_i
;
s
_switch_i
<=
EXTRA_SWITCH
;
LED_CTRL0
<=
s_led_array
.
CTRL0
;
LED_CTRL0_OEN
<=
s_led_array
.
CTRL0_OEN
;
LED_CTRL1
<=
s_led_array
.
CTRL1
;
LED_CTRL1_OEN
<=
s_led_array
.
CTRL1_OEN
;
LED_MULTICAST_2_0
<=
s_led_array
.
MULTICAST_2_0
;
LED_MULTICAST_3_1
<=
s_led_array
.
MULTICAST_3_1
;
LED_WR_GMT_TTL_TTLN
<=
s_led_array
.
WR_GMT_TTL_TTLN
;
LED_WR_LINK_SYSERROR
<=
s_led_array
.
WR_LINK_SYSERROR
;
LED_WR_OK_SYSPW
<=
s_led_array
.
WR_OK_SYSPW
;
LED_WR_OWNADDR_I2C
<=
s_led_array
.
WR_OWNADDR_I2C
;
i2c_slave
.
SCL_I
<=
SCL_I
;
i2c_slave
.
SDA_I
<=
SDA_I
;
SCL_O
<=
s_i2c_slave_o
.
SCL_O
;
SCL_OE
<=
s_i2c_slave_o
.
SCL_OE
;
SDA_O
<=
s_i2c_slave_o
.
SDA_O
;
SDA_OE
<=
s_i2c_slave_o
.
SDA_OE
;
s_spi_master_i
.
DIN
<=
FPGA_PROM_DIN
;
FPGA_PROM_CCLK
<=
s_spi_master_o
.
CCLK
;
FPGA_PROM_CSO_B_N
<=
s_spi_master_o
.
CSO_B_N
;
FPGA_PROM_MOSI
<=
s_spi_master_o
.
MOSI
;
rtmm
<=
not
FPGA_RTMM_N
;
rtmp
<=
not
FPGA_RTMP_N
;
s
witch
<=
EXTRA_SWITCH
;
cmp_image1_core
:
image1_core
generic
map
(
g_NUMBER_OF_CHANNELS
=>
6
)
port
map
(
rst_i
=>
rst_i
,
clk_20_i
=>
CLK20_VCXO
,
clk_125_i
=>
clk_125
,
led_array_o
=>
s_led_array
,
led_front_n
=>
PULSE_FRONT_LED_N
,
led_rear_n
=>
PULSE_REAR_LED_N
,
pulse_
i_front_n
=>
FPGA_INPUT_TTL_N
,
pulse_
o_front
=>
FPGA_OUT_TTL
,
pulse_
i_rear
=>
FPGA_BLO_IN
,
pulse_
o_rear
=>
FPGA_TRIG_BLO
,
inv_
i_n
=>
INV_IN_N
,
inv_o
=>
INV_OUT
,
i2c_slave_i
=>
s_i2c_slave_i
,
i2c_slave_o
=>
s_i2c_slave_o
,
FPGA_GA
=>
FPGA_GA
,
FPGA_GAP
=>
FPGA_GAP
,
spi_master_i
=>
s_spi_master_i
,
spi_master_o
=>
s_spi_master_o
,
fpga_
o_en
=>
FPGA_OE
,
fpga_
o_blo_en
=>
FPGA_BLO_OE
,
fpga_
o_ttl_en
=>
FPGA_TRIG_TTL_OE
,
fpga_
o_inv_en
=>
FPGA_INV_OE
,
level_i
=>
LEVEL
,
switch_i
=>
s_switch_i
(
1
),
manual_rst_n_o
=>
MR_N
,
rtmm_i
=>
rtmm
,
rtmp_i
=>
rtmp
rst_i
=>
RST
,
clk_20_i
=>
CLK20_VCXO
,
clk_125_i
=>
clk_125
,
led_array_o
=>
s_led_array
,
led_front_n
_o
=>
PULSE_FRONT_LED_N
,
led_rear_n
_o
=>
PULSE_REAR_LED_N
,
pulse_
front_n_i
=>
FPGA_INPUT_TTL_N
,
pulse_
front_o
=>
FPGA_OUT_TTL
,
pulse_
rear_i
=>
FPGA_BLO_IN
,
pulse_
rear_o
=>
FPGA_TRIG_BLO
,
inv_
n_i
=>
INV_IN_N
,
inv_o
=>
INV_OUT
,
i2c_slave_i
=>
i2c_slave
,
i2c_slave_o
=>
s_i2c_slave_o
,
fpga_ga_i
=>
FPGA_GA
,
fpga_gap_i
=>
FPGA_GAP
,
spi_master_i
=>
s_spi_master_i
,
spi_master_o
=>
s_spi_master_o
,
fpga_
en_o
=>
FPGA_OE
,
fpga_
blo_en_o
=>
FPGA_BLO_OE
,
fpga_
ttl_en_o
=>
FPGA_TRIG_TTL_OE
,
fpga_
inv_en_o
=>
FPGA_INV_OE
,
level_i
=>
LEVEL
,
switch_i
=>
switch
(
1
),
manual_rst_n_o
=>
MR_N
,
rtmm_i
=>
rtmm
,
rtmp_i
=>
rtmp
);
end
Behavioral
;
hdl/basic_trigger/rtl/basic_trigger_top.vhd
View file @
0a562a82
...
...
@@ -43,10 +43,10 @@ entity basic_trigger_top is
led_ttl_o
:
out
std_logic
;
-- Enable signals
fpga_
o_en
:
out
std_logic
;
fpga_
o_ttl_en
:
out
std_logic
;
fpga_
o_inv_en
:
out
std_logic
;
fpga_
o_blo_en
:
out
std_logic
;
fpga_
en_o
:
out
std_logic
;
fpga_
ttl_en_o
:
out
std_logic
;
fpga_
inv_en_o
:
out
std_logic
;
fpga_
blo_en_o
:
out
std_logic
;
level_i
:
in
std_logic
;
switch_i
:
in
std_logic
;
...
...
@@ -55,14 +55,14 @@ entity basic_trigger_top is
manual_rst_n_o
:
out
std_logic
;
-- Front and rear pulse signals
pulse_
i_front
:
in
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
o_front
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
i_rear
:
in
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
o_rear
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
front_i
:
in
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
front_o
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
rear_i
:
in
std_logic_vector
(
g_number_of_channels
downto
1
);
pulse_
rear_o
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
-- Front and rear LED signals
led_
o_front
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
led_
o_rear
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
led_
front_o
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
led_
rear_o
:
out
std_logic_vector
(
g_number_of_channels
downto
1
);
-- Inverting inputs and outputs
inv_i
:
in
std_logic_vector
(
4
downto
1
);
...
...
@@ -131,21 +131,21 @@ begin
led_ttl_o
<=
level
;
-- pulse signal assignments
pulse_in_front
<=
pulse_
i_front
when
(
level
=
'0'
)
else
not
pulse_
i_front
;
pulse_in
<=
pulse_in_front
or
pulse_
i_rear
;
pulse_in_front
<=
pulse_
front_i
when
(
level
=
'0'
)
else
not
pulse_
front_i
;
pulse_in
<=
pulse_in_front
or
pulse_
rear_i
;
fpga_
o_en
<=
fpga_out_en
when
(
switch_i
=
'0'
)
else
'0'
;
fpga_
o_ttl_en
<=
fpga_out_ttl_en
;
fpga_
o_inv_en
<=
fpga_out_inv_en
;
fpga_
o_blo_en
<=
fpga_out_blo_en
;
fpga_
en_o
<=
fpga_out_en
when
(
switch_i
=
'0'
)
else
'0'
;
fpga_
ttl_en_o
<=
fpga_out_ttl_en
;
fpga_
inv_en_o
<=
fpga_out_inv_en
;
fpga_
blo_en_o
<=
fpga_out_blo_en
;
led_
o_front
<=
not
(
led
);
-- No need of accurate sync, hence we place
led_
o_rear
<=
not
(
led
);
-- some combinatorial here.
led_
front_o
<=
not
(
led
);
-- No need of accurate sync, hence we place
led_
rear_o
<=
not
(
led
);
-- some combinatorial here.
pulse_
o_front
<=
pulse_out
when
level
=
'0'
else
pulse_
front_o
<=
pulse_out
when
level
=
'0'
else
not
pulse_out
;
pulse_
o_rear
<=
pulse_out
;
pulse_
rear_o
<=
pulse_out
;
-- As we have one Schmitt inverter in the input,
-- and a buffer in the output, there's no need
...
...
hdl/i2c_slave_wb_master/rtl/i2c_regs.vhd
View file @
0a562a82
...
...
@@ -38,9 +38,9 @@ entity i2c_regs is
wb_master_stb_o
:
out
STD_LOGIC
;
wb_master_cyc_o
:
out
STD_LOGIC
;
wb_master_sel_o
:
out
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_master_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
dr_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
r_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_ack_i
:
in
STD_LOGIC
;
wb_master_rty_i
:
in
STD_LOGIC
;
wb_master_err_i
:
in
STD_LOGIC
;
...
...
@@ -50,9 +50,9 @@ entity i2c_regs is
wb_slave_stb_i
:
in
STD_LOGIC
;
wb_slave_cyc_i
:
in
STD_LOGIC
;
wb_slave_sel_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
dr_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
r_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_ack_o
:
out
STD_LOGIC
;
wb_slave_rty_o
:
out
STD_LOGIC
;
wb_slave_err_o
:
out
STD_LOGIC
;
...
...
@@ -106,7 +106,7 @@ architecture Behavioral of i2c_regs is
begin
wb_master_we_o
<=
s_wb_master_we_o
;
s_wb_slave_addr
<=
UNSIGNED
(
wb_slave_ad
d
r_i
);
s_wb_slave_addr
<=
UNSIGNED
(
wb_slave_adr_i
);
s_CTR0_slv
<=
f_STD_LOGIC_VECTOR
(
s_CTR0
);
s_LT
<=
f_LT
(
LT_i
);
...
...
@@ -147,8 +147,8 @@ begin
wb_master_stb_o
<=
'0'
;
wb_master_cyc_o
<=
'0'
;
wb_master_sel_o
<=
(
others
=>
'0'
);
wb_master_dat
a
_o
<=
(
others
=>
'0'
);
wb_master_ad
d
r_o
<=
(
others
=>
'0'
);
wb_master_dat_o
<=
(
others
=>
'0'
);
wb_master_adr_o
<=
(
others
=>
'0'
);
s_dtx
<=
(
others
=>
'0'
);
else
case
wb_state
is
...
...
@@ -165,16 +165,16 @@ begin
wb_master_cyc_o
<=
'1'
;
wb_master_stb_o
<=
'1'
;
wb_master_sel_o
<=
X"F"
;
wb_master_ad
d
r_o
<=
s_wb_addr_rd
;
wb_master_adr_o
<=
s_wb_addr_rd
;
when
S1N_WB_NOOP
=>
wb_master_cyc_o
<=
'1'
;
wb_master_stb_o
<=
'1'
;
wb_master_sel_o
<=
X"F"
;
wb_master_ad
d
r_o
<=
s_wb_addr_rd
;
wb_master_adr_o
<=
s_wb_addr_rd
;
when
S1_PF_WB_DATA_OUT
=>
s_DTX
<=
wb_master_dat
a
_i
;
s_DTX
<=
wb_master_dat_i
;
when
S2P_WB_WR_RQT
=>
null
;
...
...
@@ -184,16 +184,16 @@ begin
wb_master_stb_o
<=
'1'
;
s_wb_master_we_o
<=
'1'
;
wb_master_sel_o
<=
X"F"
;
wb_master_dat
a
_o
<=
f_ch_endian
(
DRXA_i
);
wb_master_ad
d
r_o
<=
DRXB_i
(
15
downto
0
);
wb_master_dat_o
<=
f_ch_endian
(
DRXA_i
);
wb_master_adr_o
<=
DRXB_i
(
15
downto
0
);
when
S2N_WB_NOOP
=>
wb_master_cyc_o
<=
'1'
;
wb_master_stb_o
<=
'1'
;
s_wb_master_we_o
<=
'1'
;
wb_master_sel_o
<=
X"F"
;
wb_master_dat
a
_o
<=
f_ch_endian
(
DRXA_i
);
wb_master_ad
d
r_o
<=
DRXB_i
(
15
downto
0
);
wb_master_dat_o
<=
f_ch_endian
(
DRXA_i
);
wb_master_adr_o
<=
DRXB_i
(
15
downto
0
);
when
S3_WB_ACK
=>
-- null;
...
...
@@ -229,7 +229,7 @@ begin
s_wb_slave_ack
<=
'1'
;
case
s_wb_slave_addr
is
-- when c_CTR0_addr =>
-- s_CTR0 <= f_CTR0(wb_slave_dat
a
_i);
-- s_CTR0 <= f_CTR0(wb_slave_dat_i);
when
others
=>
s_wb_slave_ack
<=
'0'
;
s_wb_slave_err
<=
'1'
;
...
...
@@ -238,15 +238,15 @@ begin
s_wb_slave_ack
<=
'1'
;
case
s_wb_slave_addr
is
when
c_CTR0_addr
=>
wb_slave_dat
a
_o
<=
f_STD_LOGIC_VECTOR
(
s_CTR0
);
wb_slave_dat_o
<=
f_STD_LOGIC_VECTOR
(
s_CTR0
);
when
c_LT_addr
=>
wb_slave_dat
a
_o
<=
f_STD_LOGIC_VECTOR
(
s_LT
);
wb_slave_dat_o
<=
f_STD_LOGIC_VECTOR
(
s_LT
);
when
c_DTX_addr
=>
wb_slave_dat
a
_o
<=
s_DTX
;
wb_slave_dat_o
<=
s_DTX
;
when
c_DRXA_addr
=>
wb_slave_dat
a
_o
<=
DRXA_i
;
wb_slave_dat_o
<=
DRXA_i
;
when
c_DRXB_addr
=>
wb_slave_dat
a
_o
<=
DRXB_i
;
wb_slave_dat_o
<=
DRXB_i
;
when
others
=>
s_wb_slave_ack
<=
'0'
;
s_wb_slave_err
<=
'1'
;
...
...
hdl/i2c_slave_wb_master/rtl/i2c_slave_core.vhd
View file @
0a562a82
...
...
@@ -68,10 +68,10 @@ entity i2c_slave_core is
clk_i
:
in
std_logic
;
rst_i
:
in
std_logic
;
-- I2C pins
sda_
oen
:
out
std_logic
;
sda_
en_o
:
out
std_logic
;
sda_i
:
in
std_logic
;
sda_o
:
out
std_logic
;
scl_
oen
:
out
std_logic
;
scl_
en_o
:
out
std_logic
;
scl_i
:
in
std_logic
;
scl_o
:
out
std_logic
;
...
...
@@ -150,7 +150,7 @@ architecture Behavioral of i2c_slave_core is
-- i2c signals
-------------------------------------------------------------------------------
signal
s_sda_o
:
std_logic
;
signal
s_sda_
oen
:
std_logic
;
signal
s_sda_
en_o
:
std_logic
;
signal
s_bit_done
:
std_logic
;
...
...
@@ -244,7 +244,7 @@ begin
s_watchdog_cnt
<=
to_integer
(
UNSIGNED
(
s_watchdog_cnt_slv
));
scl_o
<=
'1'
;
scl_
oen
<=
'0'
;
scl_
en_o
<=
'0'
;
sda_o
<=
s_sda_o
;
...
...
@@ -266,22 +266,22 @@ begin
end
case
;
end
process
;
sda_
oen
<=
s_sda_oen
;
sda_
en_o
<=
s_sda_en_o
;
p_sda_
oen
:
process
(
state
)
p_sda_
en_o
:
process
(
state
)
begin
s_sda_
oen
<=
'0'
;
s_sda_
en_o
<=
'0'
;
case
state
is
when
S2A_I2C_ADDR_ACK
=>
s_sda_
oen
<=
'1'
;
s_sda_
en_o
<=
'1'
;
when
S3A_WISHBONE_ADDR_ACK
=>
s_sda_
oen
<=
'1'
;
s_sda_
en_o
<=
'1'
;
when
S5RA_READ_SDA_ACK
=>
s_sda_
oen
<=
'1'
;
s_sda_
en_o
<=
'1'
;
when
S5W1A_I2C_ADDR_ACK
=>
s_sda_
oen
<=
'1'
;
s_sda_
en_o
<=
'1'
;
when
S5W2_WRITE_SDA
=>
s_sda_
oen
<=
'1'
;
s_sda_
en_o
<=
'1'
;
when
others
=>
null
;
end
case
;
...
...
hdl/i2c_slave_wb_master/rtl/i2c_slave_pkg.vhd
View file @
0a562a82
...
...
@@ -163,10 +163,10 @@ package i2c_slave_pkg is
clk_i
:
in
STD_LOGIC
;
rst_i
:
in
STD_LOGIC
;
sda_
oen
:
out
STD_LOGIC
;
sda_
en_o
:
out
STD_LOGIC
;
sda_i
:
in
STD_LOGIC
;
sda_o
:
out
STD_LOGIC
;
scl_
oen
:
out
STD_LOGIC
;
scl_
en_o
:
out
STD_LOGIC
;
scl_i
:
in
STD_LOGIC
;
scl_o
:
out
STD_LOGIC
;
...
...
@@ -189,9 +189,9 @@ package i2c_slave_pkg is
wb_master_stb_o
:
out
STD_LOGIC
;
wb_master_cyc_o
:
out
STD_LOGIC
;
wb_master_sel_o
:
out
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_master_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
dr_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
r_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_ack_i
:
in
STD_LOGIC
;
wb_master_rty_i
:
in
STD_LOGIC
;
wb_master_err_i
:
in
STD_LOGIC
;
...
...
@@ -200,9 +200,9 @@ package i2c_slave_pkg is
wb_slave_stb_i
:
in
STD_LOGIC
;
wb_slave_cyc_i
:
in
STD_LOGIC
;
wb_slave_sel_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
dr_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
r_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_ack_o
:
out
STD_LOGIC
;
wb_slave_rty_o
:
out
STD_LOGIC
;
wb_slave_err_o
:
out
STD_LOGIC
;
...
...
hdl/i2c_slave_wb_master/rtl/i2c_slave_top.vhd
View file @
0a562a82
...
...
@@ -32,10 +32,10 @@ entity i2c_slave_top is
);
port
(
sda_
oen
:
out
STD_LOGIC
;
sda_
en_o
:
out
STD_LOGIC
;
sda_i
:
in
STD_LOGIC
;
sda_o
:
out
STD_LOGIC
;
scl_
oen
:
out
STD_LOGIC
;
scl_
en_o
:
out
STD_LOGIC
;
scl_i
:
in
STD_LOGIC
;
scl_o
:
out
STD_LOGIC
;
...
...
@@ -46,9 +46,9 @@ entity i2c_slave_top is
wb_master_cyc_o
:
out
STD_LOGIC
;
wb_master_sel_o
:
out
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_master_we_o
:
out
STD_LOGIC
;
wb_master_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
dr_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_master_ad
r_o
:
out
STD_LOGIC_VECTOR
(
15
downto
0
);
wb_master_ack_i
:
in
STD_LOGIC
;
wb_master_rty_i
:
in
STD_LOGIC
;
wb_master_err_i
:
in
STD_LOGIC
;
...
...
@@ -57,9 +57,9 @@ entity i2c_slave_top is
wb_slave_cyc_i
:
in
STD_LOGIC
;
wb_slave_sel_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_we_i
:
in
STD_LOGIC
;
wb_slave_dat
a_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
a_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
dr_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_dat
_i
:
in
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_dat
_o
:
out
STD_LOGIC_VECTOR
(
31
downto
0
);
wb_slave_ad
r_i
:
in
STD_LOGIC_VECTOR
(
3
downto
0
);
wb_slave_ack_o
:
out
STD_LOGIC
;
wb_slave_rty_o
:
out
STD_LOGIC
;
wb_slave_err_o
:
out
STD_LOGIC
;
...
...
@@ -100,10 +100,10 @@ begin
clk_i
=>
wb_clk_i
,
rst_i
=>
wb_rst_i
,
sda_
oen
=>
sda_oen
,
sda_
en_o
=>
sda_en_o
,
sda_i
=>
sda_i
,
sda_o
=>
sda_o
,
scl_
oen
=>
scl_oen
,
scl_
en_o
=>
scl_en_o
,
scl_i
=>
scl_i
,
scl_o
=>
scl_o
,
...
...
@@ -133,9 +133,9 @@ begin
wb_master_stb_o
=>
wb_master_stb_o
,
wb_master_cyc_o
=>
wb_master_cyc_o
,
wb_master_sel_o
=>
wb_master_sel_o
,
wb_master_dat
a_i
=>
wb_master_data
_i
,
wb_master_dat
a_o
=>
wb_master_data
_o
,
wb_master_ad
dr_o
=>
wb_master_ad
dr_o
,
wb_master_dat
_i
=>
wb_master_dat
_i
,
wb_master_dat
_o
=>
wb_master_dat
_o
,
wb_master_ad
r_o
=>
wb_master_a
dr_o
,
wb_master_ack_i
=>
wb_master_ack_i
,
wb_master_rty_i
=>
wb_master_rty_i
,
wb_master_err_i
=>
wb_master_err_i
,
...
...
@@ -144,9 +144,9 @@ begin
wb_slave_stb_i
=>
wb_slave_stb_i
,
wb_slave_cyc_i
=>
wb_slave_cyc_i
,
wb_slave_sel_i
=>
wb_slave_sel_i
,
wb_slave_dat
a_i
=>
wb_slave_data
_i
,
wb_slave_dat
a_o
=>
wb_slave_data
_o
,
wb_slave_ad
dr_i
=>
wb_slave_ad
dr_i
,
wb_slave_dat
_i
=>
wb_slave_dat
_i
,
wb_slave_dat
_o
=>
wb_slave_dat
_o
,
wb_slave_ad
r_i
=>
wb_slave_a
dr_i
,
wb_slave_ack_o
=>
wb_slave_ack_o
,
wb_slave_rty_o
=>
wb_slave_rty_o
,
wb_slave_err_o
=>
wb_slave_err_o
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment