MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列

1、题目要求
输入32-bit数据,若是2的N次方(如1=20,2=21),输出1,否则输出0,复位时输出高阻态。(实际上,这是对32位 独热码 的检测)

Verilog中状态机编码方式的选择——FSM有限状态机——二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

2、检测思路
当且仅当输入的32bit数据有1bit为1,而其他位均为0时,输入的data是2的幂次方,所以将输入的32位数据的每一位相加,若结果为1则是2的幂次方,设计输出result为1;若结果为1则不是2的幂次方,设计输出result为0;当复位rstn为0时,输入result设计为高阻态。

3、检测代码

module detect(input clk,input rstn,input [31:0] data,output reg result
);reg result_reg;
reg [5:0] temp;always @(posedge clk) beginif(~rstn)result_reg <= 1'bX;else begintemp = data[31]+data[30]+data[29]+data[28]+data[27]+data[26]+data[25]+data[24]+data[23]+data[22]+data[21]+data[20]+data[19]+data[18]+data[17]+data[16]+data[15]+data[14]+data[13]+data[12]+data[11]+data[10]+data[9]+data[8]+data[7]+data[6]+data[5]+data[4]+data[3] +data[2]+data[1]+data[0];if(temp == 6'b000001)result_reg <= 1'b1;elseresult_reg <= 1'b0;end
endalways @(posedge clk) beginif(~rstn)result <= 1'bX;else beginresult <= result_reg;end
endendmodule

4、Test Bench仿真代码

`timescale 1ns / 1nsmodule detect_tb();reg clk;
reg rstn;
reg [31:0] data;wire result;detect U0(.clk(clk),.rstn(rstn),.data(data),.result(result)
);parameter clk_period = 10; //设置时钟信号周期(频率)
parameter clk_half_period=5;//时钟周期的一半,方便产生时钟反转
parameter num = 10000;initial
begin clk = 1;rstn = 0;data = 0;#clk_period;#clk_period;rstn = 1;data = 32'b0;repeat(num)begindata = data + 32'b1;#clk_period;end$stop;
end always #clk_half_period clk = ~clk;endmodule

5、Modelsim仿真结果
如下图,输入数据data,在下一个时钟的上升沿输出判断结果result,满足题目要求。


Verilog笔记——数据检测/独热码检测——Quartus与Modelsim仿真相关推荐

  1. verilog独热码检测

    独热码介绍 独热码是一种二进制编码方式,它的特点是,用来编码这个数的N位bit中,有且只有一位是1,其余位全部为0.因为只有1位是1,所以叫做one-hot (对应的,还有一种编码方式是只有1位是0, ...

  2. FPGA学习笔记---二进制码、独热码、格雷码分析对比

    在Verilog学习中常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码,对于新手来说,搞不清楚编码为什么要分这么多格式?统一用一种格式不好吗? ...

  3. HDLBits(十 三)学习笔记——Building Lager Circuits (1000计数器 —— FSM:One-hot logic equations独热码)

    文章目录 1.Counter with period 1000 2.4-bit shift register and down counter(移位寄存器) 3.fsmseq 序列1101识别器 4. ...

  4. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

    一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...

  5. Verilog常见编码方式:二进制码、格雷码、独热码

    Verilog常见编码方式有:二进制码.格雷码.独热码:三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择: 目录 一.结论: 二.详细了解 二进制码 格雷码 独热码 比较 三.参考 ...

  6. 【Verilog基础】为什么状态机中多使用独热码,而不是二进制码或者格雷码?

    为什么例子中我们使用的是独热码而非二进制码或格雷码呢? 那就要从每种编码的特性上说起了,首先独热码因为每个状态只有 1bit 是不同的,例如在执行到(state== TWO)这条语句时,综合器会识别出 ...

  7. verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)

    最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...

  8. pandas学习笔记:某一列字符类型转换为离散的数值标签;将某一列数值类型转换成独热码

    文章目录 将字符串变成离散的数值 将离散的数值变量变成独热码 import pandas as pd 将字符串变成离散的数值 整个"性别"列只有男和女 df = pd.DataFr ...

  9. Verilog专题(二十)one-hot FSM(独热码有限状态机)

    HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page 题目 The following is the state transition table for ...

最新文章

  1. redis python zset
  2. 2017计算机基本配置检测表,2017整理如何查看电脑的硬件配置信息?查看电脑硬件配.ppt...
  3. java做文件显示器_JavaWeb显示器
  4. Install SQL Server 2008 Setup failure
  5. pandas—pd.merge通过键来联接数据集
  6. JavaEE 保存文件获取绝对路径getResource()和servletContext.getRealPath(/)
  7. [转载]关于CIPS不得不知道的14个要点
  8. 微信公众号中视频下载的2种方法
  9. 12306 终于随随便便撑起洪峰流量了,全面拥抱Redis 6.x!
  10. 墨云科技获蓝驰创投数千万元投资,用人工智能升级网络安全服务
  11. 贷款违约预测带有真实银行数据的端到端ml项目1
  12. Python爬虫 | 爬虫基础入门看这一篇就够了
  13. Atcoder Grand Contest 012 B - Splatter Painting解题报告
  14. python 批量修改文件名_Python 批量修改文件名
  15. Rdlc报表纵向与横向打印问题
  16. 第十周实验指导--任务3--先建立一个Point(点)类,再派生出一个Circle(圆)类,再派生出一个Cylinder(圆柱体)类...
  17. 算法:基于比较的排序算法
  18. wps如何自己制作流程图_如何制作流程图,wps自动生成流程图方法
  19. git命令之branch
  20. php5启动子,看懂PHP进程管理器php-fpm

热门文章

  1. 合理利用正则表达式搞定算法题
  2. TSC打印机防重码在线检测系统
  3. 7-7 顺序 - wifi密码 (100 分)
  4. iOS 5.0/5.0.1 降回 4.3.3 完美图文教程
  5. 一起学ORBSLAM2(11)ORBSLAM的localmapping
  6. 12使用FP-growth算法来高效发现频繁项集
  7. 【Vue】条纹进度条
  8. C++中的静态局部变量
  9. 普歌-码灵团队——简述io
  10. js中的 == ===