【架构艺术】(零) 环境搭建

news2025/9/19 0:48:27

写在前面

  今天尝试了如systemC,Chisel,MyHDL等方式来进行功能仿真,并生成波形到Wavedrom格式,后来发现对于学习这些简单架构,还是脑子里面根据规则进行仿真或者是编写verilog代码进行仿真即可。

  所以我们的环境依赖只有:安装wavedrom,
在这里插入图片描述
点击安装即可
在这里插入图片描述
必须要喷一下的是,它现在的icon真的好丑
软件的教程可以参考这个

http://www.lachun.com/202302/QdUOTnadtd.html

附上学习参考:

书籍:SOC设计方法与实现(第三版)、硬件架构的艺术
视频:ETH、Berkeley
知乎:链接在正文
CSDN:链接在正文

下面直接进入学习

1 跨时钟域数据传输方法之一:使用握手信号

  本节主要参考 SOC设计方法与实现(第三版)、硬件架构的艺术这两本书
  另一种方法是异步FIFO,这里就不说了,自行学习。
  书上说的比较多握手信号的可能是req、ack.
  这两本书中,都对握手有过阐述,握手主要解决的是跨时钟数据的传输问题。(《硬件架构的艺术》P64,《SOC设计方法与实现(第三版)》P131,P133)
  首先,对于CDC问题,为什么要用同步器?因为根源在另一个时钟域的信号输入到本时钟域时,很可能不满足建立保持时间,输入信号在本时钟域时钟上升沿(以上升沿的同步电路为例)前后间隙中发生了变化,导致了亚稳态。为了避免这种问题,就需要对跨时钟信号进行同步。
  握手过程中,只是进行了握手信号的跨时钟同步。而握手信号保证了在这个过程中数据payload部分不发生变化(因此数据就不会有亚稳态),因此直接对数据进行采样即可,如下图所示
在这里插入图片描述
但是上图不够严谨,跨时钟的控制信号从快采慢需要进行脉冲检测的处理
在这里插入图片描述

一些思考】  书上有这么一句话,
在这里插入图片描述
  也就是说,如果x_req给的太短,如果是慢采快的情况,可能采不到信号。
  此外,SOC设计方法与实现(第三版)中,也说到这种握手常用于快采慢。
在这里插入图片描述
所以两本书都推荐用这种握手机制实现跨时钟快采慢的数据传输。那么为什么会是这样呢?下图是SOC设计方法与实现(第三版)中握手机制的图,给的也是经典快采慢的,而没有用慢采快的反馈,这是为什么呢?
在这里插入图片描述
  我推测可能和慢采快的反馈有关,慢采快需要控制信号不能太密。但这只是我的个人推测,具体还要写代码看看波形试一试。

  除了为了跨时钟传输数据,保证数据稳定性,握手还有流控的作用,因此在同步电路或者非跨时钟的通信中,也会用到握手。比如这篇讲到的,AXI信号属于同步握手,这里握手就是为了流控,需要和本节跨时钟握手区分开。

一些思考】  
  有没有跨时钟和流控一起用的?就是以上两种的叠加,比如AXI既需要用valid-ready进行跨时钟握手,又需要进行流控。但是GPT告诉我axi基本都是主从同步的,而且我看的一些valid-ready的教程,比如这篇,也都是默认它们是同步信号,没有对其进行跨时钟的处理。
  除此之外,是不是AXI的valid-ready只是用于流控,而跨时钟的问题是AXI组件的FIFO来实现的?那么它的valid和ready信号是如何同步的,为什么这些时序图画图的时候,都把ready、valid画在同一时钟域下
  
  
  在这篇中有提到,总线时钟都是同步时钟,都是ACLK,所以回答了上述问题,AXI4协议中,使用valid,ready作为流控握手而不是用来CDC握手,这么说来,这两本书中用req和ack是不是也有深意?

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

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

相关文章

【PostgreSQL启动,停止命令(重启)】

找到 /usr/lib/systemd/system文件夹路径看是否包含 postgresql服务 关闭服务: systemctl stop postgresql-12.service启动服务 systemctl start postgresql-12.service重启服务 systemctl restart postgresql-12查看状态 systemctl status postgresql-12.servi…

区分Cookie,Session,Token

Cookie 由于HTTP 协议是一个无状态协议,客户端向服务器发请求,服务器返回响应。并且你每次都要输入账号和密码进行登录,对于用户来说非常的麻烦!这种背景下,就产生了 Cookie cookie 存储在客户端: cookie…

Essential Steps in Natural Language Processing (NLP)

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

C语言 | 浮点数在内存中存储方式

浮点数其实在内存中也是以2进制的形式存储的,但是它不是以原码、反码、补码的形式存储的。 常见的浮点数: 3.14159 1E10【科学计数法1.0*10^10】 eg:1.2312.3*10^-10.123*10^1 浮点数家族包括:float、double、long double类型…

C语言水平测试题 过关斩将(3)辗转相除法,前n项求和,整数的正序分解,求最大公约数

我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位 👍点赞 ⭐收藏 📝评论 我的专栏:C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客(这…

Linux 部署 GitLab idea 连接

概述 GitLab 是一个开源的代码管理平台,使用 Git 作为版本控制工具,提供了 Web 界面和多种功能,如 wiki、issue 跟踪、CI/CD 等。 GitLab 可以自托管或使用 SaaS 服务,支持多种操作系统和执行器。 GitLab 可以帮助软件开发团队…

有 AI,无障碍,AIoT 设备为视障人群提供便利

据世界卫生组织统计,全球共 22 亿人视力受损,包含 2.85 亿视障人群和 3,900 万全盲人群。而且,这一数字将随老龄化加剧不断增加。 虽然视障人群面临着诸多不便,但是针对视障人群的辅助设备却存在成本高、维护困难、操作复杂等问题…

小流域洪水分析模拟预报设计及代码实现

应用说明: 利用无人机、卫星等技术,获取小流域洪水模拟分析所需的数据,并将其与模型进行结合,提高模拟精度; 探索小流域洪水模拟分析与城市规划、土地利用等方面的关系; 小流域河流洪水模拟计算分析是一项…

Java编程第9讲——CountDownLatch、CyclicBarrier和Semaphore(万字详解)

在JDK的并发包(JUC)里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier和Samaphore工具类提供了一种并发流程控制的手段,这同样也是面试和工作中的一个重要知识点,本文将从它们的定义、常用方法、代码示例及核心源…

STM32Cube高效开发教程<基础篇>(一)----概述

一、 STM32系列器件和开发工具发展历史 1.1 开发工具发展史 2014年HAL/LL库和STM32Cube是ST公司STM32Cube计划的产物,旨在提高开发效率。2019年4月,ST公司退出自己的IDE软件STM32CubeIDE,完善了STM32Cube生态系统。 1.2 STM32系列器件 1.3 器件驱动库 标准外设库( Standar…

Python Django 之连接 Mysql 数据库详解

文章目录 1 概述1.1 Mysql 下载和安装1.2 菜单目录 2 ORM 框架2.1 连接 Mysql 模块:mysqlclient2.2 创建数据库2.3 连接 Mysql2.4 创建表2.5 增删改查 3 扩展3.1 ERROR:2026, SSL connection error: unknown error number 1 概述 1.1 Mysql 下载和安装 …

windows安装nvm

源代码 下载 下一步一下步安装即可 检查是否安装成功 nvm出现上面的代码即可安装成功 常用命令 查看目前安装的node版本 nvm list [available]说明没有安装任何版本,下面进行安装 nvm install 18.14使用该版本 node use 18.14.2打开一个新的cmd输入node -…

Self-Instruct

本篇工作利用LLM的生成能力,来产生大量指令数据集(指令、输入、输出),无需人工标注数据。 其中,在对任务判别的时候,需要区分是输出优先还是输入优先: 输入优先没问题,符合人类直觉…

面试题:说说Java线程的状态及转换

文章目录 为何要了解Java线程状态Java线程状态转换图Java线程有哪些状态?关于wait()放在while循环的疑问BLOCKED 和 WAITING 状态的区别和联系 为何要了解Java线程状态 线程是 JVM 执行任务的最小单元,理解线程的状态转换是理解后续多线程问题的基础。 …

加持智慧医疗,美格智能5G数传+智能模组让就医触手可及

智慧医疗将云计算、物联网、大数据、AI等新兴技术融合赋能医疗健康领域,是提高医疗健康服务的资源利用效率,创造高质量健康医疗的新途径。《健康中国2030规划纲要》把医疗健康提升到了国家战略层面,之后《“十四五”全面医疗保障规划》等一系…

最新AI写作创作系统源码ChatGPT源码,支持AI绘画/支持OpenAI-GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

池州市的城市环境融合:OLED透明拼接屏展现自然与现代的完美结合

池州是中国安徽省的一个地级市,位于该省的西南部。池州市辖区包括贵池区、东至县、石台县、青阳县等地。 池州市拥有悠久的历史和丰富的文化遗产,同时也以其独特的自然风光而闻名。 首先,让我们来了解一下池州的历史和景点。 池州的历史可…

【TS】笔记-TypeScript环境搭建

TypeScript与JavaScript比较 JavaScript是轻量级的解释性脚本语言,可嵌入到HTML页面中,在浏览器端执行。而TypeScript是JavaScript的超集,即包含JavaScript的所有元素,能运行javaScript的代码,并扩展了JavaScript的语…

竞赛选题 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数:2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…

利达卓越:金融领域的变革者——利达卓越引领行业发展

在过去的几十年里,金融行业面临着经济不确定性、监管压力和竞争加剧等诸多挑战。与此同时,金融领域的迅速发展为行业带来了新的机遇。利达卓越精准地把握了这一机遇,利用先进的科技手段应对挑战。成为金融领域的变革者,引领着金融行业的发展。 利达卓越成立于2015年,至今已有8年…