VL22 根据状态转移图达成时序电路

news/2026/1/22 21:39:08/文章来源:https://www.cnblogs.com/gccbuaa/p/19519085

VL22 根据状态转移图实现时序电路

在这里插入图片描述
思路一:

`timescale 1ns/1ns
module seq_circuit(
input                C   ,
input                clk ,
input                rst_n,
output   wire        Y
);
reg [1:0] state , new_state;
parameter s0 = 2'b00;
parameter s1 = 2'b01;
parameter s2 = 2'b10;
parameter s3 = 2'b11;
always @( *) begin
case(state)
s0 : new_state = C ? s1 : s0;
s1 : new_state = C ? s1 : s3;
s2 : new_state = C ? s2 : s0;
s3 : new_state = C ? s2 : s3;
default : new_state = state;
endcase
end
always @( posedge clk , negedge rst_n) begin
if(!rst_n)
state <= s0;
else
state <= new_state;
end
assign Y = ((state == s3 | (state == s2 & C== 1))&(rst_n == 1'b1)) ? 1 : 0;
endmodule

注意的是:
1.new_state 的计算是组合逻辑,要用 = 。
2.在s2状态时候,Y和C有关系。
3.清晰的两段式结构,一个always块计算new_state,另一个always块完成state的变化。

思路二:
在这里插入图片描述
找出等于1的各项式子,加起来,写出来,可以求得:

D1 = Q1&Q0 | ~Q1&Q0&(~C) | Q1 & ~Q0 &C ;
D0 = ~Q1 & ~Q0 & C |~Q1&Q0 |Q1&Q0& ~C;
Y = Q1&Q0 | Q1&~Q0&C;

代码如下:

`timescale 1ns/1ns
module seq_circuit(
input                C   ,
input                clk ,
input                rst_n,
output   wire        Y
);
reg Q1,Q0;
wire D1,D0;
always @ (posedge clk , negedge rst_n) begin
if(!rst_n) begin Q1<= 0;Q0<= 0 ;end
else begin
Q1 <= D1;
Q0 <= D0;
end
end
assign D1 = Q1&Q0 | ~Q1&Q0&(~C) | Q1 & ~Q0 &C ;
assign D0 = ~Q1 & ~Q0 & C |~Q1&Q0 |Q1&Q0& ~C;
assign Y = Q1&Q0 | Q1&~Q0&C;
endmodule

思路二的另一种写法:

