FPGA学习笔记2.1——用Verilog实现74LS148的功能定义并测试
设计思路:
0-7 编码输入端(低电平有效)
EI 选通输入端(低电平有效)
A0、A1、A2 三位二进制编码输出信号即编码 输 出 端(低电平有效)
GS 片优先编码输出端即宽展端(低电平有效)
EO 选通输出端,即使能输出端
74LS148真值表:
输入 |
输出 |
||||||||||||
EI |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
A2 |
A1 |
A0 |
GS |
EO |
1 |
X |
X |
X |
X |
X |
X |
X |
X |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
X |
X |
X |
X |
X |
X |
X |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
X |
X |
X |
X |
X |
X |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
X |
X |
X |
X |
X |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
X |
X |
X |
X |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
X |
X |
X |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
X |
X |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
X |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
其中,1-高电平 ,0-低电平 ,X-任意
原理图:
功能模块代码:
module code83(in8,out3,EI,GS,EO);
input[7:0] in8;
input EI;
output reg[2:0] out3;
output reg GS;
output reg EO;
always@(in8,EI)
beginout3=3'b111;EO=1;GS=1;if(~EI)beginGS=0;case(in8)8'b11111111:beginEO=0;GS=1;out3=3'b111;end8'b00000000: out3=3'b000;8'b10000000: out3=3'b001;8'b11000000: out3=3'b010;8'b11100000: out3=3'b011;8'b11110000: out3=3'b100;8'b11111000: out3=3'b101;8'b11111100: out3=3'b110;8'b11111110: out3=3'b111;default: out3=3'b111;endcaseend
end
endmodule
测试模块代码:
// Copyright (C) 2017 Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions
// and other software and tools, and its AMPP partner logic
// functions, and any output files from any of the foregoing
// (including device programming or simulation files), and any
// associated documentation or information are expressly subject
// to the terms and conditions of the Intel Program License
// Subscription Agreement, the Intel Quartus Prime License Agreement,
// the Intel FPGA IP License Agreement, or other applicable license
// agreement, including, without limitation, that your use is for
// the sole purpose of programming logic devices manufactured by
// Intel and sold by Intel or its authorized distributors. Please
// refer to the applicable agreement for further details.// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to
// suit user's needs .Comments are provided in each section to help the user
// fill out necessary details.
// *****************************************************************************
// Generated on "03/30/2022 22:16:56"// Verilog Test Bench template for design : code83
//
// Simulation tool : ModelSim-Altera (Verilog)
// `timescale 1 ps/ 1 ps
module code83_vlg_tst();
// constants
// general purpose registers
reg eachvec;
// test vector input registers
reg EI;
reg [7:0] in8;
// wires
wire EO;
wire GS;
wire [2:0] out3;// assign statements (if any)
code83 i1 (
// port map - connection between master ports and signals/registers .EI(EI),.EO(EO),.GS(GS),.in8(in8),.out3(out3)
);
initial
begin
// code that executes only once
// insert code here --> begin // --> end
$display("Running testbench");
EI=1;in8=8'b0;
#5;
EI=0;
in8=8'b11111111;
#16 $stop; end
always
// optional sensitivity list
// @(event1 or event2 or .... eventn)
begin
// code executes for every event on sensitivity list
// insert code here --> begin
#2 $display("EI:%b; input:%b; output:%b GS:%b; EO:%b",EI,in8,out3,GS,EO);
in8=in8<<1; @eachvec;
// --> end
end
endmodule
运行图:
FPGA学习笔记2.1——用Verilog实现74LS148的功能定义并测试相关推荐
- FPGA学习笔记2.2——用Verilog实现七段管的工作逻辑
目录 设计思路: 原理图: Task下的调用: 功能模块代码: 测试模块代码: 运行图: Module下的调用: 功能模块代码: 测试模块代码: 运行图: 设计思路: 一个七段管使用7bit信号控制7 ...
- FPGA学习笔记3.2——用Verilog实现七段管计时器
设计思路 在6个七段管上分别显示 小时(0-23或11).分(0-59).秒(0-59),各占2个管.外部时钟50Mhz.可以用按键来产生一个复位信号key,当按键按下立刻(异步)将时间复位成0小时. ...
- FPGA学习笔记(八)同步/异步信号的打拍分析处理及亚稳态分析
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- FPGA学习笔记(十二)IP核之FIFO的学习总结
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- FPGA学习笔记(六)Modelsim单独仿真和Quartus联合仿真及signaltap使用
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- FPGA学习笔记(1)简单的时序逻辑电路——流水灯
FPGA学习笔记(1)简单的时序逻辑电路--流水灯 编程语言为Verilog HDL 原理 (1)设计一个计数器,使开发板上的4个LED状态每500ms翻转一次.开发板上的晶振输出时钟频率为50MHz ...
- FPGA学习笔记_ROM核调用与调试
FPGA学习笔记 ROM核调用与调试 1. ROM存储器IP核的使用 2. 创建.mif文件 3. In system memory content editor内存查看工具的使用 4. Signal ...
- FPGA学习笔记_UART串口协议_串口接收端设计
FPGA学习笔记 1. UART串口协议以及串口接收端设计 1 原理图 2 Verilog 代码 3 Modelsim仿真 4. FPGA板级验证 1.1 串口协议接收端设计 目标:FPGA接收其他设 ...
最新文章
- python编程图_Python编程图形库之Pillow使用方法讲解
- mysql merge union_MySQLMerge存储引擎
- 数据结构:堆(Heap)
- Duilib嵌入CEF出现窗口显示不正常
- JS 前20个常用操作字符串的函数
- Mybatis源码阅读(二):动态节点解析2.1 —— SqlSource和SqlNode
- 本周开课 | 第 17 期高级转录组分析和R数据可视化火热报名中!!!
- Python 命令行解析器argparse及传参数详解
- cts测试linux指令skip,linux – dd命令中seek和skip之间有什么区别?
- ubuntu常用状态查看命令
- PaddlePaddle(4)——简单高效的部署与推理方法(Ⅰ)
- Tensorflow官方文档学习理解 (五)-卷积MNIST
- CentOs下编译安装nginx
- 6、numpy之文件保存与加载
- Laravel 下使用 FFmpeg 处理多媒体文件
- 傻,是不值得同情和原谅的事情
- 74.【JavaWeb -02】
- 基于videojs 实现javascript弹幕功能
- QT中使用GDAL多线程读取遥感图像到QImage
- C#隐藏tabcontrol
热门文章
- 正确使用计算机键盘和鼠标,你真的会用鼠标吗?鼠标使用全揭秘
- 使用 Fresco 实现大图浏览(支持手势放大、拖拽)
- Andriod 虚拟机
- pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库
- 股市大涨该买吗?教你用算法量化交易行为!
- 神经网络人口预测matlab,利用MATLAB工具模拟实现人口预测实例分析.doc
- 【Writeup】2017陕西网络空间安全技术大赛CSTC misc部分
- 【STM32标准库】【基础知识】时钟系统
- 网络时间同步设备(时钟同步产品)时钟系统应用技术介绍
- MySQL数据库下载与安装