More Circuits
Rule90
法一:
module top_module(input clk,input load,input [511:0] data,output [511:0] q ); always@(posedge clk)beginif(load)beginq<=data;endelse begin//q<={1'b0^q[510],q[511:2]^q[509:0] ,q[1]^1'b0};//两头分别自己算,中间同下;q<={1'b0,q[511:1]} ^ {q[510:0],1'b0}; //整体的左边^整体的右边;endendendmodule
法二:
module top_module(input clk,input load,input [511:0] data,output [511:0] q ); always@(posedge clk)beginif(load)beginq<=data;endelse beginq[0]<=q[1]^1'b0;q[511]<=1'b0^q[510];for(int i=1;i<511;i=i+1)beginq[i]<=q[i+1]^q[i-1];endendendendmodule
Rule110
module top_module(input clk,input load,input [511:0] data,output [511:0] q
); always@(posedge clk)beginif(load)beginq<=data;endelse beginq[0]<=~q[1]&1'b0 | q[0]^1'b0;q[511]<=~1'b0&q[510] | q[511]^q[510];for(int i=1;i<511;i=i+1)beginq[i]<=~q[i+1]&q[i-1] | q[i]^q[i-1]; //令q[i+1]=a,q[i]=b,q[i-1]=c,根据真值表化简得到q[i]=~a&c | b^c;endendend
endmodule
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
