3100|12

706

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

FPGA Verilog一个基础问题 [复制链接]

 

 27   rs232_rx0 <= rs232_rx ;
28    rs232_rx1 <= rs232_rx0 ;
29    rs232_rx2 <= rs232_rx1 ;
30    rs232_rx3 <= rs232_rx2 ;

没看明白这几个语句所要实现的结果是怎样的。

 assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & ~rs232_rx1 & ~rs232_rx0

最新回复

数电基础吗,数字基础是什么   详情 回复 发表于 2024-2-22 18:59
点赞 关注
 

回复
举报

9717

帖子

24

TA的资源

版主

沙发
 

好像是分别读取rs232_rx的数据,按优先顺序存入rs232_rx2,rs232_rx1,rs232_rx0,即rs232_rx2是最早的数据,rs232_rx0是最后的数据,neg_rs232_rx 在数据为1100时为1,否则为0。

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

506

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

上边四句应该是时序逻辑,每一个时钟周期赋值一次。最终assign那就其实应该是RX1下降沿之后到RX2下降沿之前的那个时钟周期,neg_rs232_rx 会有一个正脉冲信号。

点评

兄弟,每个时钟周期只能有一个状态,对赋值对象是不对地!  详情 回复 发表于 2022-6-16 15:26
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

4
 

下面四句是一个移位操作;

 27   rs232_rx0 <= rs232_rx ;
28    rs232_rx1 <= rs232_rx0 ;
29    rs232_rx2 <= rs232_rx1 ;
30    rs232_rx3 <= rs232_rx2 ;

这一句是计算奇偶校验的

 assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & ~rs232_rx1 & ~rs232_rx0

 

 
 
 

回复

706

帖子

0

TA的资源

纯净的硅(高级)

5
 

非常 感谢!

 
 
 

回复

706

帖子

0

TA的资源

纯净的硅(高级)

6
 

仔细学习推敲了一上午,总算搞明白了,还是数字基础知识要学好,再结合实际应用经验.

点评

数电基础吗,数字基础是什么  详情 回复 发表于 2024-2-22 18:59
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

7
 
bioger 发表于 2022-6-16 08:33 上边四句应该是时序逻辑,每一个时钟周期赋值一次。最终assign那就其实应该是RX1下降沿之后到RX2下降沿之前 ...

兄弟,每个时钟周期只能有一个状态,对赋值对象是不对地!

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 

学习了

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

9
 
移位缓存
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

10
 

这就是UART RX找下降沿的代码

 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(中级)

11
 

移位,打拍,然后取边沿,作为一个启动信号

 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

12
 
本帖最后由 LilMonster00 于 2024-2-22 18:58 编辑

以下是搜索到的回答,我看了觉得没什么问题,您看一下有没有帮助

这几行 Verilog 代码实现了一种对 RS232 接收信号进行处理的逻辑。下面解释一下这些代码的作用:

  • 第 27 行到第 30 行:这些语句是将一个连续的信号 rs232_rx 从一个寄存器传递到另一个寄存器,创建了一个移位寄存器链。具体来说,rs232_rx 从 rs232_rx0 传递到 rs232_rx3,形成一个移位链,每个时钟周期 rs232_rx 的值都会向右移动一个寄存器位置。这种操作通常用于对信号进行时序处理或者创建移位寄存器链来实现特定的功能。

  • 第 31 行:这行代码是根据移位寄存器链中的值计算一个新的信号 neg_rs232_rx。具体来说,它通过对 rs232_rx3、rs232_rx2、rs232_rx1 和 rs232_rx0 进行逻辑运算,得出一个新的信号值。根据代码逻辑,neg_rs232_rx 将为逻辑值1(高电平)当且仅当 rs232_rx3 为1、rs232_rx2 为1、rs232_rx1 为0 以及 rs232_rx0 为0 时,否则为0。这种逻辑运算通常用于对信号进行条件判断或者生成特定的信号模式。

综合起来,这些代码的作用是将连续的 RS232 接收信号进行移位操作,并基于移位后的信号值计算出一个新的信号 neg_rs232_rx。

 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

13
 
Fred_1977 发表于 2022-6-16 11:46 仔细学习推敲了一上午,总算搞明白了,还是数字基础知识要学好,再结合实际应用经验.

数电基础吗,数字基础是什么

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表