怎样用verilog设计积分器

怎样用verilog设计积分器,第1张

Posedge用来作为时钟使用的。相当于触发器的时钟输入端。 要检测信号上升沿的话,可以采用以下方法: always@(posedge clk or negedge rst) if(!rst) begin sign_1b

串并转换很简单,就是移位寄存器,后面最好跟一个锁存器,实现你所要求的功能需要四位移位寄存器和四位锁存器,锁存器的作用就是保持并行数据在移位时不发生变化:

module shift(nreset,clk,en,in,out)

input nreset,clk,en,in

output [3:0] out

reg [1:0] count//移位计数,控制并行数据更新,这里是4bit并行数据

reg [3:0] data

reg [3:0] out

/* 移位计数,用于并行数据输出,也可以外加一个脉冲控制数据边界,这里移位4bit就并行输出一次*/

always@(posedge clk or negedge nreset)

begin

if(~nreset)

count <= 2'b00

else if(en)

count <= count + 2'b01

end

//移位

always@(posedge clk or negedge nreset)

begin

if(~nreset)

data <= 4'b0000

eale if(en)

data <= {data[2:0],in}

end

//并行输出

always@(posedge clk or negedge nreset)

begin

if(~nreset)

out <= 4'b0000

else if(en &&(count==2'b11))

out <= data

end

endmodule

我编译、仿真过了,没有问题,你原有的out<={out,in}应该写成像这样data <= {data[2:0],in}这就是一个移位寄存器!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存