Verilog刷题笔记54

news2024/11/26 8:41:12

题目:
Fsm serialdp
See also: Serial receiver and datapath

We want to add parity checking to the serial receiver. Parity checking adds one extra bit after each data byte. We will use odd parity, where the number of 1s in the 9 bits received must be odd. For example, 101001011 satisfies odd parity (there are 5 1s), but 001001011 does not.
在这里插入图片描述

官方提供的例化程序:

module parity (
    input clk,
    input reset,
    input in,
    output reg odd);

    always @(posedge clk)
        if (reset) odd <= 0;
        else if (in) odd <= ~odd;

endmodule

解题:
module top_module(
    input clk,
    input in,
    input reset,    // Synchronous reset
    output [7:0] out_byte,
    output done
); //
	parameter idle=0,data_receive=1,check=2,stop=3,error=4;
    reg [2:0]state,next_state;
    reg [7:0]data;
    wire odd_temp,start;
    reg [3:0]cnt;
    reg jo;
    
    parity parity_inst(
        .clk(clk),
        .reset(reset|start),
        .in(in),
        .odd(odd_temp)
    );
    
    always@(posedge clk)begin
        if(reset)
            state<=idle;
        else
            state<=next_state;
    end
    always@(*)begin
        start=0;
        case(state)
            idle:begin next_state=in?idle:data_receive;start=1;end
            data_receive:next_state=(cnt==8)?check:data_receive;
            check:next_state=in?stop:error;
            stop:begin next_state=in?idle:data_receive;start=1;end
            error:next_state=in?idle:error;
        endcase
    end
    always@(posedge clk)begin
        if(reset)
            cnt<=0;
        else 
            case(state)
                data_receive:cnt<=cnt+1;
                default:cnt<=0;
            endcase
    
    end
    always@(posedge clk)begin
        if(reset)
            data<=0;
        else 
            case(next_state)
                data_receive:data<={in,data[7:1]};
            endcase
    end
    always@(posedge clk)begin
        if(reset)
            jo<=0;
        else
            jo<=odd_temp;
    end
    assign out_byte=data;
    assign done=jo&(state==stop);
    
            
    // Modify FSM and datapath from Fsm_serialdata

    // New: Add parity checking.

endmodule

结果正确:
在这里插入图片描述

总结:
多了个奇偶校验
为了方便例化程序的重新启用,所以减去了一个start状态,直接将start定义成一个变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2061095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在 FastReport .NET 中构建和安装 Postgres 插件

FastReport .NET 是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。 功能非常丰富&#xff0c;功能广泛。今天我们将介绍如何使用报表设计器的 FastReport 插件连接数据库。 FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体…

LlamaIndex 介绍

LlamaIndex 是什么&#xff1f; 从字面上理解&#xff0c;是 Llama Index&#xff0c;Llama 是大语言模型&#xff0c;Index 是索引&#xff0c;Index for Llama 就是为大语言模型做索引&#xff0c;那么大语言模型为什么需要索引&#xff0c;索引的作用是什么&#xff1f; …

CAS-ViT实战:使用CAS-ViT实现图像分类任务(一)

摘要 在视觉转换器&#xff08;Vision Transformers, ViTs&#xff09;领域&#xff0c;随着技术的不断发展&#xff0c;研究者们不断探索如何在保持高效性能的同时&#xff0c;降低模型的计算复杂度&#xff0c;以满足资源受限场景&#xff08;如移动设备&#xff09;的需求。…

住宅代理助力网页抓取,DaaS实现数据驱动的业务优化

什么是DaaS&#xff1f;有什么作用&#xff1f; DaaS的工作原理是什么&#xff1f;哪些行业需要&#xff1f; 如何应用DaaS&#xff1f; 网页抓取如何助力优化DaaS&#xff1f; 总结 在数字化转型的浪潮中&#xff0c;数据已成为企业决策和业务优化的核心资源。数据即服务&…

特殊采购转包

在转包期间&#xff0c;公司从外部供应商处订购物料。与正常外部采购流程不同&#xff0c;公司将为供应商&#xff08;转包商&#xff09;提供部分或全部用于物料生产的部件。 该流程拥有以下特征&#xff1a; 通过转包订单订购成品&#xff0c;该转包订单还包含有关要为转包商…

培训第三十二天(学习playbook-roles,脚本创建数据库和表,mycat读写分离)

上午 1、roles&#xff08;角色&#xff09;介绍 roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独 的⽬录中,并可以便捷地调⽤它们的⼀种机制。 假设我们要写⼀个playbook来安装管理lamp环境&#xff0c;那么这个 playbook就会写很⻓。所以我们希望把这…

入门STM32—外部中断

