Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Gateware
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
12
Issues
12
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Gateware
Commits
52c35760
Commit
52c35760
authored
Dec 03, 2010
by
Maciej Lipinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swcore: improvement on input/write to memory
parent
bac2704e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
355 additions
and
356 deletions
+355
-356
swc_input_block.vhd
swc_input_block.vhd
+340
-345
swc_packet_mem_write_pump.vhd
swc_packet_mem_write_pump.vhd
+9
-9
swc_page_alloc.vhd
swc_page_alloc.vhd
+6
-2
No files found.
swc_input_block.vhd
View file @
52c35760
This diff is collapsed.
Click to expand it.
swc_packet_mem_write_pump.vhd
View file @
52c35760
...
...
@@ -343,7 +343,7 @@ begin -- rtl
if
(
sync_i
=
'1'
)
then
if
(
pgend
=
'1'
)
then
if
(
pgend
=
'1'
and
drdy_i
=
'1'
)
then
-- see screenshot: swcore-writepump-p1
reg_full
<=
'1'
;
state_write
<=
S_WAIT_WRITE
;
...
...
@@ -352,7 +352,7 @@ begin -- rtl
-- during the last address of the page, the Linked list is being written, so we need
-- to wait for it to finish
elsif
(
mem_addr
(
c_swc_page_offset_width
-1
downto
0
)
=
allones
(
c_swc_page_offset_width
-1
downto
0
)
and
ll_idle
=
'0'
)
then
elsif
(
mem_addr
(
c_swc_page_offset_width
-1
downto
0
)
=
allones
(
c_swc_page_offset_width
-1
downto
0
)
and
ll_idle
=
'0'
)
then
state_write
<=
S_WAIT_LL_READY
;
reg_full
<=
'1'
;
...
...
@@ -373,13 +373,13 @@ begin -- rtl
end
if
;
elsif
(
drdy_i
=
'1'
and
flush_i
=
'1'
)
then
state_write
<=
S_WRITE_DATA
;
we_int
<=
'1'
;
reg_full
<=
'0'
;
cnt_last_word
<=
'0'
;
--
elsif(drdy_i = '1' and flush_i ='1') then
--
--
state_write <= S_WRITE_DATA;
--
we_int <= '1';
--
reg_full <= '0';
--
cnt_last_word <= '0';
--
else
-- synch_i = '0'
-- if(cntr = to_unsigned(c_swc_packet_mem_multiply -1,cntr'length) and drdy_i = '1') then
...
...
swc_page_alloc.vhd
View file @
52c35760
...
...
@@ -191,7 +191,7 @@ architecture syn of swc_page_allocator is
type
t_state
is
(
IDLE
,
ALLOC_LOOKUP_L1
,
ALLOC_LOOKUP_L0_UPDATE
,
FREE_CHECK_USECNT
,
FREE_RELEASE_PAGE
,
FREE_DECREASE_UCNT
,
SET_UCNT
,
NASTY_WAIT
--, FORCE_FREE_RELEASE_PAGE
SET_UCNT
,
NASTY_WAIT
,
DUMMY
--, FORCE_FREE_RELEASE_PAGE
);
-- this represents high part of the page address (bit mapping)
...
...
@@ -403,7 +403,7 @@ begin -- syn
pgaddr_to_free
<=
pgaddr_i
;
state
<=
FREE_RELEASE_PAGE
;
state
<=
DUMMY
;
--
FREE_RELEASE_PAGE;
-- decoding of provided code into low and high part
l0_wr_addr
<=
pgaddr_i
(
g_page_addr_bits
-1
downto
5
);
l0_rd_addr
<=
pgaddr_i
(
g_page_addr_bits
-1
downto
5
);
...
...
@@ -424,6 +424,10 @@ begin -- syn
-- so the multiport allocator will also
-- take 3 cycles per request
end
if
;
when
DUMMY
=>
state
<=
FREE_RELEASE_PAGE
;
done_o
<=
'0'
;
when
NASTY_WAIT
=>
...
...
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