Verilog :Rule90

本文介绍了Rule90算法在电路设计中的应用,通过Verilog代码实现了一维序列的生成,规则基于相邻元素的异或操作。代码展示了如何在时钟边沿触发下,根据给定数据或自动生成状态更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门:

规则90 - HDL数据 (01xz.net)icon-default.png?t=N7T8https://hdlbits.01xz.net/wiki/Rule90题目:

Rule90 需要按照表中规则来生成一维序列。

规则很简单。一维序列中元素有 1开/0 关两种状态

在每个时钟边沿到来时刻,元素的下一个状态为元素相邻两个元素的异或。

下表更详细地给出规则,元素下一个状态可以视作输出,输入为元素本身(中)与左右的状态。

负载输入指示系统的状态应加载数据[511:0]。假设边界 (q[-1] 和 q[512]) 均为零 (off)。

以下为本人提供的代码,有更好的代码欢迎评论区提供:

module top_module(
    input clk,
    input load,
    input [511:0] data,
    output [511:0] q ); 
    always@(posedge clk)
    begin
        if(load)
            q <= data;
        else 
            q <= (q<<1)^(q>>1); 
    end
endmodule

[Place 30-716] Sub-optimal placement for a global clock-capable IO pin-BUFGCE-MMCM pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule. < set_property CLOCK_DEDICATED_ROUTE ANY_CMT_COLUMN [get_nets bd_lt47dr_pl_ddr_i/util_ds_buf_0/U0/BUFG_O[0]] > bd_lt47dr_pl_ddr_i/util_ds_buf_0/U0/USE_BUFG.GEN_BUFG[0].BUFG_U (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_HDIO_X0Y5 bd_lt47dr_pl_ddr_i/clk_wiz_0/inst/mmcme4_adv_inst (MMCME4_ADV.CLKIN1) is provisionally placed by clockplacer on MMCM_X0Y2 The above error could possibly be related to other connected instances. Following is a list of all the related clock rules and their respective instances. Clock Rule: rule_gclkio_bufg Status: PASS Rule Description: An IOB driving a BUFG must use a GCIO in the same clock region as the BUFG CLK_50M_IBUF_inst/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X1Y218 bd_lt47dr_pl_ddr_i/util_ds_buf_0/U0/USE_BUFG.GEN_BUFG[0].BUFG_U (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_HDIO_X0Y5 Clock Rule: rule_bufgce_bufg_conflict Status: PASS Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be used at the same time bd_lt47dr_pl_ddr_i/util_ds_buf_0/U0/USE_BUFG.GEN_BUFG[0].BUFG_U (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_HDIO_X0Y5 Clock Rule: rule_mmcm_bufg Status: PASS Rule Description: A MMCM driving a BUFG must be placed in the same clock region of the device as the BUFG bd_lt47dr_pl_ddr_i/clk_wiz_0/inst/mmcme4_adv_inst (MMCME4_ADV.CLKFBOUT) is provisionally placed by clockplacer on MMCM_X0Y2 bd_lt47dr_pl_ddr_i/clk_wiz_0/inst/clkf_buf (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y57 Clock Rule: rule_buf
最新发布
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值