目录

背景

我的做法

第一题

第二题

第三题

解决办法

第一题

第二题

第三题

推荐


背景

目前为止,关于状态机独热码的题目,几乎没一个题目能做对,这令我疑惑?是不是题目的答案有问题?在此请大家一试?(已解决,谢谢)


我的做法

第一题

第一题(点击蓝色字体进入题目链接做答)

本人答案:

module top_module (input [6:1] y,input w,output Y2,output Y4);localparam A = 6'b0000_01, B = 6'b0000_10, C = 6'b0001_00, D = 6'b0010_00, E = 6'b0100_00, F = 6'b1000_00;reg [6:1] next_state;assign Y2 = next_state[2];assign Y4 = next_state[4];always@(*) beginnext_state = A;case(y)A: beginif(w) next_state = A;else next_state = B;endB: beginif(w) next_state = D;else next_state = C;endC: beginif(w) next_state = D;else next_state = E;endD: beginif(w) next_state = A;else next_state = F;endE: beginif(w) next_state = D;else next_state = E;endF: beginif(w) next_state = D;else next_state = C;endendcaseendendmodule

第二题

第二题

本人答案:

module top_module (input [5:0] y,input w,output Y1,output Y3
);localparam A = 6'b0000_01, B = 6'b0000_10, C = 6'b0001_00, D = 6'b0010_00, E = 6'b0100_00, F = 6'b1000_00;reg [5:0] next_state;assign Y1 = next_state[1];assign Y3 = next_state[3];always@(*) begincase(y)A: beginif(~w) next_state = A;else next_state = B;endB: beginif(~w) next_state = D;else next_state = C;endC: beginif(~w) next_state = D;else next_state = E;endD: beginif(~w) next_state = A;else next_state = F;endE: beginif(~w) next_state = D;else next_state = E;endF: beginif(~w) next_state = D;else next_state = C;enddefault: beginnext_state = A;endendcaseendendmodule

第三题

第三题

https://blog.csdn.net/Reborn_Lee/article/details/103428895

本人答案:

module top_module(input in,input [9:0] state,output [9:0] next_state,output out1,output out2);localparam S0 = 10'b0000_0000_01, S1 = 10'b0000_0000_10, S2 = 10'b0000_0001_00, S3 = 10'b0000_0010_00,S4 = 10'b0000_0100_00; localparam S5 = 10'b0000_1000_00, S6 = 10'b0001_0000_00, S7 = 10'b0010_0000_00, S8 = 10'b0100_0000_00,S9 = 10'b1000_0000_00;always@(*) begincase(state)S0: beginif(in) next_state = S1;else next_state = S0;endS1: beginif(in) next_state = S2;else next_state = S0;endS2: beginif(in) next_state = S3;else next_state = S0;endS3: beginif(in) next_state = S4;else next_state = S0;endS4: beginif(in) next_state = S5;else next_state = S0;endS5: beginif(in) next_state = S6;else next_state = S8;endS6: beginif(in) next_state = S7;else next_state = S9;endS7: beginif(in) next_state = S7;else next_state = S0;endS8: beginif(in) next_state = S1;else next_state = S0;endS9: beginif(in) next_state = S1;else next_state = S0;enddefault: beginnext_state = S0; endendcaseendassign out1 = (state == S8 | state == S9) ? 1 : 0;assign out2 = (state == S9 | state == S7) ? 1 : 0;endmodule

如有大神知道,还望告知,谢谢。

(崩溃中)



解决办法

更新:

群里的一个同学给我解答了,道理是有的,但是这个网站上有关独热码的题目真的没必要深究了,上面的设计本身就是没有问题的,仅仅为了正确的答案,给出Success的答案:

第一题

第一题:

module top_module (input [6:1] y,input w,output Y2,output Y4);assign Y2 = y[1]&&(~w);//assign Y4 = y[2]&&w || y[3]&&w || y[5]&&w || y[6]&&w;assign Y4  = w&&(y[2] || y[3] || y[5] || y[6]);
endmodule

第二题

第二题:

module top_module (input [5:0] y,input w,output Y1,output Y3
); assign Y1 = y[0]&& w;assign Y3  = ~w && (y[1] || y[2] || y[4] || y[5]);endmodule

第三题

第三题:

module top_module(input in,input [9:0] state,output [9:0] next_state,output out1,output out2);assign next_state[0] = ~in & (state[0] | state[1] | state[2] | state[3] | state[4] | state[7] | state[8] | state[9]);assign next_state[1] = in & (state[0] | state[8] | state[9]);assign next_state[2] = in & state[1];assign next_state[3] = in & state[2];assign next_state[4] = in & state[3];assign next_state[5] = in & state[4];assign next_state[6] = in & state[5];assign next_state[7] = in & (state[6] | state[7]);assign next_state[8] = ~in & state[5];assign next_state[9] = ~in & state[6];assign out1 = state[8] | state[9];assign out2 = state[7] | state[9];endmodule


推荐

思想见:

https://blog.csdn.net/Reborn_Lee/article/details/103338804

https://blog.csdn.net/Reborn_Lee/article/details/103339538

最后感谢群里的小伙伴,进群见:

https://blog.csdn.net/Reborn_Lee/article/details/99715080

HDLBits 系列(37)此系列关于独热码的题目的疑问?相关推荐

  1. verilog独热码检测

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

  2. HDLBits 系列(26)独热码有限状态机实现的两种方式

    目录 序言 原题复现 设计1 设计2 最后一句话 序言 这篇博客的标题起的,好像就是为独热码而讨论的,其实不然,下面给出一个题目,用任何方式的状态编码都可以,但是我就想讨论下用独热码来实现. 一种写法 ...

  3. HDLBits 系列(25)独热码有限状态机实现的简单方式

    目录 原题重现 一点解释 最终实现 原题重现 The following is the state transition table for a Moore state machine with on ...

  4. 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. ...

  5. Verilog笔记——数据检测/独热码检测——Quartus与Modelsim仿真

    MATLAB 与 FPGA无线通信.图像处理.数字信号处理系列 1.题目要求 输入32-bit数据,若是2的N次方(如1=20,2=21),输出1,否则输出0,复位时输出高阻态.(实际上,这是对32位 ...

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

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

  7. FPGA中有限状态机的状态编码采用格雷码还是独热码?

    今天看<从算法设计到硬件逻辑的实现>这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪一种编码呢? 采用独热码为什么节省许多组合电路? 等等 ...

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

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

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

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

最新文章

  1. Javascript中的自执行匿名函数
  2. boost::hana::arg用法的测试程序
  3. 1051 复数乘法 (15 分)
  4. 《C语言深度解剖》中的.c/.h 程序模板及函数注释风格
  5. openEuler Summit 带你解锁开源与操作系统的不解之缘
  6. c语言运行后出现xt073,2017年北京工业大学城市交通学院894C语言与数据结构之C程序设计考研强化模拟题...
  7. 解决方案售前的知识管理解决方案
  8. 爬虫入门(简单网页信息爬取)
  9. 自抗扰控制(ADRC)—— 扩展状态观测器
  10. win10专业版/企业版怎样永久激活并查看激活期限
  11. 企业微信标签太多怎么删除?
  12. 汇编语言中的start有什么用?(start只是一个标号,程序不一定非要从这儿才开始执行)
  13. 傅里叶变换与傅里叶级数理解
  14. Remix部署契约时出现错误:creation of Ballot errored: Error encoding arguments: Error: expected array value (ar
  15. Visual Paradigm导出png,如何去除的水印
  16. 订单表的字段类型 mysql_Mysql数据库下订单表如何设计?
  17. 惠普服务器报no bootable device were detected. Please attach a uefi.......处理
  18. 2019你好想跳槽了?程序员们谨记:哪里都不好混!
  19. pdf如何做到批量格式转换?
  20. 圣诞节蓝牙耳机选哪款作为礼物比较好?耐用的蓝牙耳机推荐

热门文章

  1. Exchange2010各角色对软件环境的前提条件
  2. android查看报错日志,android运行错误日志帮看下 不懂啊
  3. java android 数组_android中数组的定义与使用
  4. android模糊查询listview数据_ListView的简单应用(一)
  5. ==和equals的简单比较
  6. 两位一体数码管引脚图_两位一体共阴数码管,第二位数字显示不出来,按钮第7按钮按下去来回显示,但第一位又不显示了,,,急...
  7. php 单一职责,读懂 SOLID 的「单一职责」原则
  8. java 找不到符号变量_java编程找不到符号
  9. actframework mysql_问题处理记录
  10. mysql ldf文件太大_sqlserver 2008R2 数据库文件过大解决办法