OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9000|回复: 5

[ALTERA] fpga里如何进行接收数组的合法性校验

[复制链接]

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2016-2-20
在线时间
309 小时
发表于 2021-2-25 14:59:50 | 显示全部楼层 |阅读模式
1金钱
FPGA才开始学,请教论坛里高手在FPGA里数组比较方法。原来在C51里数组是这样比较的
现在用FPGA实现同样的功能,代码该如何写?

无标题.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-2-26 01:45:07 | 显示全部楼层
回复

使用道具 举报

3

主题

2013

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5618
金钱
5618
注册时间
2018-10-21
在线时间
1591 小时
发表于 2021-2-26 09:07:57 | 显示全部楼层
CRC校验算法吗
回复

使用道具 举报

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2016-2-20
在线时间
309 小时
 楼主| 发表于 2021-2-26 09:10:02 | 显示全部楼层

不是CRC校验,校验接收到的数组是否约定格式
always@(posedge clk or negedge rst_n)
begin
    if(rst_n == 1'b0)
             dat_state <= 0;//初始化时
         else if(rx_buf[0] != 2)      //如果帧首错误
             dat_state <= STX_err;
         else if(rx_buf[len+3 ] != crcH)  //如果校验高字节错误
             dat_state <= crc_err;
         else if(rx_buf[len+4 ] != crcL)  //如果校验低字节错误
             dat_state <= crc_err;
         else if(rx_buf[len+5] != 3)  //如果帧尾错误
             dat_state <= ETX_err;
    else
             dat_state <= no_err;
end

总感觉自己写的不对,不知该怎么写
回复

使用道具 举报

3

主题

2013

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5618
金钱
5618
注册时间
2018-10-21
在线时间
1591 小时
发表于 2021-2-26 09:13:38 | 显示全部楼层
jindizhiwa 发表于 2021-2-26 09:10
不是CRC校验,校验接收到的数组是否约定格式
always@(posedge clk or negedge rst_n)
begin

为啥不对,不确定的话可以仿真看看
回复

使用道具 举报

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2016-2-20
在线时间
309 小时
 楼主| 发表于 2021-2-26 09:39:25 | 显示全部楼层
图中划记号的地方怎么写代码?能给点思路吗?
无标题.png
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 00:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表