Verilog HDL语言设计实现D触发器+计数器

  • 分别采用结构描述和行为描述方式设计一个基本的D触发器,在此基础上,采用结构描述的方式,用8个D触发器构成一个8位移位寄存器。进行功能仿真,查看结果,把上述内容整理到实验报告。
  • (1)行为描述:
  • 单个D触发器

功能代码:

module shiyan31(q,d,clk);

input d,clk;

output q;

reg q;

always @(posedge clk)   %在时钟的每个下降沿

begin

q<=d;

end

endmodule     

测试代码:

`timescale 1ns/1ns

 

module test();

reg d,clk;

wire q;

shiyan31 U1(q,d,clk);

always #10 clk=~clk;

initial

begin clk =0; %每隔20s输入一个d

#20 d=1;

#20 d=0;

#20 d=1;

#20 d=0;

#20 d=1;

#20 d=0;

#20 d=1;

#200 $finish;

end

endmodule                      

 

  • 8位D触发的移位寄存器:

功能程序:

module shiyan31(q,d,clk);

input d,clk;

output q;

wire  d;

wire[7:0] q;

D U2(q[0],d,clk); %调用8次Module D,第一个的输入为d,其它输入为上一级的输出

D U3(q[1],q[0],clk);

D U4(q[2],q[1],clk);

D U5(q[3],q[2],clk);

D U6(q[4],q[3],clk);

D U7(q[5],q[4],clk);

D U8(q[6],q[5],clk);

D U9(q[7],q[6],clk);

endmodule

 

module D(q,d,clk);%一个D触发器的module

input d,clk;

output q;

reg q;

always @(posedge clk)

begin

q<=d;

end

endmodule

测试程序:

`timescale 1ns/1ns

module test();

reg d,clk;

wire[7:0] q;

shiyan31 U1(q,d,clk);

always #10 clk=~clk;

initial

begin clk =0;

#10 d=1;

#150 d=0;

#150 d=1;

#900 $stop;

end

endmodule  

 

(2)结构描述

  • 单个D触发器

功能程序:

module shiyan31(clk,d,s,r,q);

input clk,d,s,r;

output q;

wire q1,q2,q3,q4,q0;

nand (q1,s,q4,q2);

nand(q2,q1,r,clk);

nand(q3,q2,clk,q4);

nand(q4,q3,d,r);

nand(q,s,q2,q0);

nand(q0,q,q3,r);

endmodule

测试程序:

`timescale 1ns/1ns

module test();

reg d,clk,s,r;

wire q;

shiyan31 U1(clk,d,s,r,q);

always #10 clk=~clk;

always #30 d=~d;

initial

begin clk =0;s=1;r=1;d=0;

#200 $stop;

end

endmodule

  • 8位移位寄存器:

功能代码:

module shiyan31(Q,d,clk,s,r,reset);

input d,clk,s,r,reset;

output Q;

wire  d;

wire[7:0] Q;

wire s,r;

D U2(clk,d,s,r,Q[0]);

D U3(clk,Q[0],s,r,Q[1]);

D U4(clk,Q[1],s,r,Q[2]);

D U5(clk,Q[2],s,r,Q[3]);

D U6(clk,Q[3],s,r,Q[4]);

D U7(clk,Q[4],s,r,Q[5]);

D U8(clk,Q[5],s,r,Q[6]);

D U9(clk,Q[6],s,r,Q[7]);

endmodule

 

module D(clk,d,s,r,q);

input clk,d,s,r;

output q;

wire q1,q2,q3,q4,q0;

nand (q1,s,q4,q2);

nand(q2,q1,r,clk);

nand(q3,q2,clk,q4);

nand(q4,q3,d,r);

nand(q,s,q2,q0);

nand(q0,q,q3,r);

Endmodule

 

测试代码:

`timescale 1ns/1ns

 

module test();

reg d,clk,s,r,reset;

wire [7:0] Q;

