Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
NanoSoC Tech
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SoCLabs
NanoSoC Tech
Commits
9af385f3
Commit
9af385f3
authored
2 years ago
by
dwf1m12
Browse files
Options
Downloads
Patches
Plain Diff
build tracking PL230 DMA controller in testbench
parent
97857c30
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Cortex-M0/nanosoc/systems/mcu/verilog/tb_nanosoc.v
+55
-17
55 additions, 17 deletions
Cortex-M0/nanosoc/systems/mcu/verilog/tb_nanosoc.v
with
55 additions
and
17 deletions
Cortex-M0/nanosoc/systems/mcu/verilog/tb_nanosoc.v
+
55
−
17
View file @
9af385f3
...
@@ -510,40 +510,78 @@ ft1248x1_track
...
@@ -510,40 +510,78 @@ ft1248x1_track
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// Tracking DMA logging support
// Tracking DMA logging support
// - Track inputs to on-chip PL230 DMAC and replicate state and outputs in testbench
// - log the RTL Inuts/outputs/internal-state of this traccking DMAC
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
`define
DMAC_PATH u_nanosoc_chip_pads
.
u_nanosoc_chip
.
u_pl230_udma
`define
DMAC_PATH u_nanosoc_chip_pads
.
u_nanosoc_chip
.
u_pl230_udma
dma_log_to_file
#(.
FILENAME
(
"dma230.log"
),.
NUM_CHNLS
(
2
),.
NUM_CHNL_BITS
(
1
),.
TIMESTAMP
(
1
))
pl230_udma
u_track_pl230_udma
(
u_dma_log_to_file
(
// Clock and Reset
.
hclk
(
`DMAC_PATH
.
hclk
),
.
hclk
(
`DMAC_PATH
.
hclk
),
.
hresetn
(
`DMAC_PATH
.
hresetn
),
.
hresetn
(
`DMAC_PATH
.
hresetn
),
// DMA Control
.
dma_req
(
`DMAC_PATH
.
dma_req
),
.
dma_sreq
(
`DMAC_PATH
.
dma_sreq
),
.
dma_waitonreq
(
`DMAC_PATH
.
dma_waitonreq
),
.
dma_stall
(
`DMAC_PATH
.
dma_stall
),
.
dma_active
(
),
.
dma_done
(
),
.
dma_err
(
),
// AHB-Lite Master Interface
// AHB-Lite Master Interface
.
hready
(
`DMAC_PATH
.
hready
),
.
hready
(
`DMAC_PATH
.
hready
),
.
hresp
(
`DMAC_PATH
.
hresp
),
.
hresp
(
`DMAC_PATH
.
hresp
),
.
hrdata
(
`DMAC_PATH
.
hrdata
),
.
hrdata
(
`DMAC_PATH
.
hrdata
),
.
htrans
(
`DMAC_PATH
.
htrans
),
.
htrans
(
),
.
hwrite
(
`DMAC_PATH
.
hwrite
),
.
hwrite
(
),
.
haddr
(
`DMAC_PATH
.
haddr
),
.
haddr
(
),
.
hsize
(
`DMAC_PATH
.
hsize
),
.
hsize
(
),
.
hburst
(
`DMAC_PATH
.
hburst
),
.
hburst
(
),
.
hprot
(
`DMAC_PATH
.
hprot
),
.
hmastlock
(
),
.
hwdata
(
`DMAC_PATH
.
hwdata
),
.
hprot
(
),
// APB control interface
.
hwdata
(
),
// APB Slave Interface
.
pclken
(
`DMAC_PATH
.
pclken
),
.
pclken
(
`DMAC_PATH
.
pclken
),
.
psel
(
`DMAC_PATH
.
psel
),
.
psel
(
`DMAC_PATH
.
psel
),
.
pen
(
`DMAC_PATH
.
pen
),
.
pen
(
`DMAC_PATH
.
pen
),
.
pwrite
(
`DMAC_PATH
.
pwrite
),
.
pwrite
(
`DMAC_PATH
.
pwrite
),
.
paddr
(
`DMAC_PATH
.
paddr
),
.
paddr
(
`DMAC_PATH
.
paddr
),
.
pwdata
(
`DMAC_PATH
.
pwdata
),
.
pwdata
(
`DMAC_PATH
.
pwdata
),
.
prdata
(
`DMAC_PATH
.
prdata
),
.
prdata
(
)
);
`define
DMAC_TRACK_PATH u_track_pl230_udma
dma_log_to_file
#(.
FILENAME
(
"dma230.log"
),.
NUM_CHNLS
(
2
),.
NUM_CHNL_BITS
(
1
),.
TIMESTAMP
(
1
))
u_dma_log_to_file
(
.
hclk
(
`DMAC_TRACK_PATH
.
hclk
),
.
hresetn
(
`DMAC_TRACK_PATH
.
hresetn
),
// AHB-Lite Master Interface
.
hready
(
`DMAC_TRACK_PATH
.
hready
),
.
hresp
(
`DMAC_TRACK_PATH
.
hresp
),
.
hrdata
(
`DMAC_TRACK_PATH
.
hrdata
),
.
htrans
(
`DMAC_TRACK_PATH
.
htrans
),
.
hwrite
(
`DMAC_TRACK_PATH
.
hwrite
),
.
haddr
(
`DMAC_TRACK_PATH
.
haddr
),
.
hsize
(
`DMAC_TRACK_PATH
.
hsize
),
.
hburst
(
`DMAC_TRACK_PATH
.
hburst
),
.
hprot
(
`DMAC_TRACK_PATH
.
hprot
),
.
hwdata
(
`DMAC_TRACK_PATH
.
hwdata
),
// APB control interface
.
pclken
(
`DMAC_TRACK_PATH
.
pclken
),
.
psel
(
`DMAC_TRACK_PATH
.
psel
),
.
pen
(
`DMAC_TRACK_PATH
.
pen
),
.
pwrite
(
`DMAC_TRACK_PATH
.
pwrite
),
.
paddr
(
`DMAC_TRACK_PATH
.
paddr
),
.
pwdata
(
`DMAC_TRACK_PATH
.
pwdata
),
.
prdata
(
`DMAC_TRACK_PATH
.
prdata
),
// DMA Control
// DMA Control
.
dma_req
(
`DMAC_PATH
.
dma_req
),
.
dma_req
(
`DMAC_
TRACK_
PATH
.
dma_req
),
.
dma_active
(
`DMAC_PATH
.
dma_active
),
.
dma_active
(
`DMAC_
TRACK_
PATH
.
dma_active
),
.
dma_done
(
`DMAC_PATH
.
dma_done
),
.
dma_done
(
`DMAC_
TRACK_
PATH
.
dma_done
),
// DMA state
// DMA state
from tracking RTL model
.
dma_chnl
(
`DMAC_PATH
.
u_pl230_ahb_ctrl
.
current_chnl
),
.
dma_chnl
(
`DMAC_
TRACK_
PATH
.
u_pl230_ahb_ctrl
.
current_chnl
),
.
dma_ctrl_state
(
`DMAC_PATH
.
u_pl230_ahb_ctrl
.
ctrl_state
)
.
dma_ctrl_state
(
`DMAC_
TRACK_
PATH
.
u_pl230_ahb_ctrl
.
ctrl_state
)
);
);
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment