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 ...
随机推荐
- 关于FPGA学习的疑惑
记录心路历程--第一次真正意义上的找工作. 最近在学习小梅哥的FPGA的过程中,总是学习着前面的东西忘着后面的,进行了过一次复习,我准备是在每个章节学完之后,再复习之前的章节,可这样是真的很耗费时间. ...
- dubbo相关面试题
1.说说Dubbo的分层? 从大的范围来说,dubbo分为三层,business业务逻辑层由我们自己来提供接口和实现还有一些配置信息,RPC层就是真正的RPC调用的核心层,封装整个RPC的调用过程.负 ...
- nodejs 连接MSSQL数据库 Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version
初学nodejs连接lmssql数据库,测试报错,查了很多资料,最后发现报这个错主要是mssql不支持https安全连接,如果不考虑这个,仅做测试连接,就很容易,直接改个参数就可以了: const s ...
- Mysql_5.7编译部署
自述 - 概述:数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可共享的.统一管理的大量数据的集合:本文主要介绍mysql_5.7的部署 ...
- apt-get install 出现could not open lock file /var/lib/dpkg/lock错误问题
apt-get install 经常出现 could not open lock file /var/lib/dpkg/lock -open 错误问题 一种解决办法 1.切换到root用户 su ~ ...
- Chrome浏览器:Your Connection is not private 您的连接不是私密连接
在图片图片所示的任何地方输入: thisisunsafe 没错就是这么6,然后就可以访问了.输错了请刷新再来(微笑) https://blog.csdn.net/filbert_917/article ...
- ubuntu添加了id_rsa.pub*authorized_keys依然不能免密登录?
cd .ssh chmod 600 authorized_keys 还是不行,看日志 tail -f /var/log/auth.log bad ownership or modes for dire ...
- 在 Kubernetes 集群中部署现代应用的通用模式
在 Kubernetes 集群中部署现代应用的通用模式 摘要 我们正在经历现代应用交付领域的第二次浪潮,而 Kubernetes 和容器化则是这次浪潮的主要推动力量. 随着第二次浪潮的推进,我们在 N ...
- 1--我们写了一个java类,那么生成一个对象占用多大的内存?
public class Student { private long id; private long userId; private byte state; private long create ...
- zookeeper异常
1. KeeperErrorCode = Unimplemented for /service 在使用curator时,对zk有版本匹配关系. Curator 2.** <---> ...