0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

推荐一款网页版的Verilog代码编辑仿真验证平台

FPGA之家 来源:FPGA开源工作室 作者:相量子 2022-09-19 09:53 次阅读

大家推荐一款网页版的 Verilog代码编辑仿真验证平台,这个平台是国外的一家开源FPGA学习网站,进入网页,在该网页上可以进行Verilog代码的编写、综合,而且最后还能够仿真出波形来验证设计代码的正确性,该验证平台是基于Icarus Verilog(简称iVerilog,比较著名的开源HDL仿真工具,也有对应的安装版本)的,让你随时随地只需登录网页就能够享受Verilog编程仿真的乐趣!

一、官方模板演示

1、首先打开

打开后的界面如下图所示,全英文显示。如果感觉自己的英文水平欠佳,可以使用谷歌浏览器打开该网页,并选择在线翻译功能,翻译的正确率还是很高的。

69c3e642-37b0-11ed-ba43-dac502259ad0.jpg

2、点击Simulation下的 ”Run a Simulation(lcarus Verilog)“。

69cee84e-37b0-11ed-ba43-dac502259ad0.png

3、打开后的界面如下图所示,代码编辑框中给出了一个简单的例子。

69e6f15a-37b0-11ed-ba43-dac502259ad0.jpg

4、点击下面的“Submit(new window)“在新界面中进行仿真。

6a0250b2-37b0-11ed-ba43-dac502259ad0.png

5、在新打开的界面中我们可以看到编译的信息和仿真波形图。

6a13824c-37b0-11ed-ba43-dac502259ad0.png

二、实例演示

虽然看完了官方的模板演示,但我们要想立刻仿真验证自己设计的代码并不是那么容易,需要进行一番摸索。下面就是大家进行一个呼吸灯的设计实例演示。

1、学习过FPGA的朋友都知道要想对FPGA逻辑进行仿真一定要具备两个文件,一个是RTL代码文件,用来综合生成硬件电路的部分;第二个就是Testbench文件,用来验证RTL代码功能的仿真文件,这两者缺一不可。

2、根据观察发现官方模板中的代码编辑部分有两个module,大家也都知道一个.v 文件中只能有一个模块,也就是只能有一个module,而这里面有两个,那肯定就不对了。再仔细观察会发现代码编辑区域中的上半部分就是Testbench,而下半部分则是RTL代码,再结合仿真出的波形来更看验证了这个想法。原来 RTL 代码和Testbench都写在了一个编辑框里。

3、但是我们在提供的模板中发现一些我们平时几乎没有见过的新语法,如第4行的”initial `probe_start“、第6行的”`probe(clk)“、第26行的”`probe(in)“,通过模板的注释和多次实验发现这是官方定义的一个”宏“,也就是通过这个”宏“调用“probe”探针的功能,我们不用管这个”宏“是如何定义的,我们只需要会调用就可以了。

4、下面我们通过该网页来仿真验证一下自己设计的呼吸灯的例子。详细代码如下(呼吸灯逻辑和Testbench代码的编写方法这里我们不做讲解,会在以后的文章中再进行详细说明),标红处的注释是需要特别强调的(代码可以全部直接复制使用)。

poYBAGMnzESAPkGhAAEDN6qo8zk048.jpg
pYYBAGMnzEyAMiiOAADIcJhDJ9E980.jpg
poYBAGMnzFSAKc60AADLmQ9x6R0295.jpg
pYYBAGMnzF2AB2S2AAEiVzr2s9I540.jpg
pYYBAGMnzHyAShaTAAFQFGht6p8366.jpg
pYYBAGMnzISAKuBDAAASDPdjVrY553.jpg

5、将上面编写好的Testbench代码和RTL代码放到一个文件中(Testbench在上面,RTL代码在下面,仅在该平台仿真时可以将两种文件放在一起,在其他平台仿真时要独立放到两个.v文件中),然后复制粘贴到代码编辑框中,点击“Submit(new window)“执行仿真。

6a25c330-37b0-11ed-ba43-dac502259ad0.jpg

6、也可以将写好的Testbench代码和RTL代码放到同一个.v文件中,然后点击下面的代码编辑框下面的“Upload a source file...”,在展开的界面中选择添加.v文件后,再点击”Upload and simulate”启动仿真。

6a4e5ba6-37b0-11ed-ba43-dac502259ad0.png

6a602d54-37b0-11ed-ba43-dac502259ad0.png  

7、仿真波形如下所示,因为界面空间有限,拖动波形显示框下面的滚动条,可以看到后面的波形显示。

6a82af32-37b0-11ed-ba43-dac502259ad0.jpg

8、在波形显示框中右击鼠标可以选择保存为PNG格式或SVG格式,将完整的波形信息保存下来。

6aa2ea0e-37b0-11ed-ba43-dac502259ad0.png

9、保存为SVG格式后的完整波形图如下所示。

6ab463b0-37b0-11ed-ba43-dac502259ad0.png

10、如果我们在第58行处代码设置一个错误后,再点击执行仿真,此时在仿真窗口中不会显示波形,而是提示错误的内容,将错误修改后再执行仿真即可。

6af2e9c8-37b0-11ed-ba43-dac502259ad0.png

6b06eb94-37b0-11ed-ba43-dac502259ad0.png

11、该网页还有其他更多有趣的功能,如组合逻辑代码编写训练、时序逻辑代码编写训练、单片机嵌入式仿真等等,有兴趣的朋友可以自己探索,这里不再一一演示。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21323

    浏览量

    593214
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302
  • HDL
    HDL
    +关注

    关注

    8

    文章

    323

    浏览量

    47104

原文标题:学会使用Hdlbits网页版Verilog代码仿真验证平台

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    实时级嵌入式系统半实物仿真测试平台ETest

    产品简介** ETest_RT是一款具有高实时性的嵌入式系统半实物仿真测试平台(Embedded System Real Time Test Studio RT,简称:ETest_RT
    发表于 04-25 17:01

    想要自行开发爱星物联的网页,对着代码一头雾水?

    伙伴们,爱星物联IoT平台开源版本已经上线,有没有小伙伴在自行开发爱星物联的网页时,对着代码一头雾水?工欲善其事,必先利其器!开发前先来瞅瞅如何配置环境。 工具安装 先准备好装备,根据使用的电脑系统
    的头像 发表于 04-16 15:57 107次阅读
    想要自行开发爱星物联的<b class='flag-5'>网页</b>,对着<b class='flag-5'>代码</b>一头雾水?

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 301次阅读

    分享一款能连arduino仿真的电化学软件

    分享一款能连arduino仿真的电化学软件,能模拟多种检测方法,适合仿真环境文件如下:
    发表于 10-10 06:52

    如何使用Verilog语言进行仿真验证

    仿真验证主要作用是搭建一个测试平台,测试和验证程序设计的正确性,验证设计是否实现了我们所预期的功能。其结构如下图所示。
    的头像 发表于 10-02 16:29 849次阅读
    如何使用<b class='flag-5'>Verilog</b>语言进行<b class='flag-5'>仿真</b><b class='flag-5'>验证</b>

    芯片设计中逻辑仿真和数字验证介绍

    芯片的设计规格和功能要求。根据这些要求,制定验证计划,并编写测试用例。 逻辑仿真:逻辑仿真是通过软件工具模拟芯片电路的行为,验证电路的功能是否符合设计规格。在逻辑
    的头像 发表于 09-14 17:11 775次阅读

    一款​跨平台指纹识别工具原理解析

    一款平台社区网页指纹识别工具,类似glass、eholo,不同的是该工具调用 nuclei ,可以同时进行漏洞验证
    发表于 07-28 15:56 1107次阅读
    <b class='flag-5'>一款</b>​跨<b class='flag-5'>平台</b>指纹识别工具原理解析

    Verilog代码封装后门访问

    关于仿真里的后门访问,之前的文章《三分钟教会你SpinalHDL仿真中的后门读写》中有做过介绍,其针对的都是针对以SpinalHDL中的代码进行的后门访问。今天来看看当封装了Verilog
    的头像 发表于 07-15 10:22 511次阅读
    <b class='flag-5'>Verilog</b><b class='flag-5'>代码</b>封装后门访问

    软件仿真、硬件仿真、原型验证是如何工作的?

    面对复杂的设计代码,我们如何确保其准确性?功能验证就是这场战斗的关键过程。工程师们通常使用的验证方法包括软件仿真、硬件仿真和原型
    的头像 发表于 06-11 14:24 535次阅读
    软件<b class='flag-5'>仿真</b>、硬件<b class='flag-5'>仿真</b>、原型<b class='flag-5'>验证</b>是如何工作的?

    什么是良好的Verilog代码风格?

    verilog个行为模型来替代实现。这种原型验证仿真验证的不致,导致了跟dummy模块设
    发表于 06-02 14:48

    基2FFT的verilog代码实现及仿真

    上文基2FFT的算法推导及python仿真推导了基2FFT的公式,并通过python做了算法验证,本文使用verilog实现8点基2FFT的代码
    的头像 发表于 06-02 12:38 696次阅读
    基2FFT的<b class='flag-5'>verilog</b><b class='flag-5'>代码</b>实现及<b class='flag-5'>仿真</b>

    Verilog仿真激励举例

    Verilog 代码设计完成后,还需要进行重要的步骤,即逻辑功能仿真仿真激励文件称之为 testbench,放在各设计模块的顶层,以便对模块进行系统性的例化调用进行
    的头像 发表于 06-02 11:35 1131次阅读
    <b class='flag-5'>Verilog</b><b class='flag-5'>仿真</b>激励举例

    仿真器的角度理解Verilog语言1

    只作为语法设定来介绍,忽略了Verilog语言的软件特性和仿真特性。使得初学者无法理解Verilog语言在行为级语法(过程块、赋值和延迟)背后隐藏的设计思想。本文尝试从仿真器的角度对
    的头像 发表于 05-25 15:10 674次阅读
    从<b class='flag-5'>仿真</b>器的角度理解<b class='flag-5'>Verilog</b>语言1

    Verilog边沿检测的基本原理和代码实现

    本文将从Verilog和边沿检测的基本概念入手,介绍Verilog边沿检测的原理和应用代码示例。
    的头像 发表于 05-12 17:05 2347次阅读
    <b class='flag-5'>Verilog</b>边沿检测的基本原理和<b class='flag-5'>代码</b>实现

    如何使用参数化编写可重用的verilog代码

    我们将介绍如何使用verilog参数和generate语句来编写可重用的verilog 代码。 与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。这使我们能够减少未来项目
    的头像 发表于 05-11 15:59 713次阅读