`timescale 1ns/1ns
module seq_circuit(
input                C   ,
input                clk ,
input                rst_n,
output   wire        Y
);
reg Q1,Q0;
always @ (posedge clk , negedge rst_n) begin
if(!rst_n) begin Q1<= 0;Q0<= 0 ;end
else begin
Q1 <= Q1&Q0 | ~Q1&Q0&(~C) | Q1 & ~Q0 &C ;
Q0 <=  ~Q1 & ~Q0 & C |~Q1&Q0 |Q1&Q0& ~C;
end
end
assign Y = Q1&Q0 | Q1&~Q0&C;
endmodule

去掉D1,D0更简洁。

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

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

相关文章

151. 反转字符串中的单词-day08

题目:151. 反转字符串中的单词 题目链接:https://leetcode.cn/problems/reverse-words-in-a-string/description/ 思路:1. 去除字符串的首尾空格,中间保留一个空格 2. 整个字符串全部反转 3. 根据空格,反转字符串…

学习进度 6

今天重点搞懂了昨天没明白的 Padding 和 Stride,Padding 就是在图像边缘补像素,防止卷积后特征图变小、边缘特征丢失,Stride 就是卷积核滑动的步长,步长设大一点特征图会更小,计算更快,试了下把步长从 1 改成 2,…

基于深度学习的苹果检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)

本文介绍了一套基于YOLO系列算法的苹果检测系统,该系统支持图片、视频和实时摄像头检测,具备多模型切换、结果可视化与统计等功能。系统采用Python3.10开发,前端使用PyQt5,数据库为SQLite,支持YOLOv5/v8/v11/v12等…

人群仿真软件:Pathfinder_(9).用户界面与工具栏详解

用户界面与工具栏详解 1. 用户界面概述 用户界面&#xff08;User Interface, UI&#xff09;是人群仿真软件Pathfinder的核心部分之一。它不仅提供了用户与软件交互的窗口&#xff0c;还决定了用户操作的便捷性和直观性。Pathfinder的用户界面主要由以下几个部分组成&#xff…

腾讯云的EdgeOne部署

blog 前端网站&#xff08;https://gzyblog.guoziyang.com&#xff09;已链接到 public 仓库 该项目使用 Github App 管理项目内容&#xff0c;请保管好后续创建的 Private key&#xff0c;不要上传到公开网上。 1. 克隆项目 开源项目地址&#xff1a;https://github.com/YYs…

什么是二维批量归一化操作,如何使用BatchNorm2d层

什么是二维批量归一化操作,如何使用BatchNorm2d层在模型训练前,一般会对输入数据进行归一化处理,将数据中不同尺度的特征,转换为相同的尺度。从而提升模型的泛化能力,加速模型训练,并防止梯度爆炸等问题。 对于神…

【个人随笔】我的第一篇博客

博客名:gild注册时间:2019 年 7 月 12 日今天:2026 年 1 月 22 日距离第一次登录,已过去 2385 天。一、一个沉寂的名字 “gild” 这个名字,取自英文动词 to gild —— “镀金”,意为给某物表面覆上一层金,使其看…

人群仿真软件:Pathfinder_(5).人群行为设置

人群行为设置 在使用Pathfinder进行人群仿真时&#xff0c;人群行为的设置是关键的一环。人群行为设置决定了仿真过程中个体的行为模式、决策过程以及相互之间的互动。本节将详细介绍如何在Pathfinder中设置人群行为&#xff0c;包括基本行为参数、行为策略、行为触发条件以及…

人群仿真软件:Pathfinder_(6).出口与路径定义

出口与路径定义 在人群仿真软件中&#xff0c;定义出口和路径是非常关键的步骤。这些定义不仅决定了人员的疏散方向&#xff0c;还直接影响了仿真结果的准确性和可靠性。本节将详细介绍如何在Pathfinder中定义出口和路径&#xff0c;包括路径网络的构建、出口属性的设置以及如何…

人群仿真软件:Pathfinder_(4).环境建模与场景创建

环境建模与场景创建 在人群仿真软件中&#xff0c;环境建模与场景创建是至关重要的步骤。这一部分将详细介绍如何在Pathfinder中创建和配置仿真环境&#xff0c;包括几何建模、场景设置、材料属性以及动态障碍物的处理。通过这些内容&#xff0c;您将能够掌握如何创建复杂的仿真…

SaaS、PaaS、IaaS?

什么&#xff0c;是 SaaS、PaaS、IaaS &#xff1f;

全网最全MBA必备AI论文工具TOP9:开题报告文献综述全解析

全网最全MBA必备AI论文工具TOP9&#xff1a;开题报告文献综述全解析 2026年MBA论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文工具在学术研究中的应用日益广泛。对于MBA学生而言&#xff0c;撰写开题报告、文献综述…

测试失败堆成山?用机器学习快速定位根本原因,研发效率翻倍!

做研发/QA的你&#xff0c;是不是经常被CI流水线里的红色测试警告搞得头大&#xff1f;赶着重构 deadline&#xff0c;却要花大半天逐个排查&#xff1a;这失败是真的代码bug&#xff1f;还是测试用例本身不稳定&#xff1f;抑或是环境波动导致的误报&#xff1f;随着应用越来越…

北京InfoComm China二十周年:二十年成就亚洲极具影响力的专业视听行业盛会

&#xff08;北京&#xff0c;2026年1月22日&#xff09;二十年来&#xff0c;北京InfoComm China始终以专业、权威的平台定位&#xff0c;推动中国专业视听(Pro-AV)行业实现全球化发展与拓展国际版图。通过长期汇聚全球专业视听领域的制造商、解决方案提供商、IT系统集成商及各…

靠口碑翻身的作品!董子健导演首作,观众看完直呼走不出来!

《我的朋友安德烈》上映后&#xff0c;好评一波接一波&#xff0c;口碑持续发酵。导演董子健第一次拍电影&#xff0c;选择扎扎实实地回归到情感本身&#xff0c;用一个横跨多年的友情故事&#xff0c;精准地戳中了大家心里关于陪伴、理解和成长的那根弦&#xff0c;好多观众称…

【2026年-03期】Collaborative evolution between AI and humans

这是一幅关于 AI 与人类协作进化的逻辑全景图&#xff0c;它梳理了从 AI 技术迭代到人类能力重塑&#xff0c;再到二者形成新协作模式的完整逻辑链条。AI 演进与人类能力的底层逻辑AI 演进的双轮驱动AI 演化速度&#xff1a;从 GPT-3 → GPT-4 → GPT-5&#xff0c;模型能力不断…

PCA与K-means聚类结合的语音识别算法 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

《P1939 矩阵加速(数列)》

题目描述已知一个数列 a&#xff0c;它满足&#xff1a;ax​{1ax−1​ax−3​​x∈{1,2,3}x≥4​求 a 数列的第 n 项对 1097 取余的值。输入格式第一行一个整数 T&#xff0c;表示询问个数。以下 T 行&#xff0c;每行一个正整数 n。输出格式每行输出一个非负整数表示答案。输入…

cdn哪家好

在数字化时代,网站、APP等在线业务的稳定性与安全性直接决定用户体验与企业收益。而SCDN(Secure Content Delivery Network,安全内容分发网络)作为融合“内容加速”与“安全防护”的关键基础设施,其专业性直接影响…

使用 Python 脚本自动化管理 Docker 容器:启动、修改密码、删除及系统资源监控

在日常开发和运维中&#xff0c;我们经常需要对 Docker 容器进行批量操作&#xff0c;比如启动容器、重置 root 密码、删除无用容器等。手动执行命令效率低且容易出错。本文将通过 Python 脚本实现以下功能&#xff1a; 启动指定名称的容器修改容器内 root 用户密码安全删除容…