用Verilog写一个74LS160

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

时间: 2024-10-18 08:14:22

用Verilog写一个74LS160的相关文章

(原创)用Verilog实现一个参数化的呼吸灯(Verilog,CPLD/FPGA)

1.Abstract     观察到一个有趣的现象,每当把Apple笔记本合上的时候,那个白色的呼吸灯就会反复地由暗渐明,然后又由明渐暗,乍一看就像Apple笔记本在打盹休息一样,十分可爱!于是突发奇想,要不用Verilog也写一个吧,资源也不需要太多,一个LED灯就可以了.为了使用方便,可以把它做成参数化的,可以根据时常进行参数调节:深睡.浅睡跟清醒的时候呼吸频率似乎是不一样的-     下面就来分析和实践一下. 2.Content   2.1 理论分析     根据上述描述的现象,仔细分析一

王垠:怎样写一个解释器

卖了好久关子了,说要写一个程序语言理论的入门读物,可是一直没有下笔.终于狠下心来兑现一部分承诺.今天就从解释器讲起吧. 解释器是比较深入的内容.虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识,但是这篇教程并不是针对函数式编程的入门,所以我假设 你已经学会了最基本的 Scheme 和函数式编程.如果你完全不了解这些,可以读一下< SICP | 计算机程序的构造和解释> 的第一,二章.当然你也可以继续读这篇文章,有不懂的地方再去查资料.我在这里也会讲递归和模式匹配的原理.如果你已经

请写一个算法,用于将list集合内重复元素剔除

package Homework; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;/** * list集合是否可以包含重复元素? * 如果可以,请写一个算法,用于将list集合内重复元素剔除. * @author 张致远 * */public class Homework2 { public static void main(String[]

用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中

我最近在用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中,第一次写项目,写过这类项目的多多提意见,哪方面的意见都行,有代码或者demo的求赏给我,谢谢

c语言:写一个函数建立一个有3名学生数据的单向动态链表

写一个函数建立一个有3名学生数据的单向动态链表. 解:程序: #include<stdio.h> #include<stdlib.h> #define LEN sizeof(struct Student) struct Student { long num; float score; struct Student *next; }; int n; struct Student *creat(void)//定义函数返回一个指向链表头的指针 { struct Student *head

为PhoneGap写一个android插件

为PhoneGap写一个android插件,要怎么做? 其实这句话应该反过来说,为android写一个PhoneGap插件,要怎么做? 这里以最简单的Hello World!为例,做个说明: 1.第一步,要先建立一个支持PhoneGap(Cordova)的android工程 因为这个插件本质上是安卓插件,用于PhoneGap,因此,要二者支持才行,所以我们要建立一个支持PhoneGap(Cordova)的android工程,插件在这个工程里面编写. 扫盲:PhoneGap现在已经出售给了Apac

如何使用viewpager与fragment写一个app导航activity

今天我们来看一下如何使用viewpager和fragment组合来写一个app导航activity,这里使用到了android开源控件viewpagerindicator,有兴趣的同学可以去它网站上看看它的介绍. 附上效果截图一张: demo中只有一个activity,是用activity_main.xml来布局,其内容如下: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:and

写一个python的服务监控程序

写一个python的服务监控程序 前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python站点下载源码.解压到Redhat上.然后执行以下的命令: # ./configure --prefix=/usr/local/python27 # make # make install 这样安装之后默认不会启用Python2.7.须要使用/usr/local/python27/bin/python2.7调用新版本号的python. 而

从无到有写一个运维APP(三)完结篇

前言:自己的挖的坑还得填,此篇为完结篇,环境的搭建参考第一篇从无到有写一个运维APP(一),至于第二篇就跳过吧,写个APP没那么复杂.由于自己现在无业游民,所以没有什么现成的环境,环境就随便找个公网的..再者当下的完成度应该算不上一个完整的APP,但是作为参考,依瓢画葫芦绝对足够了,如果等完整产品,可能得等一段时间了,下面的是该项目的地址. 项目地址: https://github.com/youerning/MyApp(star一下呗) 效果图如下 文章目录: 准备工作 代理 页面框架 获取数