Nucleistudio+Vivado协同仿真教程
创建Vivado工程
- 1.创建工程:
在Vivado中创建工程,命名随意,路径随意;
- 2.配置工程:
这里可以选择是否添加源文件等,我们先不添加;
- 3.选择FPGA核心:
选择MCU200T对应的FPGA核心xc7a200tfbg484-2
等待创建中~
- 4.添加源文件:
创建工程完成后,单击"+",添加源文件,这里我们选择添加的是文件夹e203(路径为e203_hbirdv2/rtl/e203),Finish完成添加,那两个勾建议可以勾选,会将添加的源文件拷贝到我们的工程目录下,防止对原始文件造成改动;
- 5.添加头文件:
同上操作,找到MCU对应的system.v文件(路径为e203_hbirdv2-master\fpga\mcu200t\system.v);
- 6.设置头文件:
添加完成后,右键点击system.v将其设置为头文件;
- 7.调用IP核:
这时,我们会观察到有两个文件有问题,这是由于e203中调用了相应的IP核,我们也要在工程中对应添加;
- 8.添加reset_sys:
在IP目录中找到对应IP核Processor System Reset,双击将名字改为system.v中的对应名字reset_sys。注意!这里一定要保持名称一致!后修改其复位的优先级为最高,即可完成IP核的调用;
- 9.添加clk:
在IP目录中找到对应IP核Clocking Wizard,同上操作,将名改为mmcm,修改生成时钟频率为16M,改变复位方式为低电平复位,即可完成IP核的调用;同时应注意这里IP核调用的例化名称应与system.v中保持一致。
- 10.修改顶层定义文件:
右键单击e203_defines.v,将其设为global define,并在其文件头添加语句:`define FPGA_SOURCE。完成后查看Elaborated Design,若此时报错无法打开e203_defines.v文件,可以在SourceFileProperties中将其对应文件类型改为Verilog Header
NucleiStudio创建工程
- 1.安装NucleiStudio:
- 2.配置JDK:
下载完成后,直接解压NucleiStudio压缩包,双击exe文件即可运行。如果没有成功打开,可参考以下过程进行JDK的配置:
NucleiStudio将JRE、Eclipse、GNU MCU Eclipse 插件、RISCV-V 交叉工具链、Windows Build Tools打包在了一起。所以NucleiStudio 本质上还是Eclipse,而是基于Java开发的,所以需要Java的软件开发工具包——JDK。
双击jdk-8u152-windows-x64.exe,选择安装目录,然后下一步
完成后,单击"计算机-属性-高级系统设置",单击"环境变量",新建:变量名为:JAVA_HOME,变量值为安装目录下的jdk文件夹
配置PATH,变量名:Path,变量值:%JAVA_HOME%\bin
新建CLASSPATH,变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
测试是否安装成功:window+R打开cmd窗口,输入javac出现如下说明配置成功
- 3.启动NucleiStudio
启动后,会让选择workstation,找一块自己满意的地方放就行。
按照以下步骤新建Helloworld例程
因为前面建立工程时我们选择的是ILM启动,即从内部ROM启动,故需要修改 .cfg 配置文件,位置如下
双击打开后,将划线的flash启动部分注释掉
然后修改Build选项,使反汇编生成机器指令文件:右键工程,点击properties
在C/C++ Build/Setting中添加如下指令:
riscv-nuclei-elf-objcopy -O verilog "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.verilog";sed -i 's/@800/@000/g' "${BuildArtifactFileBaseName}.verilog"; sed -i 's/@00002FB8/@00002000/g' "${BuildArtifactFileBaseName}.verilog";
最后点击锤子即可编译整个工程
编译完成后,我们会在工程目录下发现生成了.verilog文件,此即为我们仿真需用到的文件,可以将改文件复制保存在tb目录下
联合仿真
在我们前面创建的Vivado工程中添加仿真文件(e203_hbirdv2-master\e203_hbirdv2-master\tb\tb_top.v),然后修改我们要验证的仿真文件对应路径,
最后在Vivado中进行行为级仿真即可得到我们想要验证的结果
Nucleistudio+Vivado协同仿真教程的更多相关文章
- MiZ702学习笔记11——如何使用vivado isim仿真
说到vivado的仿真确实是很有意思,不管是ISE还是Quartus都可以自己自动生成测试平台的完整构架,但是vivado不行,所有的测试代码自己写!(我反正是查了好久,都没发现vivado如何自动生 ...
- Modelsim与Simulink协同仿真
当使用硬件描述语言(HDL)完成电路设计时,往往需要编写Testbench对所设计的电路进行仿真验证,测试设计电路的功能是否与预期的目标相符.而编写Testbench难度之大,这时可以借助交互式图形化 ...
- 【转】ubuntu16.04安装Vivado 2017.4 教程
ubuntu16.04安装Vivado 2017.4 教程 2017-12-28 20:59:48 wmyan 阅读数 11794 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协 ...
- 基于OPNET的路由协议仿真教程(AODV、OLSR 、DSR等)
前言: 目前由于项目需要,学习了基于opnet的网络仿真方法,发现该软件的学习资料少之又少,所以将自己搜集到的学习资料进行整理,希望能帮助后来的人. 主要参考资料:OPNET网络仿真(清华陈敏版) 仿 ...
- ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...
- proteus pro 8.9 安装及汉化教程
最近由于网上上课老师要求我们自己安装proteus这款仿真软件,所以笔者也安装了最新款版的proteus pro 8.9,分享给大家安装心得,也包含汉化过程,希望大家能用软件好好学习. 备注:感谢博主 ...
- proteus8.1 pro 中文版安装破解教程
Proteus8 Pro是非常有名的EDA工具(仿真软件),从原理图布图.代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计.是唯一将电路仿真软件.PCB设计软 ...
- OpenModelica仿真
复杂产品通常涉及机械.控制.电子.液压.气动和软件等多学科领域,其设计过程需要进行仿真,以满足对成本.质量.性能等的要求.目前各个学科和领域都已经有了比较成熟的仿真软件,但大部分仿真软件仅适用于本学科 ...
- xilinx仿真库的作用(原创)
① secureip库:硬核(HARD IP)仿真(功能仿真和时序仿真)模型(hard IP simulation model),比如PowerPC.PCIE.SRIO.DDR等.Simulation ...
- 在Vivado中调用ModelSim生成FSM的状态转移图
如果我们已经书写了一段FSM代码,现在想倒过来把它转换成为状态转移图,方便我们直观地检查我们书写的状态对不对(在写论文什么的画图太麻烦的时候,有个自动生成的是多方便啊!),应该怎么弄呢?通过在Viva ...
随机推荐
- 学习Java的第一个代码
HelloWorld 新建一个文件夹 新建一个Java 文件后缀为java hello.java 编写代码 public class hello{ public static void main(St ...
- 如何配置php.ini才能让PHP性能最大优化
用于生产环境中的PHP需要对其进行优化,可以让PHP自身发挥更好的性能,除了写好PHP代码,还要配置好php.ini.本文从内存.文件上传.会话缓冲输出.真实路径缓存这几个方面讲解php.ini的配置 ...
- 设计模式 (Design Pattern)C# -- 简介
简介 设计模式(Design Pattern)是对面向对象设计中反复出现的问题的解决方案. 设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用. 设计模式是软件开发人员在软件开发过程 ...
- link和@import的对比
概念的区别 @import 是css的语法规则: link 是HTML标签 用途的区别 @import 是css语法,只能用来导入样式文件: link 除了引入样式,还可引入其他资源文件 加载顺序 ...
- 第一课 Hello World程序
接触一门编程语言都是从HelloWorld开始的.我们以Idea为开发工具,写一个JAVA版的HelloWorld. 1,启动idea,点击菜单 File->New->Project 新建 ...
- [C#]接口Interface快速Demo
参考代码1: using System; namespace InterfaceDemo { /// <summary> /// 定义一个爬树接口 /// </summary> ...
- Graphx二度关系
import org.apache.spark.graphx._import org.apache.spark.rdd.RDDval vertexArray = Array( (1L, (" ...
- ESP32 IDF V5.0 编译环境
方法:环境搭建工具一键安装: 下载链接:https://dl.espressif.com/dl/esp-idf/ 可以选择离线安装方式和在线安装方式,建议:采用离线安装的方式 下载离线安装包之后点击安 ...
- JDK 7 HashMap 并发情况下的死锁问题
目录 问题描述 详细解释 问题描述 JDK7的 HashMap 解决冲突用的是链表,在插入链表的时候用的是头插法,每次在链表的头部插入新元素.resize() 的时候用的依然是头插,头插的话,如果某个 ...
- RPA主流厂商有哪些?
RPA(机器人流程自动化(Robotic Process Automation)是一种能够自动化基于规则.结构化和重复的业务流程的技术.机器人流程自动化降低了成本,同时防止了人为错误,该技术目前已应用 ...