外部中断的存在使得微控制器能够及时响应外部事件&#xff0c;避免频繁的轮询操作&#xff0c;从而提高系统的实时性、效率和低功耗性能。 1.什么是外部中断&#xff1f; 外部中断是指微控制器接收到外部引脚的信号变化时触发的中断。STM32F103系列微控制器支持多个外部中断线…

破烂行情空仓,换两融深圳融资融券利率最低是多少?4-5%?

最近行情稀烂&#xff0c;持续缩量&#xff0c;已经空仓很久了&#xff0c;刚好趁这个机会换个融资融券账户&#xff01;现在深圳融资融券利率最低能做到什么水平&#xff1f; 融资融券是什么&#xff1f; 融资融券是股票交易市场上的一种投资方式&#xff0c;也被称为证券信…

python中len是什么

Python len() 方法返回字符串长度。 len()方法语法&#xff1a; len( str ) 返回值&#xff1a; 返回字符串长度。 以下实例展示了len()的使用方法&#xff1a; #!/usr/bin/python str "this is string example....wow!!!"; print "字符串长度: ", len…

Leetcode JAVA刷刷站(69)x的平方根

一、题目概述 二、思路方向 在Java中&#xff0c;计算一个非负整数x的算术平方根&#xff0c;并返回其整数部分&#xff0c;你可以使用二分查找法。这是因为平方根函数是单调递增的&#xff0c;所以我们可以利用二分查找在合理的时间复杂度内找到结果。 三、代码实现 public…

html+css+js网页设计 天猫首页

htmlcssjs网页设计 天猫首页 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xff0c;访问…

实现el-table 两列多选框且不可同时勾选,可单选,可多选

1.页面实现效果&#xff1a; 审核通过可批量处理&#xff0c;可单选&#xff1b;审核不通过&#xff0c;单选&#xff0c;但两者不可同时勾选☑️ 2.代码如下 <template lang"pug"> .financing-order-tab.table-container.btns(style"margin-bottom: 15p…

Tomcat使用及负载均衡(最全源码安装及配置使用教程)

目录 一 Tomcat概述 1.1 Tomcat 简介 1.2 Tomcat 下载 二 Tomcat 单主机配置 2.1 Tomcat 环境配置 2.2 Tomcat 安装与添加系统启动 2.3 Tomcat 启动与停止 三 Tomcat 配置文件及反向代理 3.1 配置文件详解 3.2 反向代理实现Tomcat部署 四 Memcached安装 4.1 简介 …

Ollama 企业私有化部署大模型最佳解决方案

为什么要私有化部署大模型&#xff1f; 很多企业为了控制成本和减少核心数据外泄的风险&#xff0c;会通过私有化部署大模型&#xff0c;来控制成本和保障企业的数据安全。 说到本地化部署&#xff0c;这时就需要说到Ollama框架了。 Ollama 是什么&#xff1f; Ollama 是一个开…

霸王茶姬小程序任务脚本

霸王茶姬小程序任务脚本 小白操作----仅供学习研究参考 功能&#xff1a; 积分签到 解析 该脚本用于“霸王茶姬小程序”的签到和积分查询操作。通过模拟网络请求登录账号&#xff0c;获取个人信息&#xff0c;执行每日签到&#xff0c;并查询积分情况。支持多账号操作&#…

3.js - 使用着色器实现各种图形

有更多案例&#xff0c;私我 main.js import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls import * as dat from dat.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js// ts-ignore import basi…

一篇初学者入门Python匿名函数与Lambda表达式详细教程

首先要了解了如何定义和使用函数的参数,以及如何从一个函数返回值.这篇文章将深入介绍Python中的“匿名函数”和“Lambda表达式”,这两个概念在实际编程中非常有用 如果你对Python感兴趣的话&#xff0c;可以试试我整理的这一份全套的Python学习资料&#xff0c;【点击这里】免…

数据库表转为库表设计文档

开发完之后&#xff0c;就一大堆文档需要写的&#xff0c;其中就有库表设计文档&#xff0c;所以直接写个接口&#xff0c;直接把库表转为库表设计文档就行&#xff0c;省一大堆时间摸鱼了。直接贴代码。 pom文件引入依赖 <!--引入数据库表结构文档生成器Screw依赖--> &…

《驾驭未来:大型语言模型的理论与实践》—— 探索大模型的奥秘

在这个信息爆炸的时代&#xff0c;人工智能尤其是大型语言模型&#xff08;LLM&#xff09;已经成为推动科技进步的关键力量。无论是科学研究、商业应用还是日常生活&#xff0c;大型语言模型都在不断地改变着我们的世界。对于那些渴望深入了解这一前沿技术的人来说&#xff0c…

JAVA实现单词词频统计-辅助英文考试学习

一、基于GUI的可以自行输入的英文单词词频统计软件