Verilog实战学习到RiscV - 1 : Yosys 综合

news2024/9/23 9:28:42

Yosys 综合

实例

一般 FPGA IDE 的第一步都是RTL 综合(Synthesis)。之后就能看到数字电路图了。然后可以做RTL 级的仿真模拟。

直接上代码,这里我们看一个简单的加法器来学习。

module adder(
  input  [7:0] a,
  input  [7:0] b, 
  input        ci, // carry in

  output [7:0] sum, 
  output        co // carry out    
);

  wire   [8:0] tmp;  // 多一位是为了输出进位

  assign tmp = a + b + ci;  // 算上进位
  assign sum = tmp [7:0];
  assign co  = tmp [8];     // 输出进位
endmodule

如何综合

写一个yosys脚本:

read_verilog adder.v
hierarchy -check
proc; opt; memory; opt; fsm; opt
show -format dot -prefix ./adder_rtl
write_json out.json 

这个 .ys 文件是用于 yosys 工具的脚本,它指定了如何对 Verilog 设计文件进行综合。本脚本的作用是读取一个 Verilog 文件,并执行一系列综合步骤,最后生成一个 JSON 格式的输出文件以及一个 RTL (寄存器传输级) 图。以下是对脚本各部分的详细解释:

  1. 读取设计

    read_verilog adder.v
    
    • read_verilog 命令读取指定的 Verilog 文件 (adder.v) 并将其载入到 yosys 的设计数据库中。这个文件应该包含你要综合的硬件描述代码。
  2. 层次结构检查

    hierarchy -check
    
    • hierarchy 命令检查设计的模块层次结构,确保所有的模块引用都是一致的,并且所有的子模块都能找到。-check 选项会在检查过程中报告任何发现的问题。
  3. 高级综合步骤

    proc; opt; memory; opt; fsm; opt
    
    • 这一系列命令执行了多步优化和转换处理:
      • proc:处理进程,转换所有的进程 (always 块) 成为数据流图 (DFG)。
      • opt:优化设计,执行一系列常规优化步骤以简化和优化电路。
      • memory:处理和优化存储器 (RAM, ROM),将其转换成适当的实现。
      • opt:再一次优化设计,以利用前一步的转换可能带来的新优化机会。
      • fsm:处理有限状态机 (FSM),将 FSM 转换成最优实现。
      • opt:最后再进行一次优化,确保所有前面的转换和优化都得到充分利用。
  4. 展示设计

    show -format dot -prefix ./adder_rtl
    
    • show 命令生成设计的图形表示。-format dot 选项指定输出格式为 DOT 格式 (Graphviz 使用的图形描述语言),-prefix ./adder_rtl 选项指定生成的文件前缀为 ./adder_rtl。最终会生成一个 ./adder_rtl.dot 文件,该文件可以用 Graphviz 工具进行可视化。
  5. 生成 JSON 输出

    write_json out.json
    
    • write_json 命令将当前设计写入 JSON 格式文件 out.json。这个文件包含了综合后的设计信息,可以用于其他工具进行进一步处理或分析。

运行脚本:

yosys ./synthesis_rtl.ys

这时我们可以看到out.jsonadder_rtl.dot 文件。

查看 RTL 原理图

.dot 文件如何看呢?运行如下命令即可。我用的是Ubuntu22.04, dot 应该已经默认安装了。

dot -Tpng adder_rtl.dot > adder_rtl_dot.png

Adder RTL 原理图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费使用知网下载文献

第一步:输入网址:https://digi.library.hb.cn:8443/#/(或搜索湖北省图书馆) 第二步:点击登录按钮。 第三步:使用手机 支付宝 扫描页面左侧二维码。 第四步:手机点击“电子读者证注册”。&…

Android Studio 所有历史版本下载

一、官网链接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 参考 https://blog.csdn.net/qq_27623455/article/details/103008937

技术创新加速生态繁荣 | 软通动力子公司鸿湖万联亮相OpenHarmony开发者大会2024

5月25日,由开放原子开源基金会OpenHarmony项目群工作委员会主办的OpenHarmony开发者大会2024在深圳成功举行。本次大会紧扣OpenHarmony 4.1 Release版本发布契机,以“鸿心聚力,智引未来”为主题、通过“1场主论坛6场技术分论坛”承载&#xf…

UI卡片设计入门:一步步教你成功逆袭

UI卡片设计是目前流行的UI设计风格。UI卡片设计是对网页中的卡进行分析和重构的设计,那么在设计UI卡片时应该注意什么呢?目前流行哪种UI卡片设计?收集这个UI卡片设计避坑指南,菜鸟也可以反击成UI设计老板~ UI卡片是什么&#xff…

智慧管廊巡检运维解决方案

