Verilog数字系统设计——10进制计数器,具有异步复位功能

这篇具有很好参考价值的文章主要介绍了Verilog数字系统设计——10进制计数器,具有异步复位功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Verilog数字系统设计——10进制计数器,具有异步复位功能

题目

  1. 编程实现10进制计数器,具有异步复位功能,十位和个位用8421BCD码表示,各端口定义如下图所示:
  2. 仔细考虑端口定义中每个端口的含义;
  3. 要求完成程序编辑、编译、时序仿真;
  4. 实验提交Verilog设计文件(.v文件)、仿真波形截图以及对于第3个步骤所提出问题的回答,文件打包,压缩包以自己的学号+姓名命名;
    i_clk时钟
    I_rest复位
    i_load置位
    i_datin置位的数
    o_cout10进制的进位端
    o_count 计数值
    下面展示一些 内联代码片
module Decimal_counter(c_count,cout,i_datin,i_load,i_cin,i_rest,i_clk);
	output [7:0]c_count;
	output cout;
	input [7:0]i_datin;
	input i_load,i_cin,i_rest,i_clk;
	reg [7:0]c_count;
      // reg cout;
	always @(posedge i_clk or negedge i_rest)
		begin
			if (!i_rest)
				c_count=0;
                        else if (i_load)
				c_count=i_datin;
			else if (i_cin)
			begin
				if(c_count[3:0]==9)
				begin
					//cout=1;
					c_count[3:0]=0;
					if(c_count[7:4]==9)
						c_count[7:4]=0;
					else
						c_count[7:4]=c_count[7:4]+1;

				end
				else 
					begin
					c_count[3:0]=c_count[3:0]+1;
					//cout=0;
					end
			end
		end
