Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Cyclone V bitstream reverse-engineering project

License

NotificationsYou must be signed in to change notification settings

Ravenslofty/mistral

Repository files navigation

What is it?

It's the very first version of a library/command line utility tocompile and decompile Cyclone V bitstreams, as used in the de-10 nano(used in MiSTer) and the future Analogue Pocket.

Compile and install

It's a normal cmake project. Create a build directory, run cmake

from it then your preferred builder (make,ninja...). The only dependency is liblzma.

It takes the usual cmake variables (CMAKE_INSTALL_PREFIX,CMAKE_BUILD_TYPE) and also proposes the variable COMPRESSION_LEVEL tochoose the level of compression of the internal data. It's asize/time choice. Default is 1.

Some quick tests on a good laptop are in the following table. The runtime is for running the bels command for a 5CGTFD9C5F23I7 (gt300f, thebiggest).

Compression levelCompile timeRun timeLibrary size
0 (no compression)0:520.712G
1 (default)1:307.61269M
6 (lzma default)5:207.33153M
96:397.22154M

Go into the lib directory, run 'make'. This will generate acommand-line utility named mistral-cv. You can start it from thatdirectory, but nowhere else because it looks for the routing databasesin ../gdata. Read the doc, that should help. It's very, very raw atthis point.

The makefile does not currently build the library as a library. Buteverything that's not main.cc is in fact the library. There is onlyone header file, cyclonev.h.

How to help?

There are a lot of things that can be done to help without having tolook inside quartus. Meanwhile mapping of the blocks and work on thetimings will go on.

Logic block RE

A bunch of stuff is unsure or not know at all on logic blocks. Theycan be analyzed through creating appropriate verilog files, compilingthem with quartus and decompiling them with mistral-cv.

  • The common part of LABs (routing of clocks, enables, clears) is very unsure.
  • Mlabs in rom/ram mode are unknown.
  • DSPs and M10ks are really unknown, neither the mux usage nor theports mapping is unknown.
  • Most peripheral blocks have their ports mapped, or are going to havethem, but the mux usage is not understood.

About

Cyclone V bitstream reverse-engineering project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp