首页 > 其他分享 >reg和wire+fsdb转文本+FIQ和IRQ+桶形移位+数据转换+数据同步+NRZ和NRZI+加法器有效使用

reg和wire+fsdb转文本+FIQ和IRQ+桶形移位+数据转换+数据同步+NRZ和NRZI+加法器有效使用

时间:2023-08-06 18:13:51浏览次数:38  
标签:FIQ 数据 IRQ wire https NRZI com

reg和wire

https://mp.weixin.qq.com/s?__biz=MzUyNzA2MDA0OQ==&mid=2247531642&idx=1&sn=be10436fa547d894cf58bbffac48a0fd&chksm=fa076144cd70e8524cbc108db18e5fdf9472a0ea9e2b14f4b55d3d3d936136bc50b7b4c30589&scene=27

wire可以作为模块的输入和输出,但是reg只能作为模块的输出。

wire可以作为外部的连接链接到输入和输出,reg只能作为外部模块的输入。

reg可以综合成register,latch,甚至wire(当其只是中间变量的时候),可以用于组合逻辑或者时序逻辑,能存储数据

默认的wire是z态,reg是x态。

fsdb转文本(csv文件)

使用fsdbreport工具
https://codeantenna.com/a/LJfe6286bv

FIQ和IRQ中断

在ARM的处理器中断中,有FIQ:Fast Interrupt Request, IRQ: Interrupt ReQuest。
FIQ比IRQ有更高优先级,如果FIQ和IRQ同时产生,那么FIQ先处理。
FIQ的中断向量地址在0x0000001C,而IRQ的在0x00000018。(也有的在FFFF001C以及FFFF0018)
IRQ位置只能存储一条指令,否则会把FIQ覆盖掉。因此IRQ中断的位置存储的是跳转指令,进入中断后还需要一次跳转指令才能真正的执行中断服务程序。
而FIQ直接执行中断服务程序,理论上更快。
FIQ和IRQ可以类比到riscv的中断MODE,普通MODE下是FIQ,跳转的位置是0号中断。Vector模式下跳转的地址也是4byte对其的,是IRQ的形式,也是只能存储一个跳转指令。

桶形移位器

https://www.cnblogs.com/doincli/p/15803313.html
如何在单个时钟周期内作出指定位数(如位宽是8位)的移位方法?事先并不知道要移动的位数,那么就把所有的可能性都做出来,通过case语句选择即可。
本质上就是把8个移位器做出来,然后再进行片选使用:单个周期进行多个移位。

数据转换器

由宽到窄

https://www.cnblogs.com/family5love/p/16184645.html
image
基本原理:
data_in_r是在clk2x时钟驱动下读入数据,因此会读两次相同的结果;

data_out是16bit数据输出。在clk2x时钟驱动下,
当clk1x为0时输出data_in_r的低16位
当clk1x为1时输出data_in_r的高16位

由窄到宽

https://www.bilibili.com/read/cv15677724/
仍然使用clk2x采样数据(频率高才能采样到)临时存储半个数据和1个数据,然后使用clk1x输出完整数据。
下图示意,链接处图题不对。
image

数据同步

https://cloud.tencent.com/developer/article/1890021

  1. 使用异步FIFO(占资源过多)
  2. 使用握手机制(耗时,速度慢)
  3. 使用脉冲同步器(相当于引入了一个module吧,没怎么看)
  4. 准时钟同步(PCIe、SATA、USB等,数据内部混入时钟和控制)
    剩下的其它资源,也许数据同步还有很多其它方法,但是我不是做这部分的,看了就忘,先放这里
    https://www.cnblogs.com/lyc-seu/p/12441366.html

NRZ NRZI编码

https://www.jianshu.com/p/c607794ea928

NRZI编码一般用在USB设备中。
最早时候有RZ编码,如果是输出0101010信号,则完整的可以计算出时钟信息,并在后续传输过程中可以实现时钟的同步校准、,但是对带宽资源形成了浪费。
RZ编码以每次信号结束都等待一个时钟周期归零而著称。
image

NRZ编码,失去了同步的校准,回归了带宽资源的使用:
image

NRZI 编码(Non-Return-to-Zero Inverted Code)和 NRZ 的区别就是 NRZI 用信号的翻转代表一个逻辑,信号保持不变代表另外一个逻辑:
image

在 USB 中,每个 USB 数据包,最开始都有个同步域(SYNC),这个域固定为 0000 0001,这个域通过 NRZI 编码之后,就是一串方波(复习下前面:NRZI 遇 0 翻转遇 1 不变),接受者可以用这个 SYNC 域来同步之后的数据信号。
此外,因为在 USB 的 NRZI 编码下,逻辑 0 会造成电平翻转,所以接受者在接受数据的同时,根据接收到的翻转信号不断调整同步频率,保证数据传输正确。
如果要传输的数据中有 7 个连续的 1,发送前就会在第 6 个 1 后面强制插入一个 0,让发送的信号强制出现翻转,从而强制接受者进行频率调整。接受者只要删除 6 个连续 1 之后的 0,就可以恢复原始的数据了。

加法器的有效使用

https://mp.weixin.qq.com/s?__biz=MzUyNzA2MDA0OQ==&mid=2247544607&idx=1&sn=ec6b652bc72dc917ea3356a086739038&chksm=fa073221cd70bb37727d3299c5c029c3dffad6a54ccdd0bd3aba31c46bedd09b0fd70e794ebc&scene=27

image
综合得到了不同的结果(但是综合工具如果足够给力,对编码直接优化的话,其实怎样编写都无所谓)
image

标签:FIQ,数据,IRQ,wire,https,NRZI,com
From: https://www.cnblogs.com/bai2022/p/17599622.html

相关文章

  • spring boot自定义类中 @Autowired注入失败问题小记
    springboot自定义类中@Autowired注入失败问题小记第一种方法:@PostConstruct,大多数人使用的方式,不过对于我的问题没有用第二种方法:实现ApplicationRunner接口,在run方法执行后进行初始化第三种方法:实现ApplicationContextAware接口,直接到spring容器拿bean代码如下shiroConf......
  • @Autowired 和 @Resource的区别
    @Autowired和@Resource都可以用于注入Bean对象,并且都可以自动装配依赖关系,但他们主要的区别在于:1.使用的注解不同@Autowired是Spring提供的注解,而@Resource是JSR-250规范提供的注解。2.默认情况下注入的方式不同@Autowired默认按照类型装配依赖对象,当发现有多个Bean满足依......
  • 【Salesforce】【lwc】@api @track @wire
    一、@api@track@wire的区别1.@track注解private类型的reactive变量。2.@api注解public类型的reactive变量(public类型:即可暴露给其他的APP用来可以赋值注入)。3.@wire:我们常用的注解除了@track以及@api以外,还会经常使用@wire,区别为前两个是只针对前台的,wire既可以用在前台也......
  • WireGuard_实践
    WireGuard_实践转载注明来源:本文链接来自osnosn的博客,写于2023-07-29.参考文档【彻底理解WireGuard的路由策略】【Wireguard全互联模式(fullmesh)配置指南】【Wireguard全互联模式(fullmesh)配置指南】【WireGuard官网installation】【】OpenWRTop-21.02,op-......
  • 设备驱动-10.中断子系统-4.3中断线程化处理-threaded_irq
    1.threaded_irq引入工作队列用起来挺简单,但是它有一个缺点:工作队列中有多个work,前一个work没处理完会影响后面的work执行,导致后面的work没法快速响应。那么可以再内核自己创建一个线程来单独处理,不跟别的work凑在一块了。比如在Linux系统中,对于存储设备比如SD/TF卡,它......
  • Wireshark零基础入门学习笔记01
    下载与安装wireshark是一款免费的数据包分析软件,可以通过访问官方网站进行下载安装,支持windows、linux、macos等多种平台(还可以下载源码)。wireshark功能强大,安装方便,掌握了wirshark的使用方法不但可以在学习中帮我们更直观深入得了解网络协议的工作原理,更能在以后的工作中帮助我们......
  • 第九章 wirewalld防火墙
    1、CentOS7.x中默认使用的防火墙是firewalld,在centos6中防火墙叫做iptablesfirewalld增加了区域的概念,所谓区域是指,firewalld预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。2、常见区域及相应策略规则如下:区域默认策略trusted 允许所有数据......
  • [ABC308G]MinimumXorPairQuery
    [ABC308G]MinimumXorPairQuery必须知道的性质:对于三个非负整数\(x,y,z(x<y<z)\),有\(\min(x\bigoplusy,y\bigoplusz)<x\bigoplusz\)。证明从二进制最高位开始\(i=\logV\),对\(x,y,z\)进行如下操作:若它们的当前位都两两相同,继续跳到下一位i--。根据......
  • Wireshark mysql
    实现“WiresharkMySQL”教程1.流程概述在实现“WiresharkMySQL”之前,我们需要了解整个流程。下表展示了实现“WiresharkMySQL”的步骤:步骤描述步骤1安装Wireshark步骤2设置捕获过滤器步骤3捕获MySQL数据包步骤4分析捕获的数据包下面将逐步......
  • spring boot使用mongodb时,xxxRepository不能Autowired的问题
    默认情况下,当继承MongoRepository的CRUD在@SpringBootApplication的子包下时,xxxRepository是能够自动被扫描和创建代理的。但是如果不在默认路径下,就无法注入了,即使是扫描路径加到了@ComponentScan也一样。解决方法:在springboot启动类中添加@EnableMongoRepositories注解,标注mon......