shiyan31 U1(Q,d,clk,s,r,reset);

always #10 clk=~clk;

initial

begin clk =0;s=1;r=1;reset=1;

#10 reset=0;

#10  d=1;

#150 d=0;

#150 d=1;

#900 $stop;

end

endmodule

 

  • 设计1个8位的计数器,带同步复位功能,复位信号低电平有效。(1)在同一个module中设计1个4分频器,采用分频器输出脉冲作为计数器的输入。(2)将4分频器设计成独立的module,实例化四分频器模块完成与(1相同的功能。进行综合和仿真,查看功能仿真结果,把上述内容整理到实验报告。
  • (1)计数器:

功能代码:

module shiyan32(out,reset,clk);

input clk,reset;

output reg[7:0] out;

always @(posedge clk)

begin

if(!reset)

out<=8'h00;%同步置位

else

out<=out+1;%来一个时钟上升沿,则加1

end

endmodule

测试代码:

`timescale 1ns/1ns

module test();

reg reset,clk;

wire[7:0] out;

shiyan32 U1(out,reset,clk);

always #10 clk=~clk;

initial

begin clk=0;reset=0;

#20 reset=1;

#100 reset=0;

#200 $stop;

end

endmodule

2同一个module 模块:

功能程序:

module shiyan32(clkout,out,reset,clk);

input clk,reset;

output clkout;

output reg[7:0] out;

reg clkout;

reg [4:0] qout;

always @(posedge clk)

begin if(!reset)

begin

clkout<=0;

qout<=0;%同步置位,clkout,qout都为0

end

else begin

if(qout==1)%当qout为1是表示经历了两个时钟,则达到了占空比为50%的四分频

begin

qout <=0;

clkout<=~clkout;

end

else

qout <=qout+1;

end

end

always @(posedge clkout or negedge reset) %用分频之后的clk时钟作为计数器的输入时钟

begin

if(!reset)

out<=8'h00;

else

out<=out+1;

end

endmodule

测试程序:

`timescale 1ns/1ns

module test();

reg reset,clk;

wire[7:0] out;

shiyan32 U1(clkout,out,reset,clk);

always #10 clk=~clk;

initial

begin clk=0;reset=0;%reset=0%低电平置位

#20 reset=1;

#1000 $stop;

end

Endmodule

 

(3)两个module 模块:

功能代码:

module shiyan32(out,clkout,reset,clk);

input clk,reset;

output reg[7:0] out;

output clkout;

wire clkout;

wire [4:0] qout;

clk4 u1(reset,clk,clkout,qout);%四分频时钟的模块调用,在调用的模块中出现的信号,可以不出现在主模块中

always @(posedge clkout or negedge reset)

begin

if(!reset)

out<=8'h00;

else

out<=out+1;

end

endmodule

module clk4 (reset,clk,clkout,qout);

input reset,clk;

output clkout,qout;

reg clkout;

reg [4:0] qout;

always @(posedge clk)

begin if(!reset)

begin  clkout<=0;qout<=0;end

else begin  if(qout==1)

begin qout <=0;  clkout<=~clkout; end

else  qout <=qout+1; end  end

Endmodule

测试程序:

`timescale 1ns/1ns

module test();

reg reset,clk;

wire[7:0] out;

shiyan32 U1(out,clkout,reset,clk);

always #10 clk=~clk;

initial

begin clk=0;reset=0;

#20 reset=1;

#400 $stop;

end

endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年全球十大新兴技术:细胞植入人体、营养人造肉……你想试试吗?

来源&#xff1a;光明日报摘要&#xff1a;在不久的将来&#xff0c;技术革新将如何改变我们的生活&#xff1f;人工智能将大幅提升新药物和新材料的开发速度&#xff1b;新型诊断工具将打造更先进的个性化医疗&#xff1b;如果你生病了&#xff0c;医生将可以在你体内植入活细…

检测系列--YOLO系列

开头语&#xff1a;RCNN系列&#xff0c;需要区域候选框&#xff0c;即便最后是多任务损失函数&#xff0c;但回归和分类各是一块是很明显的&#xff0c;而yolo要把分类问题转换成回归&#xff0c;这样的話就全是回归。 一.yolo v1 1,介绍&#xff0c;此时输入size要一致448*…

Verilog HDL语言实现ROM、RAM+有限状态机

利用MegaWizard实现创建RAM和ROM。&#xff08;1&#xff09;建立1个32单元8bit的RAM&#xff0c;并将0-31填入该RAM&#xff1b;&#xff08;2&#xff09;建立1个32单元8bit的ROM&#xff0c;建立.mif文件填入数据&#xff0c;并读出来显示。 (1)、RAM 功能代码: module sh…

重磅!亚马逊将在2019年全面弃用Oracle数据库

来源&#xff1a;AI 前线摘要&#xff1a;11 月 29 日&#xff0c;AI 前线获悉&#xff0c;亚马逊 AWS 首席执行官 Andy Jassy 在正在美国拉斯维加斯召开的 AWS re&#xff1a;Invent 2018 中表示&#xff1a;到 2019 年底&#xff0c;亚马逊将全面放弃使用 Oracle 数据库&…

数字图像处理实验6图像编码

一、实验目的 &#xff08;1&#xff09;了解图像编码的目的及意义&#xff0c;加深对图像编码的感性认识。 &#xff08;2&#xff09;熟练掌握哈夫曼编码的实现与应用。 &#xff08;3&#xff09;掌握行程长度编码的实现与应用&#xff0c;尤其是BMP和PCX文件的行程长度编…

机器人日行十万步却无需动力源!究竟如何完美的机械结构让你开始怀疑人身...

来源&#xff1a;机器人大讲堂摘要&#xff1a;上图这个机器人可不简单&#xff0c;它是世界纪录的保持者&#xff0c;目前最新的纪录是连续步行27小时&#xff0c;总长72公里&#xff08;相当于十万步还要多&#xff09;。而最最关键的是&#xff0c;它完全凭借自己完美的机械…

数字图像处理实验5图像复原

一、实验目的 &#xff08;1&#xff09;了解图像复原的目的及意义&#xff0c;加深对图像复原理论的认识。 &#xff08;2&#xff09;掌握维纳滤波复原基本原理。 &#xff08;3&#xff09;掌握约束最小二乘方复原方法。 &#xff08;4&#xff09;掌握盲解卷积复原方法…

MVVM模式的一个小例子

使用SilverLight、WPF也有很长时间了&#xff0c;但是知道Binding、Command的基本用法&#xff0c;对于原理性的东西&#xff0c;一直没有深究。如果让我自己建一个MVVM模式的项目&#xff0c;感觉还是无从下手&#xff0c;最近写了一个小例子&#xff0c;贴上代码&#xff0c;…

实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)

一.计算欧式距离 1&#xff0c;直接for循环 两个点集points1&#xff0c;points2&#xff0c;用dist来存储距离 points1np.array([[1,2],[3,4]]) points2 np.array([[5, 6],[7,8]]) dist np.zeros(shape[points1.shape[0],points2.shape[0]]) for i in range(points1.sha…

数字图像处理实验四图像频域增强

一、实验目的 &#xff08;1&#xff09;了解图像增强的目的及意义&#xff0c;加深对图像增强的感性认识&#xff0c;巩固所学的图像增强的理论知识和相关算法。 &#xff08;2&#xff09;熟练掌握低通、高通、带通、同态滤波器的使用方法&#xff0c;明确不同性质的滤波器…

卡耐基梅隆大学专家谈核心技术市场化:「AI 周边相关机遇最大」

来源&#xff1a;ZDnet、机器之能编译 | 张玺摘要&#xff1a;技术市场化之难在哪&#xff1f;创业家最常犯什么错误&#xff1f;每位立志创业的朋友都应该研究下这篇对卡耐基梅隆 (CMU) 大学专家的采访。CMU 是全美技术转移最成功的机构之一&#xff0c;斥巨资帮助全校师生实现…

数字图像处理实验三图像增强

一、实验目的 &#xff08;1&#xff09;了解图像增强的目的及意义&#xff0c;加深对图像增强的 感性认识&#xff0c;巩固所学的图像增强的理论知识和相 关算法。 &#xff08;2&#xff09;熟练掌握直方图均衡化和直方图规定化的计算过 程。 &#xff08;3&#xff09;熟…

matplotlib与seaborn的一些使用

1.plt.plot画线画点 a np.array([[1, 2], [3, 4]]) print(a[:, 0]) plt.plot(a[:, 0], a[:, 1]) plt.show() plt.plot(a[:, 0], a[:, 1], o,colorred) plt.show()&#xff03;添加风格 plt.plot(x,y,colorred,linewidth1.0,linestyle--) #设置x轴范围 plt.xlim((-1,2)) # …

无人驾驶汽车想要“普渡众生”,还要经历15个磨难

来源&#xff1a;Forbes 、网易智能摘要&#xff1a;无人驾驶汽车的未来与电动平衡车的历史有什么关系吗&#xff1f;电动平衡车也曾被预言将彻底改变交通。史蒂夫•乔布斯曾经说&#xff0c;城市将围绕这一设备重新设计&#xff1b;约翰•杜尔说&#xff0c;它将比互联网更大…

SQL的各种使用方法

一、Select语句例子 使用子查询查询employees表中&#xff0c;属于某一部门员工的姓名、职位、工薪、部门编号的信息 提示&#xff1a; 1)、需要关联employees表、departments表 2)、已知的信息为部门名称&#xff0c;部门名称由用户自己给出 按照要求写出SQL语句。 答案及…

正常矩形计算IOU与与NMS,多边形计算IOU

一&#xff0e;计算IOU def intersect(box_a, box_b):max_xy np.minimum(box_a[:, 2:], box_b[2:])min_xy np.maximum(box_a[:, :2], box_b[:2])inter np.clip((max_xy - min_xy), a_min0, a_maxnp.inf)return inter[:, 0] * inter[:, 1]def jaccard_numpy(box_a, box_b):&…

产业互联网受瞩目:互联网主战场从To C转向To B | 企鹅经济学

来源&#xff1a;科技日报摘要&#xff1a;最近&#xff0c;要论在互联网圈最火的词&#xff0c;非“产业互联网”莫属。如今&#xff0c;言必提产业互联网&#xff0c;已成为互联网圈的一种风潮。互联网的“上半场”已接近尾声&#xff0c;“下半场”的序幕正被拉开&#xff0…

json的用法

json格式 JSON格式&#xff1a;http://www.json.org/ python和JSON的关系请参考&#xff1a;http://docs.python.org/library/json.html JSON建构有两种结构&#xff1a; 1. “名称/值”对的集合&#xff08;A collection of name/value pairs&#xff09;。不同的语言中&#…

数据库设计方法

一、延续训练题 假设你是一个小的录影带出租店的老板。你的出租店里面有3000部电影。每部电影都有DVD或VHS录像带号码。对于每部电影&#xff0c;需要知道它的标题和类别&#xff08;如&#xff0c;喜剧&#xff0c;悬疑&#xff0c;剧情&#xff0c;动作&#xff0c;战争&…

谷歌首席科学家:搞研究的痛苦,搞工程的人不懂

来源&#xff1a;量子位作者&#xff1a;Vincent Vanhoucke谷歌首席科学家、谷歌大脑技术负责人Vincent Vanhoucke&#xff08;万努克&#xff09;最近发出的一篇“劝退文”&#xff0c;引发海外科研学者的热议。在这博客中&#xff0c;万努克直言以研究为业&#xff0c;固然令…