VerilogA——计数器
Posted 夏风喃喃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VerilogA——计数器相关的知识,希望对你有一定的参考价值。
带有低电平有效复位的 8-bit 循环计数器VerilogA代码
// VerilogA for COUNTER_8B, veriloga
`include "constants.vams"
`include "disciplines.vams"
module COUNTER_8B (B7, B6, B5, B4, B3, B2, B1, B0, CLK, RSTN);
electrical B7, B6, B5, B4, B3, B2, B1, B0, CLK, RSTN;
parameter real trise = 1p;
parameter real tfall = 1p;
parameter real tdely = 0;
parameter real vlogic_high = 1;
parameter real vlogic_low = 0;
parameter real vtrans_clk = 0.5;
`define num_bits 8
real i;
real t;
real halfscal;
real fun[0:`num_bits-1];
integer m;
analog begin
@ (initial_step) begin
i=0;
halfscal = 128;
end
@ (cross(V(CLK) - vtrans_clk, +1) or cross(V(RSTN) - vtrans_clk, -1)) begin
if(V(RSTN) < vtrans_clk) begin
i = 0;
end
else if (i == 255) begin
i = 0;
end
else
begin
i=i+1;
end
t = i;
for (m=(`num_bits-1); m >=0; m=m-1) begin
fun[m] = 0;
if (t > halfscal-1) begin
fun[m]=vlogic_high;
t = t - halfscal;
end
else begin
fun[m]=vlogic_low;
end
t = t * 2;
end
end
V(B7) <+ transition( fun[7], tdely, trise, tfall );
V(B6) <+ transition( fun[6], tdely, trise, tfall );
V(B5) <+ transition( fun[5], tdely, trise, tfall );
V(B4) <+ transition( fun[4], tdely, trise, tfall );
V(B3) <+ transition( fun[3], tdely, trise, tfall );
V(B2) <+ transition( fun[2], tdely, trise, tfall );
V(B1) <+ transition( fun[1], tdely, trise, tfall );
V(B0) <+ transition( fun[0], tdely, trise, tfall );
`undef num_bits
end
endmodule
以上是关于VerilogA——计数器的主要内容,如果未能解决你的问题,请参考以下文章