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

相关文章

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

Python报错ModuleNotFoundError的10种解决方案

《Python报错ModuleNotFoundError的10种解决方案》在Python开发中,ModuleNotFoundError是最常见的运行时错误之一,通常由模块路径配置错误、依赖缺失或命名冲... 目录一、常见错误场景与原因分析二、10种解决方案与代码示例1. 检查并安装缺失模块2. 动态添加模块

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl