{"id":34546571,"url":"https://github.com/mark1626/dahlia-cookbook","last_synced_at":"2026-05-24T20:35:50.288Z","repository":{"id":214451148,"uuid":"736301101","full_name":"Mark1626/dahlia-cookbook","owner":"Mark1626","description":"Hardware Accelerators using Dahlia","archived":false,"fork":false,"pushed_at":"2024-03-22T08:31:37.000Z","size":517,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-03-22T09:24:49.112Z","etag":null,"topics":["accelerators","dahlia","hls"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mark1626.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-27T14:30:40.000Z","updated_at":"2024-03-22T08:00:56.000Z","dependencies_parsed_at":"2024-01-11T06:41:24.379Z","dependency_job_id":"19b0c3b2-841a-4a3b-b18e-06385b7dbf24","html_url":"https://github.com/Mark1626/dahlia-cookbook","commit_stats":null,"previous_names":["mark1626/dahlia-cookbook"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mark1626/dahlia-cookbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark1626%2Fdahlia-cookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark1626%2Fdahlia-cookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark1626%2Fdahlia-cookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark1626%2Fdahlia-cookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mark1626","download_url":"https://codeload.github.com/Mark1626/dahlia-cookbook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark1626%2Fdahlia-cookbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27997217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accelerators","dahlia","hls"],"created_at":"2025-12-24T07:08:38.784Z","updated_at":"2025-12-24T07:08:39.692Z","avatar_url":"https://github.com/Mark1626.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dahlia Cookbook\n\nThis repo contains examples of using [Dahlia](https://github.com/cucapra/dahlia) for making accelerators. Some of the examples are direct port from [Vitis Tutorials](https://github.com/Xilinx/Vitis-Tutorials).\n\n**Note:** There are some changes made to the source code of Dahlia. https://github.com/mark1626/dahlia\n\n## Examples\n\n1. [Travelling Salesperson](./travelling-salesperson/README.md)\n2. [Lorenz ODE Solver using Runge Kutta](./lorenz/README.md)\n3. [Fixed Point Variant of the Lorenz ODE Solver](./lorenz-fp/README.md)\n4. [Mandelbrot set in hardware](./mandelbrot/README.md)\n5. [Abelian Sandpile Model](./sandpile-stabilizer/README.md)\n6. [xxtea](./xxtea/README.md)\n\n## Running on FPGA boards\n\nSome of the examples have been run on FPGAs. Two possible options were explored.\n\n### Litex SoC\n\n[LiteX](https://github.com/enjoy-digital/litex/) framework provides an infrastructure to create FPGA SoCs. The exported Verilog of the accelerator was added as custom module into a Litex SoC. In order to communicate from host to the FPGA, a bridge is added in the SoC. This could be through UART, Ethernet or PCIe\n\nA typical flow would be\n\n1. SoC design with the accelerator was synthesized and flashed to the FPGA\n2. A connection to the on-board bridge is created with Litex Server\n3. From the host machine a script can run and use the accelerator\n\nThe design would be like this\n\n![Litex](./assets/litex-Soc-infra.png)\n\u003e **Image Credit: [Litex, Litex Wiki](https://github.com/enjoy-digital/litex/wiki/Use-Host-Bridge-to-control-debug-a-SoC)**\n\n\n### Xilinx - DMA for PCI Express (PCIe) Subsystem\n\nA much high throughput would be to use the DMA for PCI Express (PCIe) Subsystem. The accelerator could be expored as a Vivado IP and can be added in the design along with the DMA subsystems.\n\nThis could be used in boards like Nitefury II or Xilinx Ultrascale+ boards\n\n## TODO\n\n- Add an example with a data shuffle\n- Maybe this [kmeans example?](https://github.com/Xilinx/Vitis_Accel_Examples/blob/f61637e9263ecc1be3df34182ea6c53a0ca10447/demo/kmeans/src/krnl_kmeans.cpp)\n- Have a common Makefile from which each example will inherit rules\n- Add a Nitefury II Example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark1626%2Fdahlia-cookbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmark1626%2Fdahlia-cookbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark1626%2Fdahlia-cookbook/lists"}