# AES Accelerator **Repository Path**: AXE_King/aes-accelerator ## Basic Information - **Project Name**: AES Accelerator - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-03 - **Last Updated**: 2021-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 声明 本项目基于一生一芯项目精简而来,不用做商业用途!!! # 开发环境 操作系统:[Linux Ubuntu v20.04](https://ubuntu.com/download/desktop) 开发软件:[verilator](https://verilator.org/guide/latest/)、[gtkwave](http://gtkwave.sourceforge.net/)、[mill](https://github.com/com-lihaoyi/mil) # 例程 `projects`目录用于存放工程文件夹,`projects`目录下的几个例程可用于了解如何基于 `verilator`来开发仿真。你可以在该目录下创建自己的工程。工程目录结构如下: ```shell . ├── build.sc # 存放chisel编译信息的文件,选择chisel语言时需要该文件 ├── csrc # 存放仿真c++源码的文件夹 ├── src # 存放chisel源码的文件夹,选择chisel语言时需要该文件夹 └── vsrc # 存放verilog源码的文件夹,选择verilog语言时需要该文件夹 ``` 我们提供了脚本 `build.sh`用于自动化编译、仿真和查看波形。下面是 `build.sh`的参数说明,也可在oscpu目录下使用 `./build.sh -h`命令查看帮助。 ```shell -e 指定一个例程作为工程目录,如果不指定,将使用"cpu"目录作为工程目录 -b 编译工程,编译后会在工程目录下生成"build"(difftest)或"build_test"子目录,里面存放编译后生成的文件 -t 指定verilog顶层文件名,如果不指定,将使用"top.v"作为顶层文件名 -s 运行仿真程序,即"build/emu"程序,运行时工作目录为"build"子目录 -a 传入仿真程序的参数,比如:-a "1 2 3 ......",多个参数需要使用双引号 -f 传入c++编译器的参数,比如:-f "-DGLOBAL_DEFINE=1 -ggdb3",多个参数需要使用双引号 -l 传入c++链接器的参数,比如:-l "-ldl -lm",多个参数需要使用双引号,该选项在接入difftest时无效 -c 删除工程目录下编译生成的"build"文件夹 ``` ## 编译和仿真 ### counter `projects/counter`目录下存放了4位计数器的例程源码。可以使用下面的命令编译和仿真。 ```shell ./build.sh -e counter -b -s # 打印波形 ./build.sh -e counter -s -a "--dump-wave" -b ``` 如果 `verilator`安装正确,你会看到下面的输出 ```shell Simulating... Enabling waves ... Enter the test cycle: ``` 输入测试周期数后仿真程序退出,并在 `projects/counter/build_test/`路径下生成 `.vcd`波形文件。 ### dpi-c `projects/dpi-c`目录下存放了verilog调用C语言的函数仿真的例程。可以使用下面的命令编译和仿真。 ```shell ./build.sh -e dpi-c -b -s ``` ## 查看波形 在 `oscpu`目录下使用命令可以通过 `gtkwave`查看输出的波形,其中 `xxx`表示例程名。 ```shell ./build.sh -e xxx -w ```