精华内容
下载资源
问答
  • 模10计数器

    千次阅读 2019-10-31 00:31:57
    //模10计数器 module ex_cnt( input wire sclk,//sclk一般指系统时钟 input wire rst_n, output reg [3:0] cnt ); always @(posedge sclk or negedge rst_n) begin if(rst_n == 1'b0) cnt <= 4'b...
    //10计数器
    module ex_cnt(
    		input	wire 	sclk,//sclk一般指系统时钟
    		input	wire	rst_n,
    		output	reg	[3:0]	cnt	
    );
    always @(posedge sclk or negedge rst_n)
    	begin
    		if
    展开全文
  • 模10计数器是啥玩意?

    千次阅读 2020-07-05 20:17:03
    5,模10计数器的“”到底是什么啊。。。是状态闭合只有5种10种状态? 5:逢“5”进1计数。 模10逢“10"进1计数。

    在这里插入图片描述
    模5,模10计数器的“模”到底是什么啊。。。是状态闭合只有5种10种状态?

    模5:为逢“5”进1计数。
    模10:为逢“10"进1计数。

    展开全文
  • 模10的BCD码计数器

    千次阅读 2018-10-10 21:22:49
    module cy4(CLK,Rst_n,Cin,Cout,q); input CLK; input Rst_n; input Cin; output reg Cout; output q; wire [3:0]q; reg[3:0] cnt; always @(posedge CLK or negedge Rst_n) if(!...else if(C...
    module cy4(CLK,Rst_n,Cin,Cout,q);
    input CLK;
    input Rst_n;
    input Cin;
    output reg Cout;
    output q;
    wire [3:0]q;
    reg[3:0] cnt;
    
    
    always @(posedge CLK or negedge Rst_n)
    if(!Rst_n)
    cnt <= 4'd0;
    else if(Cin == 1'b1)begin
    if(cnt == 4'd9)
      cnt <= 4'd0;
    else cnt <= cnt + 1'b1;
    end
    else
        cnt <= cnt;
    	
    always @(posedge CLK or negedge Rst_n)
    if(!Rst_n) Cout <= 1'b0;
    else if(Cin == 1'b1 && cnt == 4'd9)
             Cout <= 1'b1;
    else Cout <= 1'b0;
    
    assign q = cnt;
    endmodule
    
    

    仿真代码

    `timescale 1 ns/ 1 ps
    `define clock_period 20
    module cy4_vlg_tst();
    
    reg CLK;
    reg Cin;
    reg Rst_n;                                           
    wire Cout;
    wire [3:0]q;                      
    cy4 i1 (  
    	.CLK(CLK),
    	.Cin(Cin),
    	.Cout(Cout),
    	.Rst_n(Rst_n),
    	.q(q)
    );
    
    initial CLK = 1'b1; 
    always #(`clock_period/2)CLK = ~CLK; 
    initial                                                
    begin                                              
    Rst_n = 1'b0;
    Cin = 1'b0;
    #(`clock_period*200);
    Rst_n = 1'b1;  
    #(`clock_period*20);  
    repeat(30)begin 
       Cin = 1'b1;
       #`clock_period;
       Cin = 1'b0; 
       #(`clock_period*5); 
    end   
    #(`clock_period*20); 
    $stop;
    end                                         
    endmodule
    
    
    展开全文
  • 目录 ...模10计数器 Verilog HDL语言描述 测试文件 仿真波形 RTL Schematic Technology Schematic 前言 详细地了解这些简单的计数器并非毫无意义的,因为它是组成大型计数器的小模块,如果大...

    目录

    前言

    模6计数器

    Verilog HDL语言描述

    测试文件

    仿真电路图

    RTL Schematic

    Technology Schematic

    模10计数器

    Verilog HDL语言描述

    测试文件

    仿真波形

    RTL Schematic

    Technology Schematic


    前言

    详细地了解这些简单的计数器并非毫无意义的,因为它是组成大型计数器的小模块,如果大型的计数器不太好理解,那么分解出来分别研究,不也是一种好的办法吗?

    这篇博文的意义就在如此。我将仿真加综合去详细的认清楚这些小零件。

    模6计数器

    模6计数器比较关键的一点是从0开始计数,计数到5(0101)时,产生一个进位信号1(注意这个进位信号1可以由第0位与第2位的与来得到,这在设计电路中比较重要,下面会有体现),并且此时,计数状态清零。

    Verilog HDL语言描述

    //模6计数器的Verilog HDL设计
    module counter6(clk, rst_n, en, dout, co);
    
    input clk, rst_n, en;
    output[3:0] dout;
    reg [3:0] dout;
    output co;
    
    always@(posedge clk or negedge rst_n)
    begin
    	if(!rst_n)
    		dout <= 4'b0000;        //系统复位,计数器清零
    	else if(en)
    		if(dout == 4'b0101)     //计数值达到5时,计数器清零
    			dout <= 4'b0000;
    		else
    			dout <= dout + 1'b1; //否则,计数器加1
    	else
    		dout <= dout;
    
    end
    
    assign co = dout[0]&dout[2];  //当计数达到5(4'b0101)时,进位为1,计数值为其他,都没有进位
    
    endmodule
    

    测试文件

    //模6计数器的测试文件
    `timescale 1ns/1ps
    module counter6_tb;
    
    reg clk, rst_n, en;
    wire[3:0] dout;
    wire co;
    
    //时钟设计周期为2ns
    always
    begin
    	#1 clk = ~clk;
    end
    
    //初始化
    initial
    begin
    	clk = 1'b0;
    	rst_n = 1'b1;
    	en = 1'b0;
    	#2 rst_n = 1'b0;
    	#2 rst_n = 1'b1; en = 1'b1;    //计数使能信号有效,且不复位
    	
    
    end
    
    counter6 u1(.clk(clk), .rst_n(rst_n), .en(en), .dout(dout), .co(co));
    
    endmodule
    
    

    仿真电路图

    从仿真电路图可以看出,模6计数器从0开始计数,计数到5,计数器清零,然后重新计数。

    RTL Schematic

    从这里可以看到模6计数器整理的外部输入输出情况,展开后如下:

    这个门级的原理图不复杂但是挺不好理解的,哪位壮士看的明白,麻烦给我说一声。

    反正这个模6计数器综合出来的寄存器传输级原理图就是这样的。

    Technology Schematic

    也就是在FPGA中是怎么样的一个电路图:

    用到了LUT(查找表)、各种BUF以及D触发器资源。

    模6计数器就认识到这里吧。

    模10计数器

    模10计数器的设计和模6计数器的设计如出一辙,甚至说仅仅一点儿变化,也就是把计数值改变一下,计数到9然后清零而已。但我还是把它仿真了个遍。

    Verilog HDL语言描述

    //模10计数器的Verilog HDL设计
    module counter10(clk, rst_n, en, dout, co);
    
    input clk, rst_n, en;
    output[3:0] dout;
    reg [3:0] dout;
    output co;
    
    always@(posedge clk or negedge rst_n)
    begin
    	if(!rst_n)
    		dout <= 4'b0000;        //系统复位,计数器清零
    	else if(en)
    		if(dout == 4'b1001)     //计数值达到5时,计数器清零
    			dout <= 4'b0000;
    		else
    			dout <= dout + 1'b1; //否则,计数器加1
    	else
    		dout <= dout;
    
    end
    
    assign co = dout[0]&dout[3];  //当计数达到5(4'b1001)时,进位为1,计数值为其他,都没有进位
    
    endmodule
    

    测试文件

    //模10计数器的测试文件
    `timescale 1ns/1ps
    module counter10_tb;
    
    reg clk, rst_n, en;
    wire[3:0] dout;
    wire co;
    
    //时钟设计周期为2ns
    always
    begin
    	#1 clk = ~clk;
    end
    
    //初始化
    initial
    begin
    	clk = 1'b0;
    	rst_n = 1'b1;
    	en = 1'b0;
    	#2 rst_n = 1'b0;
    	#2 rst_n = 1'b1; en = 1'b1;    //计数使能信号有效,且不复位
    	
    
    end
    
    counter10 u1(.clk(clk), .rst_n(rst_n), .en(en), .dout(dout), .co(co));
    
    endmodule
    
    

    仿真波形

    RTL Schematic

    Technology Schematic

    用的资源好像比模6计数器要多。

     

     

    展开全文
  • 数论10——乘法逆元(逆元)

    千次阅读 2019-08-15 20:11:06
    其实是乘法余逆元: a * a^-1 ≡ 1(mod p) 方法一, 扩展欧几里得求逆元: 扩展欧几里得,可以求逆元的原因: 假设a 与 x互逆(mod p):          a * ...
  • 什么要1000000007

    千次阅读 2018-03-31 12:12:15
    什么要1000000007刷OJ时,经常会遇到要1000000007。先看一下常用数据类型的数值范围(32位系统)字节类型范围长度一字节(2^8)char-128 ~ 1273一字节(2^8)unsigned char0 ~ 2553二字节(2^16)short-32768 ~ ...
  • 运算

    千次阅读 2012-08-18 11:57:02
    运算即求余运算。“”是“Mod”的音译,运算多应用于程序编写中。 Mod的含义求余。运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从幂运算到最大公约数的求法,从孙子问题到...
  • 应笔墨闲谈群的邀请, 在10月11号晚8:30分在其群做了一次关于BIM二次开发的讲座.由于参与者基本上都是从设计院和施工单位来的,所以对Revit二次开发做了纵览性的讲解, 非程序员能听懂的方式讲解Revit二次开发.使这些...
  • 万兆多光纤在1/10GbE校园主干网的应用 光缆系统的工程师通常会提出两个问题:1、校园主干网应选择何种类型的光纤?2、需要安装多少光纤?解决这两个问题需要进行一系列的分析,协助网络设计者做出最佳决策。本...
  • 光纤分类——多和单模

    千次阅读 2017-08-06 21:29:32
    (可见光部分波长范围是:390~760nm,大于760nm部分是红外光,小于390nm部分是紫外光)单模光接口的中心波长有两种:1310nm和1550nm,1310nm一般短距、中距或长距接口,1550nm一般长距、超长距接口。都
  • 单模模块和多模块的区别

    万次阅读 2017-12-12 13:32:10
    单模模块和多模块的区别
  • 补码与

    千次阅读 2015-07-14 08:17:35
    本篇来由昨天进行了反码、补码那些和浮点数的研究,但是还有一些问题遗漏,晚上跟寝室众基友讨论了,反而提出来一个很有意思的问题,于是有了本篇~~我们并不知道什么有补码这个东西,只知道在计算机中广泛用补码...
  • 计算LUHN算法模10“隔位2倍加”校验数的公式  计算步骤如下:  步骤1:从右边第1个数字(低序)开始每隔一位乘以2。  步骤2:把在步骤1中获得的乘积的各位数字与原号码中未乘2的各位数字相加。  步骤3:从...
  • SFP光模块的多和单模区别

    万次阅读 2013-04-19 14:42:24
    目前在项目中遇到几个SFP的问题,有实际上或者可能与光模块类型相关的问题,所以特意找了些多和单模的资料。 典型的问题是,在一个光模块的switch上,如果用多的SFP,则不能正常的传输;后来换成单模的SFP,...
  • 同余定理

    千次阅读 2016-03-07 20:18:08
    同余定理
  • 幂运算

    千次阅读 2013-07-12 09:55:56
    概念:  运算即求余运算。“”是“Mod”的音译,运算多...虽然很多数论教材上对运算都有一定的介绍,但多数都是以纯理论主,对于运算在程序设计中的应用涉及不多。  幂运算则是指先进行幂运算,在进
  • 扩散模型解析

    千次阅读 2015-02-06 17:38:02
    (10) 称 向 量 场 A 通 过 曲 面 Σ 向 着 制 定 侧 的 通 量 ( 或 流 量 ) 有 两类 曲 面 积 分 的 关 系 , 通 量 又 可 表 达 (11) 1.5.2 散 ...
  • 转换

    千次阅读 2018-12-27 10:45:08
    模数转换器中一般都要用到数转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变离散的数字信号的器件。 1、输入的二进制数码存入寄存器,存入寄存器的二进制数,每一位控制着一个模拟开关,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,521,253
精华内容 608,501
关键字:

以10为模