一、智慧管廊巡检行业目前存在的挑战和难题 智慧管廊巡检行业面临着运行环境的客观影响,如地面施工、液体渗漏、通风不佳、内部空间受限等问题。而管廊巡检机器人系统的出现却具有重大意义。它能够有力地保障管廊安全且可靠地运行,在面对火情、灾情等紧…

2024「618年中盛典」媒体邀约有哪些优惠活动?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 51媒体网2024年618 活动正式开启,也预示着2024传播季—年中盛典的到来,从即日起下单的客户,即可享受满减增等优惠政策,新客更享受折上折的…

养猫久了才知道,为什么宠物空气净化器是养猫必备!效果惊人!

养猫是一件非常愉快的事情,猫咪的陪伴能带给我们无尽的欢乐和温暖。然而,随着时间的推移,许多养猫的朋友会发现一个问题,那就是家中的空气质量变差了,猫毛、异味等问题也随之而来。这时候,一款好的宠物空气…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十二)- 微服务(2)

目录 4. Ribbon负载均衡 4.1 负载均衡流程 4.2 负载均衡策略 4.3 Ribbon饥饿加载 5. Nacos注册中心 5.1 服务注册到nacos 5.2 nacos服务分级存储模型 5.3 根据权重负载均衡 5.4 环境隔离--namespace 4. Ribbon负载均衡 4.1 负载均衡流程 4.2 负载均衡策略 默认实现是…

python基础知识:py文件转换为jupyter文件

搜索了很多,都没什么用,会出现一些json错误,最终直接新建文件成功: 在自己电脑安装Anaconda,安装jupyter notebook,输入命令打开jupyter notebook: 在Anoconda命令行中cd到自己要转换文件的地址&#xff0…

天正T20专业建筑v7.0~v10.0版本下载,天正T20专业建筑软件获取

利用AutoCAD这一全球知名的图形平台,我们成功研发出了最新一代的T20天正建筑软件V8.0。这款软件以其卓越的性能和专业化的功能,在建筑施工图设计领域展现出了强大的实力,赢得了广大建筑设计师的青睐。 T20天正建筑软件V8.0在继承了AutoCAD的稳…

【自动驾驶技术栈学习】2-软件《大话自动驾驶》| 综述要点总结 by.Akaxi

----------------------------------------------------------------------------------------------------------------- 致谢:感谢十一号线人老师的《大话自动驾驶》书籍,收获颇丰 链接:大话自动驾驶 (豆瓣) (douban.com) -------------…

Beego 使用教程 8:Session 和 Cookie

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发,包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado, Sinatra 和 Flask beego 官网:http://beego.gocn.vip/ 上面的 be…

AI架构设计7:TGI

这个专栏主要关注围绕着AI运用于实际的业务场景所需的系统架构设计。整体基于云原生技术,结合开源领域的LLMOps或者MLOps技术,充分运用低代码构建高性能、高效率和敏捷响应的AI中台。该专栏需要具备一定的计算机基础。 若在某个环节出现卡点,…

质量评估门户:您AI内容的质量守护者

在当今这个内容饥渴和内容疯狂的世界里,AI驱动的内容创作既是一种流行趋势,有时也是一个改变游戏规则的存在。但强大的能力伴随着巨大的责任……即确保质量的责任。 想象一下:你拥有一个AI[和创意团队],他们以闪电般的速度输出博…

unity制作app(9)--拍照 相册 上传照片

1.传输照片(任何较大的数据)都需要扩展服务器的内存空间。 2.还需要base64编码 2.1客户端发送位置的编码 2.2服务器接收部分的代码

全球首个AI代理驱动的元宇宙生态Wondra,让Web3再次伟大

前段时间,因为OpenAI的Sora发布、英伟达财报的发布,英伟达市值直逼2.5万亿美金,使得Crypto行业的AI赛道热度飙升,WLD,AGIX,FET等项目都有了不俗的表现。而这几天,因为大盘整体向好,再…

css中实现背景方格

background: rgba(241,241,241,0.1); background-image:linear-gradient(90deg, rgba(241,243,244,1) 10%, transparent 0),linear-gradient(rgba()241,243,244,1 10%, transparent 0); background-size: 10px 10px; 表现出来的样子就是这个样子

回顾java-异常

异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 需…

vivado改变波形图窗口颜色

点击右上角的设置图标 翻译对照

老板:2个亿的销售额,利润只有55万!电商这个生意真的到头了?

近来,一段对话轰动了半个电商圈的老板,干拼多多,2亿的销售额,利润只有55万! 其实造成这一现象的原因就是“内卷” 说一句电商行业真实的现状,电商发展了十几年,网友对网购已经完全熟悉&#x…