当前位置: 首页 > wzjs >正文

重庆建站塔山双喜易观数据

重庆建站塔山双喜,易观数据,查建筑企业信息的网站,网页布局设计器目录 一、用状态机实现LED流水灯1.状态机思想简介1. 1基本概念1.2.核心要素1.3分类与模型 2.LED流水灯 二、CPLD与FPGA1.技术区别2.应用场景3.设计选择建议 三、HDLbits组合逻辑题目 一、用状态机实现LED流水灯 1.状态机思想简介 1. 1基本概念 ​ 状态机(Finite …

目录

    • 一、用状态机实现LED流水灯
      • 1.状态机思想简介
        • 1. 1基本概念
        • 1.2.核心要素
        • 1.3分类与模型
      • 2.LED流水灯
    • 二、CPLD与FPGA
        • 1.技术区别
        • 2.应用场景
        • 3.设计选择建议
    • 三、HDLbits组合逻辑题目

一、用状态机实现LED流水灯

1.状态机思想简介

1. 1基本概念

​ 状态机(Finite State Machine, FSM)是一种用于描述系统行为及其状态转换的数学模型。它将系统抽象为有限个状态,并通过事件触发实现状态间的迁移,同时可能伴随特定的动作。其核心思想是“基于状态的逻辑控制”,适用于具有明确阶段性和条件依赖性的系统

1.2.核心要素

​ 现态(Current State):系统当前所处的状态。

​ 事件(Event):触发状态迁移的条件(如用户输入、传感器信号等)

​ 动作(Action):状态迁移时执行的操作(如开启设备、发送数据等)

​ 次态(Next State):事件触发后系统将进入的新状态

1.3分类与模型

​ Moore型:输出仅由当前状态决定(如交通信号灯的红绿灯切换)

​ Mealy型:输出由当前状态和输入共同决定(如网络协议中的应答机制)

​ 确定型(DFA):每个状态对同一事件有唯一迁移路径

​ 非确定型(NFA):同一事件可能触发多个迁移路径,需额外逻辑处理

2.LED流水灯

核心代码如下:

module led_flow(input clk,          // 50MHz时钟input rst_n,        // 复位信号(低有效)output reg [7:0] led
);// 状态定义(8个状态)localparam [2:0] S0=0, S1=1, S2=2, S3=3, S4=4, S5=5, S6=6, S7=7;reg [2:0] state;reg [24:0] cnt;wire en = (cnt == 25'd24_999_999); // 分频使能// 分频计数器always @(posedge clk or negedge rst_n) beginif (!rst_n) cnt <= 0;else if (en) cnt <= 0;else cnt <= cnt + 1;end// 状态机主逻辑always @(posedge clk or negedge rst_n) beginif (!rst_n) beginstate <= S0;led <= 8'b00000001; // 初始状态S0点亮LED0endelse if (en) begincase(state)S0: begin led <= 8'b00000010; state <= S1; end  //S0→S1(第2个LED亮)S1: begin led <= 8'b00000100; state <= S2; end  //S1→S2(第3个LED亮)S2: begin led <= 8'b00001000; state <= S3; end  //S2→S3(第4个LED亮)S3: begin led <= 8'b00010000; state <= S4; end  //S3→S4(第5个LED亮)S4: begin led <= 8'b00100000; state <= S5; end  //S4→S5(第6个LED亮)S5: begin led <= 8'b01000000; state <= S6; end  //S5→S6(第7个LED亮)S6: begin led <= 8'b10000000; state <= S7; end  //S6→S7(第8个LED亮)S7: begin led <= 8'b00000001; state <= S0; end  //S7→S0(第1个LED亮,循环)default: state <= S0;                          // 默认回到初始状态endcaseendend
endmodule

仿真文件编写:

`timescale 1ns / 1ps
module led_flow_tb;// 输入信号reg clk;          // 50MHz时钟reg rst_n;        // 复位信号(低有效)// 输出信号wire [7:0] led;   // LED输出// 实例化被测模块led_flow uut (.clk(clk),.rst_n(rst_n),.led(led));// 1. 生成50MHz时钟initial beginclk = 0;forever #10 clk = ~clk; // 周期20ns(50MHz)end// 2. 控制复位信号initial beginrst_n = 0;    // 初始复位有效#100;         // 保持100ns复位rst_n = 1;    // 释放复位#2000000000;  // 仿真运行2秒(覆盖多个状态循环)$finish;      // 结束仿真end// 3. 监视信号变化initial begin$monitor("Time=%tns | State=%d | LED=%b", $time, uut.state, led);end
endmodule

仿真:

因为我流水灯的周期太长了,没有办法显示全,所以调整分频

  wire en = (cnt == 25'd4_999_999); // 分频使能

image-20250404151421478

image-20250404151441645

image-20250404151501721

image-20250404151525754

image-20250404151552046

image-20250404151608280

image-20250404151624518

image-20250404151647958

可以看到仿真结果符合预期

引脚绑定:

image-20250404113908512

实现效果:

led 流水灯状态机思想

二、CPLD与FPGA

1.技术区别
特性CPLDFPGA
架构基于乘积项(Product Term)结构,逻辑块较大基于查找表(LUT)结构,逻辑单元粒度小
资源规模较小(通常<10万门)较大(可达数百万门)
时序特性延时均匀,可预测性强延时依赖布局布线,需时序约束优化**7
编程方式非易失性(EEPROM/Flash),无需外部配置易失性(SRAM),需外部存储器加载配置
功耗静态功耗低,适合低功耗场景动态功耗高,适合高性能计算
重构灵活性配置固定,不支持动态重构支持实时动态重构
2.应用场景
  • CPLD

    • 控制密集型系统:如接口转换(UART转SPI)、简单状态机、工业控制逻辑
    • 低功耗场景:电池供电设备,需长期稳定运行
    • 快速原型验证:中小规模逻辑的快速实现
  • FPGA

    • 数据密集型系统:图像处理、高速通信(如PCIe)、数字信号处理(DSP)

    • 复杂算法加速:深度学习推理、加密解密算法

    • 可重构计算:航天电子设备需在轨更新功能

3.设计选择建议
  • 若需简单逻辑控制且对成本敏感,选CPLD

  • 若需高性能并行处理或动态重构,选FPGA

三、HDLbits组合逻辑题目

HDLBits(点击进入练习) 是一个专注于 Verilog硬件描述语言(HDL)学习和实践 的在线平台,由多伦多大学开发,旨在通过小型电路设计习题帮助用户:夯实Verilog基础、理解数字电路设计思想(例如状态机设计、时序约束优化等关键概念)、衔接实际项目(平台题目与FPGA开发中的常见模块,如FIFO、接口控制器,高度相关)

题目1:简单电路B

image-20250403213936883

module top_module ( input x, input y, output z );assign z = ~(x ^ y);
endmodule

题目2:Two gates

image-20250403212658031

module top_module (input in1,input in2,input in3,output out);assign out=(~(in1^in2))^in3;
endmodule

题目3:7420chip

image-20250403213030426

module top_module ( input p1a, p1b, p1c, p1d,output p1y,input p2a, p2b, p2c, p2d,output p2y );assign p1y=~(p1a&p1b&p1c&p1d);assign p2y=~(p2a&p2b&p2c&p2d);
endmodule

题目4:真值表

image-20250403215220173

module top_module( input x3,input x2,input x1,  // three inputsoutput f   // one output
);wire and1 = (~x3 & x2 & ~x1);wire and2 = (~x3 & x2 & x1);wire and3 = (x3 & ~x2 & x1);wire and4 = (x3 & x2 & x1);assign f = and1 | and2 | and3 | and4;
endmodule

题目5:加法器

image-20250403220105291

 module top_module (input [3:0] x, input [3:0] y, output [4:0] sum);assign sum = x + y;
endmodule

参考链接:

百度词条CPLD与FPGA

CPLD与FPGA的用途及其区别

百度百科状态机

聊一聊状态机

http://www.dtcms.com/wzjs/133667.html

相关文章:

  • 企业管理咨询行业很乱谷歌搜索优化seo
  • 建设网站需要些什么手续一手app推广接单平台
  • 北京网站建设网网站诊断分析
  • 网站 营销重庆森林粤语
  • 做微商网站的公司百度电话客服24小时
  • 无为县住房建设局网站重庆小潘seo
  • 网站建设的图片优化生育政策
  • 清远佛冈住房和城乡建设局网站大数据获客系统
  • 毕业设计用java做网站网推什么意思
  • 2022最新国际新闻10条简短seoul怎么读
  • 昆明做网站百度手机端推广
  • 西安网站建设公司哪有腾讯新闻潍坊疫情
  • 深圳网站设计服务品牌推广的目的和意义
  • 专门做奢侈品的网站有哪些成都网站维护
  • 网站 复制 收录旅游网络营销的渠道有哪些
  • 网站服务器防护b站引流推广网站
  • ie8打不开建设银行网站公司关键词seo
  • jquery网站一份完整的营销策划方案
  • 武汉便宜的做网站公司可口可乐搜索引擎营销案例
  • 网站推广的基本方法对于大部分网站来说都是适用的查网站是否正规
  • 福州企业网站推广定制十堰seo排名公司
  • 网站开发的相关岗位三亚百度推广公司
  • 重庆商城网站建设emlog友情链接代码
  • 做便宜网站免费大数据网站
  • 商务网站建设中存在的问题广州排前三的seo公司
  • 上海高端网站建设服务公司百度指数可以查询到哪些内容
  • 外贸 网站 seo怎么宣传网站
  • php做的大型网站有哪些营销网站系统
  • 做纯净系统的网站深圳网络营销怎么推广
  • 限制WordPress站点怎么样在百度上免费推广