assign cout=((c_count[7:0]==8'b10011001)&i_cin)?1:0;

endmodule

下面展示一些 内联代码片

module Decimal_counter_test();
reg [7:0]i_datin_t;
reg i_cin_t,i_load_t;
reg i_rest_t,i_clk_t;
wire [7:0]c_count_t;
wire cout;
   Decimal_counter Decimal_counter1(.c_count(c_count_t),.cout(cout_t),.i_datin(i_datin_t),.i_load(i_load_t),.i_cin(i_cin_t),.i_rest(i_rest_t),.i_clk(i_clk_t));
	initial
	begin
		i_rest_t=1;
		i_clk_t=0;
		i_load_t=0;
		i_cin_t=0;
		i_datin_t[7:0]=8'd3;
                #20 i_rest_t=0;
		#40 i_rest_t=1;


 		#100 i_load_t=1;
                #120 i_load_t=0;

	end
	always #10 i_cin_t=~i_cin_t;
	always #5 i_clk_t=~i_clk_t;
	


endmodule 

下面展示一些 内联代码片

// A code block
var foo = 'bar';
module Decimal_counter(c_count,cout,i_datin,i_load,i_cin,i_rest,i_clk);
	output [7:0]c_count;
	output cout;
	input [7:0]i_datin;
	input i_load,i_cin,i_rest,i_clk;
	reg [7:0]c_count;
       reg cout;
	always @(posedge i_clk or negedge i_rest)
		begin
			if (!i_rest)
				c_count=0;
                        else if (i_load)
				c_count=i_datin;
			else if (i_cin)
			begin
				if(c_count[3:0]==9)
				begin
					cout=1;
					c_count[3:0]=0;
					if(c_count[7:4]==9)
						c_count[7:4]=0;
					else
						c_count[7:4]=c_count[7:4]+1;

				end
				else 
					begin
					c_count[3:0]=c_count[3:0]+1;
					cout=0;
					end
			end
		end
//assign cout=((c_count[3:0]==9)&i_cin)?1:0;

Endmodule

Verilog数字系统设计——10进制计数器,具有异步复位功能
Verilog数字系统设计——10进制计数器,具有异步复位功能文章来源地址https://www.toymoban.com/news/detail-508635.html

到了这里,关于Verilog数字系统设计——10进制计数器,具有异步复位功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 任意进制计数器12进制计数数码管显示verilog代码

    名称:任意进制计数器12进制计数数码管显示verilog代码 软件:VIVADO 语言:Verilog 代码功能: 设计一个12进制计数器,计数值00-11需要在数码管上显示, 时钟脉冲通过按键开关设计。 电路的输入信号en进行清零。 本代码可以修改为任意进制计数器,即修改计数控制模块的红框

    2024年02月04日
    浏览(43)
  • 用verilog写一个60进制计数器

    你好!下面是一个使用 Verilog 写的 60 进制计数器的示例代码。这个计数器有四个输入: clock :时钟信号。 reset :当设为高电平时,计数器会重置为 0。 enable :当设为高电平时,计数器才会执行计数操作。 count_up :当设为高电平时,计数器会执行加 1 操作;当设为低电平时

    2024年02月11日
    浏览(35)
  • 【数电实验3】Verilog—1位十进制可逆计数器

    【2022.04西南交大数电实验】 【2022.04.17 更新修改了一个错误: ~clr改为了clr: 另外 ,把代码修得整齐好看了一点】 【代码参考博主weixin_49270464,已进行适当修改,符合实验要求。本代码及波形已通过老师验收。仅供参考。】    信号名 主板器件 PIN 信号名 主板器件 PIN clr

    2024年02月06日
    浏览(41)
  • (数字逻辑笔记)用Verilog实现4位计数器。(时序逻辑)

    实验描述: 输入: Clock:如果计数器enable信号为1,那么在时钟上升沿,count加1 Enable:如果enable为1,那么在时钟上升沿,count加1;如果enable为0,count保持不变 Reset:重置信号,如果reset为0,count重置为0 输出: Count[3:0]:4位计数信号,范围:4‘b0000 – 4’b1111 实现代码: Tes

    2024年02月11日
    浏览(33)
  • 任意进制加法计数器电路设计

    目录 一、题目 二、时钟发生电路 1、施密特触发电路 2、单稳态电路 3、多谐振荡电路 三、 N进制计数器 1、M的情形 2、MN的情形 2、1  193实现 2、2 192实现 四、设计的小bug 1、两个bug 2、bug的原因及解决 五、仿真源文件的获取 图一 题目要求         如题,我们要设计三部

    2024年02月09日
    浏览(39)
  • OUC数字逻辑Verilog实验二 用Verilog实现4位计数器(时序逻辑)

    clk为模拟的脉冲,reset为重置信号,如果reset为0,则把init的值作为初始值赋值给out,enable为使能端,如果enable为1,则在上升沿根据mode的值,如果mode为1,为加计数,mode为0,为减计数。 仿真图像中, 第1个脉冲,reset为0,为out赋值输入的初始值0010。 第2~6个脉冲,enable为1,

    2024年01月17日
    浏览(35)
  • 使用74LS161设计任意进制计数器

    可预置的四位二进制同步计数器74LS161具有并行预置数据、清零、置数、计数和保持功能,并且有进位输出端,可以串接计数器使用。引脚排列如图7-1所示,功能表见7-2所示。 图7-1 74LS161引脚排列 从下表7-2中可知,该计数器具有信号清零端 ,信号使能端CEP、CET,信号置数端

    2024年02月02日
    浏览(48)
  • 用74LS73设计四位二进制加法计数器和8421BCD加法计数器

     (1)用2片74LS73实现该电路,由CP端输入单脉冲,设计并画出4位异步二进制加法计数器电路图。  (2)由CP端输入单脉冲,测试并记录Q1~Q4端状态及波形。 四位二进制加法计数器状态迁移表如下: Q 4n Q 3n Q 2n Q 1n Q 4n+1 Q 3n+1 Q 2n+1 Q 1n+1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0

    2024年02月10日
    浏览(71)
  • 通过verilog实现模可变计数器的设计

    实验要求:          (一) 实验目的 (1)掌握组合逻辑电路和时序电路的 FPGA实现方法; (2)熟悉EDA开发板和开发软件的使用方法; (3)学习静态数码管的使用和7段数码显示译码器设计; (4)掌握时钟在时序电路中的作用; (5)掌握分频电路的实现方法。 (二)

    2024年02月05日
    浏览(32)
  • 【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月10日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包