HDLBits_More Circuits

这两篇文章介绍了如何使用Rule90和Rule110规则设计电路,分别处理数据的异或状态转换。在Rule90中,状态由相邻位异或决定;而在Rule110中,中心状态未知,需要通过给定的逻辑关系自动生成。电路模块包含时钟同步加载和状态更新部分。
摘要由CSDN通过智能技术生成

Rule90

题目要求:一串数据每一位的下一个状态是其左右两位的异或,数据左端点左侧与右端点右侧的状态假设为0,load信号是同步加载数据信号。

代码如下:

module top_module(
    input clk,
    input load,
    input [511:0] data,
    output [511:0] q ); 
    
    wire [513:0] q1 ;
    assign q1 ={1'b0 ,q ,1'b0};
    always @(posedge clk) begin
        if(load) begin
            q <= data ;
        end
        else begin
            q <= q1[513:2] ^ q1[511:0] ;
        end
    end

endmodule

 Rule110

题目要求:同上题,只是这里没有告知Center's next state与Left、Center和Right之间的关系,需要自行推导。

代码如下:

module top_module(
    input clk,
    input load,
    input [511:0] data,
    output [511:0] q
); 
   // wire [513:0] q1 ;
    //assign q1 ={1'b0 ,q ,1'b0};
    always @(posedge clk) begin
        if(load) begin
            q <= data ;
        end
        else begin
            q <= (((q[511:0] ^ {q[510:0], 1'b0}) & q[511:1]) | ((q[511:0] | {q[510:0], 1'b0}) & (~q[511:1]))); ;
        end
    end

endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值