Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 71dc00e850 | |||
| aa3605a55c | |||
| 0496147ddf | |||
|
|
3e1e7fc1ec | ||
|
|
698c29b05f |
63
.github/workflows/build.yaml
vendored
Normal file
63
.github/workflows/build.yaml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- 'dev/**'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build distributions
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: actions/setup-python@v4
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install build
|
||||
|
||||
- name: Build sdist
|
||||
run: python -m build
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dist
|
||||
path: |
|
||||
dist/*.tar.gz
|
||||
dist/*.whl
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
deploy:
|
||||
needs:
|
||||
- build
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
environment: release
|
||||
permissions:
|
||||
id-token: write
|
||||
|
||||
# Only publish when a Gitea Release is created.
|
||||
if: gitea.event_name == 'release'
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
|
||||
- run: python3 -m pip install twine --user --break-system-packages
|
||||
- run: python3 -m pip install -U packaging --user --break-system-packages
|
||||
- run: TWINE_PASSWORD=${{ secrets.PYPI_PAT }} TWINE_USERNAME=bslathi19 python -m twine upload --repository-url ${{ vars.CI_API_URL }} dist/*
|
||||
@@ -146,6 +146,9 @@ class ApbMaster(ApbPause, Region, Reset):
|
||||
self.command_queue.queue_occupancy_limit = 2
|
||||
self.current_command = None
|
||||
|
||||
self.read_resp = None
|
||||
self.write_resp = None
|
||||
|
||||
self.in_flight_operations = 0
|
||||
self._idle = Event()
|
||||
self._idle.set()
|
||||
@@ -268,7 +271,7 @@ class ApbMaster(ApbPause, Region, Reset):
|
||||
|
||||
await self.command_queue.put(ApbWriteCmd(address, data, prot, event))
|
||||
await event.wait()
|
||||
return event.data
|
||||
return self.write_resp
|
||||
|
||||
async def _write_wrapper(self, address, data, prot, event):
|
||||
event.set(await self.write(address, data, prot))
|
||||
@@ -294,7 +297,7 @@ class ApbMaster(ApbPause, Region, Reset):
|
||||
await self.command_queue.put(ApbReadCmd(address, length, prot, event))
|
||||
|
||||
await event.wait()
|
||||
return event.data
|
||||
return self.read_resp
|
||||
|
||||
async def _read_wrapper(self, address, length, prot, event):
|
||||
event.set(await self.read(address, length, prot))
|
||||
@@ -399,8 +402,6 @@ class ApbMaster(ApbPause, Region, Reset):
|
||||
while self.pause:
|
||||
await clock_edge_event
|
||||
|
||||
await clock_edge_event
|
||||
|
||||
if k == 0:
|
||||
self.bus.paddr.value = cmd.address
|
||||
else:
|
||||
@@ -438,14 +439,14 @@ class ApbMaster(ApbPause, Region, Reset):
|
||||
if pwrite:
|
||||
self.log.info("Write complete addr: 0x%08x prot: %s resp: %s length: %d",
|
||||
cmd.address, cmd.prot, resp, length)
|
||||
write_resp = ApbWriteResp(cmd.address, length, resp)
|
||||
cmd.event.set(write_resp)
|
||||
self.write_resp = ApbWriteResp(cmd.address, length, resp)
|
||||
cmd.event.set()
|
||||
else:
|
||||
if self.log.isEnabledFor(logging.INFO):
|
||||
self.log.info("Read complete addr: 0x%08x prot: %s resp: %s data: %s",
|
||||
cmd.address, cmd.prot, resp, ' '.join((f'{c:02x}' for c in read_data)))
|
||||
read_resp = ApbReadResp(cmd.address, bytes(read_data), resp)
|
||||
cmd.event.set(read_resp)
|
||||
self.read_resp = ApbReadResp(cmd.address, bytes(read_data), resp)
|
||||
cmd.event.set()
|
||||
|
||||
self.current_write_command = None
|
||||
|
||||
@@ -580,8 +581,6 @@ class ApbSlave(ApbPause, Reset):
|
||||
if start_offset is not None and offset != start_offset:
|
||||
write_ops.append((addr+start_offset, data[start_offset:offset]))
|
||||
|
||||
print(write_ops)
|
||||
|
||||
# perform writes
|
||||
try:
|
||||
for addr, data in write_ops:
|
||||
|
||||
@@ -56,7 +56,7 @@ class Reset:
|
||||
|
||||
async def _run_reset(self, reset_signal, active_level):
|
||||
while True:
|
||||
await Edge(reset_signal)
|
||||
await reset_signal.value_change
|
||||
try:
|
||||
level = bool(int(reset_signal.value))
|
||||
except ValueError:
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "0.1.26"
|
||||
__version__ = "0.1.29"
|
||||
|
||||
Reference in New Issue
Block a user