大家好!你需要编写一个程序:
数字在 4 位拨动开关上键入,并在 6 个指示器上依次显示。在写使能输入处设置“1”后记录键入的字符。
1. 状态 S0 是初始状态。
2. 状态 S1 - 等待输入。保持时间 4 个周期。输出状态 U。
3. 接下来,自动机进入输入状态 S2。输出状态 In。输入状态的保持时间为 2 个周期。
4、机器切换到输出状态S3,如果没有收到权限则输出“_”,当收到输入权限时,显示输入的数字。输出状态的保持时间为 3 个周期。从输出状态,自动机再次切换到等待输入。串行输出可以使用解复用器进行组织。
如何在 Verilog 中编写这样的程序?
提前致谢。
最后是我自己写的。我会在这里留下一个链接。我希望有人能帮助编写这样的程序。 https://github.com/egnaf/sequent
PS 州名已更改
如果我正确理解您的问题,您可以
case在同步块always中使用一个运算符,该运算符在时钟信号的每个上升沿或下降沿触发clk(clock,...)(always@(posedge clk),always@(negedge clk))。将有四种情况(每种一种)和一种默认条件(
default)。在每种状态下,您都可以有一个计数器 (counter),它随着每一步而递增clk。当计数器达到相应的值时,状态将发生变化(进入下一个状态)。如果需要,您只能使用一个计数寄存器来完成工作。抱歉我的英语不好,我希望答案对您有所帮助,或者至少对将来可能遇到类似问题的其他人有所帮助。