用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
用Verilog写一个74LS160相关推荐
- 【FPGA_001】用Verilog写一个数组,会耗费很多资源
不要在代码里用HDL语言去写一个数组,像下面这样 注:行前的语句意思是,告诉编译器强制将此ram类推综合成分布式ram,将这句话注释掉,综合出来也是同样的结果. 综合后,生成电路图如下,看那密密麻麻, ...
- (63)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二)
1.1 FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-用verilo ...
- (62)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(一)
1.1 FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(一) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-用verilo ...
- Verilog写状态机的三种描述方式之三段式
Verilog写状态机的三段式描述方式1 1,RTL代码 2,门级网表 3,测试前仿真代码 4,前仿真波形+验证 状态机的设计思路: 一是从状态机变量入手,分析各个状态的输入.状态转移和输出: 二是先 ...
- [转]怎样写一个解释器
来源:http://blog.sina.com.cn/s/blog_5d90e82f01018ge9.html 解释器是比较深入的内容.虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识, ...
- verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数
verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数 目标 实现分秒计数 问题分析 首先要求1KHZ的时钟,周期为1*10e-3s,达成1秒需要1000个周期,因为没有提到占空比就偷懒 ...
- (fpga)用verilog写积分函数
verilog写积分 0.总体代码 1. 原理 1.如何进行量化,达到精度. 2.如何尽可能的提高吞吐量,尽可能做到完全流水线化. 仿真结果; 最近听别人说了道题,打算做一下 目标:x=1,x=2, ...
- 使用Verilog搭建一个单周期CPU
使用Verilog搭建一个单周期CPU 搭建篇 总体结构 其实跟使用logisim搭建CPU基本一致,甚至更简单,因为完全可以照着logisim的电路图来写,各个模块和模块间的连接在logisim中非 ...
- 用scala写一个基本五级流水线CPU
用scala写一个基本五级流水线CPU ctime:2020-06-26 20:09:48 +0900|1593169788 标签(空格分隔): 技术 硬件 最近学SpinaHDL,一直想写个什么东西 ...
最新文章
- 1012 The Best Rank
- 分享一些基于BCH开发的应用
- 商用故事|泰华amp;华为手牵手,点亮城市照明
- python编程实例视屏-python实现实时视频流播放代码实例
- 大学的很重要的元素是圈子,是人气
- pyspark对应的scala代码PythonRDD类
- [Java 基础]控制语句
- 跳槽,成为程序员晋升与成长的唯一手段?
- 【原创】开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式
- π型滤波频率计算_π型电感滤波电路计算
- 计算机系统日期修改吗,电脑系统时间如何修改,教你电脑系统时间如何修改
- Miscellaneous | 恭喜本人博客进入2万名以内,多谢各位支持!
- 将一个CSV格式的文件分割成两个CSV文件
- c++ 向量化_一种新的FIR滤波器系数量化方法
- 删除文件时提示需要administrator 权限
- prometheus监控之postgresql
- 计算机技术为艺术设计提供,计算机技术艺术设计论文
- linux查看磁盘写入速度,linux查看与提高磁盘读写速度
- win7识别到移动硬盘,但不显示盘符解决办法
- 笔记本win10正在更新怎么关闭计算机,教你win10如何关闭自动更新