FPGA 检测0101序列 修正罗杰主编教材中5.2.3二段式报错

2024-02-09 13:59

本文主要是介绍FPGA 检测0101序列 修正罗杰主编教材中5.2.3二段式报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于 源代码书上

module Detector2 (
input Sin, CP, nCR, //声明输入
output reg Out //声明输出
);
reg [1:0] Current_state, Next_state; //声明状态触发器变量
parameter S0=2'b00, S1=2'b01, S2=2'b10, S3=2'b11;
//时序逻辑: 描述状态转换
always @(pose<e CP, nege<e nCR)
begin
if (~nCR) Current_state<=S0; //异步清零
else
Current_state<=Next_state; //在CP上升沿触发器状态翻转
end
//组合逻辑:描述下一状态和输出
always @(Current_state, Sin)
begin
Next_state=2'bxx;
Out=1'b 0;
case(Current_state) //根据当前状态和状态转换条件进彳
S0: begin Out=1'b0; Next_state=(Sin==1)? S0 : S1; end
S1: begin Out=1'b0; Next_state=(Sin==1)? S2 : S1;end
S2: begin Out=1'b0; Next_state=(Sin==1)? S0 : S3; end
S3: if (Sin==1)
begin Out=1'b1; Next_state=S2; end
else
begin Out =1'b0; Next_state=S1; end
endcase
end
endmodule

出现两个报错,

开始以为是编码问题,使用vs code 打开后取出非法字符

编译还是出现错误,教材未对always @(pose<e CP, nege<e nCR)
begin改行代码做出解释,所以应该是何=和第一种编写方式一样才对。

修改后

module Detector2 (Sin,nCR,CP,Out);
input Sin,nCR,CP;//声明输入
output reg Out;//声明输出reg [1:0] Current_state, Next_state;//声明状态触发器变量
parameter S0=2'b00, S1=2'b01, S2=2'b10, S3=2'b11;
//时序逻辑: 描述状态转换
always @(posedge CP, negedge nCR)
begin
if (~nCR) Current_state<=S0;
else
Current_state<=Next_state;//在CP上升沿触发器状态翻转
end
//组合逻辑:描述下一状态和输出
always @(Current_state, Sin)
begin
Next_state=2'bxx;
Out=1'b 0;
case(Current_state)
S0: begin Out=1'b0; Next_state=(Sin==1)? S0 : S1; end
S1: begin Out=1'b0; Next_state=(Sin==1)? S2 : S1; end
S2: begin Out=1'b0; Next_state=(Sin==1)? S0 : S3; end
S3: if (Sin==1)
begin Out=1'b1; Next_state=S2;  end
else
begin Out =1'b0; Next_state=S1; end
endcase
end
endmodule

,果然,

这篇关于FPGA 检测0101序列 修正罗杰主编教材中5.2.3二段式报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694415

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对