急求一Verilog程序

急求一Verilog程序,第1张

module Verilog(A,B,C,D,Y)

input [3:0] A,B,C,D

output Y

wire [7:0] X

reg Y

assign X={A,3'b0}+{B,2'b0}+{C,1'b0}+D

always @(X)

begin

if ((X>8'h4)&&(X<=8'hf))

Y=1'b1

else

Y=1'b0

end

endmodule

该程序经过仿真,结果正确。

1

module sig2component(clk, rst_n, din, dout)

inputclk

inputrst_n

input [7:0]din

output [7:0] dout

always @ (posedge clk or negedge rst_n)

if (!rst_n)

dout <= 0

else if (din[7]) begin

dout[6:0] <= ~din[6:0] + 7'd1

dout[7] <= din[7]

end

else

dout <= din

endmodule

2

module compare(clk, rst_n, din, flag_out)

input clk, rst_n

input [3:0]din

output flag_out

always @ (posedge clk or negedge rst_n)

if (!rst_n)

flag_out <= 0

else if (din >4'd4)

flag_out <= 1'b1

else

flag_out <= 1'b0

period是ck的周期,在这之前肯定有对period定义如

`define period 20

或者

parameter period=20;

#(period) 是过一个20时间单位执行forever中的语句

#(period/2) 指经过10时间单位 将ck取反,这样就会得到时钟

括号和不加括号没区别,只是价格括号可以清楚看清层次


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11356911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存