5-10 用Verilog设计一个功能类似74ls160的计数器。

(1)解题思路

设计一个74ls160,需要知道它的功能表,以及原理图

(2)核心模块代码

module fidv1 (rd,clk,et,load,datain,dataout,cout,ep);

input rd,et,load,clk,ep;

input [3:0] datain;

output [3:0] dataout ;

output cout;

reg cout;

reg [3:0] q1;

wire rd;

always @ (posedge clk or negedge rd)

if (rd==0) begin q1<=4'd0; end//rd=0时清零

else begin

if(clk==1&load==0) q1=datain;

else if(clk==1&load==1)

begin

if(ep==1&et==1&q1<4'd10) //开始计数

begin q1=q1+1;cout=0;

end

else if((ep&et)==0) begin q1=q1;cout=0;end//保持不变

else if(q1==4'd10) cout=1;//进位输出

end

end

assign dataout =q1;

endmodule

(3)测试模块代码

`timescale 1 ps/ 1 ps

module fidv1_ll();

// constants

// general purpose registers

reg eachvec;

// test vector input registers

reg clk;

reg [3:0] datain;

reg ep;

reg et;

reg load;

reg rd;

// wires

wire cout;

wire [3:0]  dataout;

// assign statements (if any)

fidv1 i1 (

// port map - connection between master ports and signals/registers

.clk(clk),

.cout(cout),

.datain(datain),

.dataout(dataout),

.ep(ep),

.et(et),

.load(load),

.rd(rd)

);

always   #2 clk=~clk;

initial

begin

#0 clk=0;

#0 rd=1;

#0 datain=4'd2;

#2 load=0;

#2 ep=1;

#0 et=1;

#12 load=1;

#16 ep=0;

#0 et=0;

#8 rd=0;

#2 rd=1;

#6 datain=4'd3;

#5 load=0;

$display("dataout=%d,datain=%d",dataout,datain);

#2 $stop;

end

endmodule

(4)RTL View的网表图

转载于:https://www.cnblogs.com/0001lizhubo/p/10846885.html

用Verilog写一个74LS160相关推荐

  1. 【FPGA_001】用Verilog写一个数组,会耗费很多资源

    不要在代码里用HDL语言去写一个数组,像下面这样 注:行前的语句意思是,告诉编译器强制将此ram类推综合成分布式ram,将这句话注释掉,综合出来也是同样的结果. 综合后,生成电路图如下,看那密密麻麻, ...

  2. (63)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二)

    1.1 FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-用verilo ...

  3. (62)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(一)

    1.1 FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(一) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-用verilo ...

  4. Verilog写状态机的三种描述方式之三段式

    Verilog写状态机的三段式描述方式1 1,RTL代码 2,门级网表 3,测试前仿真代码 4,前仿真波形+验证 状态机的设计思路: 一是从状态机变量入手,分析各个状态的输入.状态转移和输出: 二是先 ...

  5. [转]怎样写一个解释器

    来源:http://blog.sina.com.cn/s/blog_5d90e82f01018ge9.html 解释器是比较深入的内容.虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识, ...

  6. verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数

    verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数 目标 实现分秒计数 问题分析 首先要求1KHZ的时钟,周期为1*10e-3s,达成1秒需要1000个周期,因为没有提到占空比就偷懒 ...

  7. (fpga)用verilog写积分函数

    verilog写积分 0.总体代码 1. 原理 1.如何进行量化,达到精度. 2.如何尽可能的提高吞吐量,尽可能做到完全流水线化. 仿真结果; 最近听别人说了道题,打算做一下 目标:x=1,x=2, ...

  8. 使用Verilog搭建一个单周期CPU

    使用Verilog搭建一个单周期CPU 搭建篇 总体结构 其实跟使用logisim搭建CPU基本一致,甚至更简单,因为完全可以照着logisim的电路图来写,各个模块和模块间的连接在logisim中非 ...

  9. 用scala写一个基本五级流水线CPU

    用scala写一个基本五级流水线CPU ctime:2020-06-26 20:09:48 +0900|1593169788 标签(空格分隔): 技术 硬件 最近学SpinaHDL,一直想写个什么东西 ...

最新文章

  1. 1012 The Best Rank
  2. 分享一些基于BCH开发的应用
  3. 商用故事|泰华amp;华为手牵手,点亮城市照明
  4. python编程实例视屏-python实现实时视频流播放代码实例
  5. 大学的很重要的元素是圈子,是人气
  6. pyspark对应的scala代码PythonRDD类
  7. [Java 基础]控制语句
  8. 跳槽,成为程序员晋升与成长的唯一手段?
  9. 【原创】开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式
  10. π型滤波频率计算_π型电感滤波电路计算
  11. 计算机系统日期修改吗,电脑系统时间如何修改,教你电脑系统时间如何修改
  12. Miscellaneous | 恭喜本人博客进入2万名以内,多谢各位支持!
  13. 将一个CSV格式的文件分割成两个CSV文件
  14. c++ 向量化_一种新的FIR滤波器系数量化方法
  15. 删除文件时提示需要administrator 权限
  16. prometheus监控之postgresql
  17. 计算机技术为艺术设计提供,计算机技术艺术设计论文
  18. linux查看磁盘写入速度,linux查看与提高磁盘读写速度
  19. win7识别到移动硬盘,但不显示盘符解决办法
  20. 笔记本win10正在更新怎么关闭计算机,教你win10如何关闭自动更新

热门文章

  1. python学习日记ex17
  2. DBeaver Community
  3. 7-1 集合相似度——练习题集(2020/3/30)
  4. 微信公众号-根据openID给指定用户发送信息
  5. <insert></insert>
  6. SolarWinds供应链攻击事件带来的启示
  7. 基于“时空逻辑”的新时空论
  8. cad在线转换_手绘线稿转CAD,能一键生成为什么要描?
  9. C艹——ServiceController类
  10. 8位阿里P8合著“Dubbo微服务进阶笔记”一经面世,Github上标星93K+