![]() The core of the design, the Sudoku generator and solver, and part of the surrounding testbench are in BSV. The implementation was done using Bluespec SystemVerilog (BSV) ” alternatively, it could have been done using Bluespec's ESE SystemC, which has the same notion of atomic transactions (Rules) and atomic-transactional interfaces. The following is a block diagram outlining the architecture of these components: The implementation includes a puzzle generator, a puzzle solver, and a software-based GUI front-end to control the hardware and display the game for human play. ![]() ![]() The “order” of the puzzle is a parameter to the design, so that the same source code can be used for size 2×2, 4×4, 9×9, 16×16, and so on. A legal puzzle must have exactly one solution so that, in principle, it can be solved by pure reasoning, i.e., without any “guessing”.īluDACu is a parameterized hardware implementation of the game of Sudoku. The challenge is to fill in all the cells, where each cell contains a symbol (1-9), such that each 9-cell row, each 9-cell column, and each 3×3-cell box contains exactly one occurrence of each symbol 1 through 9. Some of the cells are already filled in, the rest are blank. You are given a 9×9 grid of cells, which can be further regarded as a 3×3 grid of boxes, each of which is a 3×3 grid of cells. The initial setup and the challenge are simply described. Nowadays Sudoku puzzles seem to be offered in many daily newspapers, magazines and books, and there are also several Sudoku sites on the web. If not, one resource is the Wikipedia entry: Sudoku. You are probably familiar with the game of Sudoku. All this is made possible because of BSV's high level of abstraction, powerful types and strong static verifications, clean semantics based on atomic transactions (Rules) and atomic-transactional (Rule-based) Interfaces, and automatic regeneration of correct control logic as we substitute one component with another. This article describes BluDACu, a Bluespec parameterized hardware implementation of Sudoku, including both puzzle generation and puzzle solving. How to quickly implement designs that contain both extremely complex algorithms and complex concurrency, especially those with convoluted control logic and numerous shared resource hazards (it is often assumed that dealing with high complexity is only feasible in software).How to create intellectual property (IP) blocks that enable extreme reuse because they are highly parameterized and flexible to change.How to test software early with accurate hardware representations.While this Sudoku implementation is a novelty of sorts, though a very complex one, it nicely illustrates how Bluespec's ESL Synthesis technology effectively tackles key, contemporary System-on-Chip (SoC) development issues: You might be asking, “Why would anyone create a hardware implementation of Sudoku?” Or even, “What does this have to do with me and what I do?” The simple answer is that we wanted a fun, thought-provoking demo.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |