题解1 | #根据状态转移表实现时序电路#

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

https://www.nowcoder.com/practice/455c911bee0741bf8544a75d958425f7

不知道这么写跟写两个always块,然后把组合逻辑塞进去写时序电路的区别在哪里><

`timescale 1ns/1ns

module seq_circuit(
      input                A   ,
      input                clk ,
      input                rst_n,
 
      output   wire        Y   
);

wire q1;
wire q0;
wire d1;
wire d0;

assign d1 = A ^ q1 ^ q0;
assign d0 = ~q0;
assign Y  = q1 & q0;

d_ff c1(d1,clk,rst_n,q1);
d_ff c2(d0,clk,rst_n,q0);


endmodule

module d_ff(
    input d,
    input clk,
    input rst_n,
    output reg q
);

always @(posedge clk or negedge rst_n)
begin
if (!rst_n)
q <= 0;
else
q <= d;
end

endmodule

`timescale 1ns/1ns

module seq_circuit(
      input                A   ,
      input                clk ,
      input                rst_n,
 
      output   wire        Y   
);

reg q1;
reg q0;


always @(posedge clk or negedge rst_n)
begin
if (!rst_n)
q1 <= 0;
else
q1 <= A ^ q1 ^ q0;;
end

always @(posedge clk or negedge rst_n)
begin
if (!rst_n)
q0 <= 0;
else
q0 <= ~q0;
end

assign Y  = q1 & q0;

endmodule
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务