用verilog语言描述一个简单的二进制计数器,谢谢!!

作者&投稿:守魏 (若有异议请与网页底部的电邮联系)
verilog语言描述简单的一位五进制计数器,谢谢谢谢~

你好,下面是verilog的五进制计数器的logic。
module counter(clk,cout,num,Rst_n);
input clk;//时钟
input Rst_n;//复位键
output reg cout=0;//进位
output reg [3:0] num=0;//输出要显示数字,BCD码
always@(posedge clk or negedge Rst_n)
if(!Rst_n) num=0;
else if(num==4)begin //0到4
num<=0;cout<=1;
end
else begin
num<=num+1;cout<=0;
end
endmodule

302进制计数器,就是从0开始计数,计数到301后,再从0开始重新计数,就像十进制计数一样,从0开始计数,计数到9后回到0重新开始计数。 //---302位计数器,从0开始计数,最大值是100101101(=301);(9位)-----// module counter302(clk,rst,Q); input clk; input rst; output reg [8:0] Q; always @(posedge clk or negedge rst) begin if(!rst) begin Q <= 9'b000000000; //复位后输出Q赋值0; end else begin //时钟上升沿开始计数 if(Q==9'b100101101) begin Q <= 9'b000000000; //计数到最大值(301)后,回到0重新计数; end else begin Q <= Q+1; end end end endmodule //------------------------------------------------------------------------------//

module free_run_bin_counter
#(parameter N=8)
(
  // global clock and asyn reset
  input clk,
  input rst_n,
  // counter interface
  output max_tick,
  output [N-1:0] q
);
 
// signal declaration
reg [N-1:0] r_reg;
wire [N-1:0] r_next;
 
// body
// register
always@(posedge clk, negedge rst_n)
  if(!rst_n)
    r_reg <= 0; // {N{1'b0}}
  else
    r_reg <= r_next;
     
// next-state logic
assign r_next = r_reg + 1'b1;
//output logic
assign q = r_reg;
assign max_tick = (r_reg == 2**N-1) ? 1'b1 : 1'b0;
                // r_reg == {N{1'b1}}
                 
endmodule

http://www.cnblogs.com/yuphone



自己边编程,边测试一下

用Verilog HDL语言设计一个具有复位和计数功能的4位计数器.
答:我写的一个十进制计数,可以复位,置数,使能,双向计数,请参考 `timescale 1ns/100ps module count(clk,nrst,ncs,s,load,load_data,q );input clk;input nrst;input ncs;input s;input load;input [3:0] load_data;output [3:0] q;reg [3:0] q;always @(posedg...

在verilog HDL 语言里面 case 语句分支 表示一个范围,如3~80 该怎么...
答:可以在一个always @语句中定义一个状态变量state,比如在3——80时是state=1,当然也可以用逻辑语句。然后再在主状态机里进行对于state的判断。

verilog是什么
答:Verilog语言具有丰富的结构和语法,能够支持多种级别的抽象描述,从算法级、门级到寄存器传输级(RTL)等。在RTL级别,设计者可以用类似于编写软件的方式来描述硬件行为,例如使用类似于if-else的条件语句和for循环等结构。这使得硬件设计更加直观和易于管理。举一个简单的例子,如果我们想要描述一个D触发器...

《Verilog》·第2章·硬件描述语言基础
答:让我们以逻辑与门为例,它既可以通过逻辑门实例化展现,也可通过连续赋值语句来描述。所有端口默认1位宽,数据类型为wire或reg,根据电路需求灵活选择。图2.2详细展示了这个模块的端口配置。在基本语法方面,Verilog HDL语法与C语言相近,但小写区分标识符,关键字均为全小写。标识符如buaa_index, shiftreg...

用verilog DHL语言设计一个5阶的M序列信号发生器,生成多项式位:f(x...
答:assign outdata = M_buf[0];always@(posedge clk)begin if(!rst)begin M_buf <= 5'b01011;end else begin //5级M序列编码 M_buf[4] <= M_buf[0]^M_buf[3];M_buf[0] <= M_buf[1];M_buf[1] <= M_buf[2];M_buf[2] <= M_buf[3];M_buf[3] <= M_buf[4];...

用Verilog HDL设计一个4位BCD码计数器
答:o_over_flow <= 1'b0;o_under_flow <= 1'b0;end else if (i_set)begin o_bcd_data <= i_set_data;o_over_flow <= 1'b0;o_under_flow <= 1'b0;end else if (i_add && !i_del)begin o_under_flow <= 1'b0;if (o_bcd_data == C_OVER_B)begin o...

用Verilog HDL语言设计一个模值可变的计数器?怎样做?
答:其实很简单的,这个和可以设置初始值的计数器实现方法是一样的。如果你能看懂下面这段代码,相信你肯定能写出一个模值可变的计数器了。module counter7(clk,rst,load,data,cout);input clk,rst,load;input [2:0] data;output reg [2:0] cout;always@(posedge clk)begin if(!rst)cout<=3’d0...

请用Verilog HDL语言编写实现四位数据总线宽度的四选一数据选择器,并使...
答:你好,下面是对应的verilog module test(out, sel,en)input [1:0] sel;output [4:0] out;input en;reg [3:0] output;wire [1:0] sel;always begin case (sel)2'b00: output = in0;2'b01: output = in1;2'b10: output = in2;2'b11: output = in3;endcase end assign out[...

硬件描述语言verilog的特点有哪些
答:1、能够在不同的抽象层次上,如系统级、行为级、RTL(Register Transfer Level)级、 门级和开关级,对设计系统进行精确而简练的描述。2、能够在每个抽象层次的描述上对设计进行仿真验证,及时发现可能存在的设计错误, 缩短设计周期,并保证整个设计过程的正确性。

用verilog 写一个 将十六进制数转换十进制数的程序 和将 十进制数转换...
答:十六进制-->十进制:其实就是十六进制-->BCD,可参考http://wenku.baidu.com/view/313907020740be1e650e9a3d.html 我写的代码:module Bin2BCD16(A, B);input [15:0] A;output [19:0] B;wire [3:0] c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13;wire [3:0...