第一次实验

  • 一、QUARTUS II的简单上手及基本操作
    • 1、项目的创建
    • 2、两种方法实现38译码器
      • 一、纯原理图法
        • 1.1**新建一个图形设计文件**
        • 1.2 **放置元器件**
        • 1.3 主要使用到的元器件的种类
        • 1.4 **按图连线**
        • 1.5 **编译**
        • 1.6 仿真
        • 1.7 设置引脚,准备下载!
        • 总结一下
    • 二、纯VHDL
      • 2.1创建vhd文件
      • 2.2 导入常用库
      • 2.3 编写实体
      • 2.4 编写结构体
    • 3、拓展题

一、QUARTUS II的简单上手及基本操作

找了好多好多,感觉网上都不太人性化,所以自己记录了一下自己写的,还是有点意思的的,但是这前面的没啥意思,到后面连起来用的时候就有意思了!

1、项目的创建

1、File -> New Project Wizard
后面没有选择, 一路无脑下来,项目就已经安装好了!

2、两种方法实现38译码器

一、纯原理图法
1.1新建一个图形设计文件

1.2 放置元器件

只要在如下区域双击,就可以开始放置元器件了!
基本上用得了的就是如下栏

1.3 主要使用到的元器件的种类
  1. NOT(可以直接用搜索框搜,没必要傻傻的找)
  2. AND
1.4 按图连线

1.5 编译



显示这个就算成功了,然后可以先看下效果,就是仿真一下,看看是不是自己想要的结果

1.6 仿真

1.6.1 新建一个VWF文件

1.6.2 设置仿真文件

1.6.3 在in 端口设置输入波形信号

可以直接框选几栏,然后再工具栏设置高低电平

也可以框选几栏,然后双击,就可以设置这里的值

小tips: 可以将这里的进制位改为十进制,因为可以看起来很方便(主要是懒得换算,输入一位就可以达到二进制四位的效果。)

设置成这样就可以了,表示1.2.3…

1.6.4 开始仿真

会弹出一个新页面,显示出仿真波形。仿真就这样结束了,说明符合我们的预期

1.7 设置引脚,准备下载!

Assignments->Pin Planner


在这里输入对应的引脚号就行,然后直接退出

Tools->Programmer,下面对着书搞就行。(开发板不在身边,下不了程序)

总结一下
  1. 创建项目

  2. 创建图形设计文件

  3. 选择元器件

  4. 画图

  5. 编译

  6. 仿真

  7. 选择引脚

  8. 下载

    二、纯VHDL

    相同步骤省略,只关注VHDL

    2.1创建vhd文件


g)]

小tips:看个人喜好,我喜欢用Notepad来代替quartus ii的编译

2.2 导入常用库

类似与c语言的Include 和python 中的import(一般无脑导入就行)

Library IEEE;
Use IEEE.STD_LOGIC_1164.all;
2.3 编写实体

实体,就是主要就是定义要使用的端口,注意,实体名称一定要和vhdl文件名称一样,否则报错

Entity sch38yimaqi_vhdl ISPort(input1:IN std_logic_vector (2 DOWNTO 0); D:OUT std_logic_vector (7 DOWNTO 0));
End;
2.4 编写结构体

结构体的感觉更像是其他语言里面函数之类的感觉,就是去实现功能,这里一个并行就可以完成

ARCHITECTURE behave OF sch38yimaqi_vhdl ISBEGINPROCESS(input1) --进程程序,程序顺序执行BEGINCASE input1 ISWHEN "000" =>   D<="11111110";   -- 八位,当输入为000时,只有最后一位置0WHEN "001" =>   D<="11111101";WHEN "010" =>   D<="11111011";WHEN "011" =>   D<="11110111";WHEN "100" =>   D<="11101111";WHEN "101" =>   D<="11011111";WHEN "110" =>   D<="10111111";WHEN "111" =>   D<="01111111";WHEN OTHERS =>  D<="11111111";END CASE;END PROCESS;
END;

没有在学校的fpga的板子上试验过,如果运行不成功的话,应该只要修改一下逻辑值就够了,就是0 1 那些。

3、拓展题

1、 LED9-LED12全部灭掉,无非就是让led的那些端口全部置0(假如设置1 为亮的话),可以在定义端口的时候,直接给他们赋初值的时候就直接解决掉他们。

 D4:OUT std_logic_vector (3 DOWNTO 0):="0000");   -- 初始化D9-D12   置低点位,不亮。

2、添加使能端的问题,同样也是一样的,只要添加一个if的判断语句就可以解决

ARCHITECTURE behave OF sch38yimaqi_more IS
BEGINPROCESS(input1) --进程程序,程序顺序执行BEGINIF EN='1' THEN                           -- 当使能为1时,进行有效译码CASE input1 ISWHEN "111" =>   D<="00000001";   -- 八位,当输入为000时,只有最后一位置0    实验led亮为1   按键摁下为0WHEN "110" =>   D<="00000010";WHEN "101" =>   D<="00000100";WHEN "100" =>   D<="00001000";WHEN "011" =>   D<="00010000";WHEN "010" =>   D<="00100000";WHEN "001" =>   D<="01000000";WHEN "000" =>   D<="10000000";WHEN OTHERS =>  D<="00000000";END CASE;ELSIF EN='0' THEN                        -- 不需要译码时,使能端置0,全部输出低电平D<="00000000";END IF;END PROCESS;
END;

3、流水灯的实现具体可以参考另外一篇,这里主要是有两种思路

第一种,就是用rol函数(就是沿着向量右移一位)

可以参考这个

PROCESS(tim)                                        -- 含有多个进程语句,都为并行执行
BEGINIF(tim'event and tim = '1') THENsta <= sta rol 1;END IF;
END PROCESS;

第二种是,直接连接向量的头,也可以达到移位的效果

 BEGINIF(tim'event and tim = '1') THENsta <= sta(6 DOWNTO 0) & sta(7);END IF;END PROCESS;

4、字太多了,不想看
完全代码如下

Library IEEE;
Use IEEE.STD_LOGIC_1164.all;
Entity sch38yimaqi_more ISPort(input1:IN std_logic_vector (2 DOWNTO 0); EN:IN std_logic;D:OUT std_logic_vector (7 DOWNTO 0);D4:OUT std_logic_vector (3 DOWNTO 0):="0000");   -- 初始化D9-D12   置低点位,不亮。
End;
ARCHITECTURE behave OF sch38yimaqi_more IS
BEGINPROCESS(input1) --进程程序,程序顺序执行BEGINIF EN='1' THEN                           -- 当使能为1时,进行有效译码CASE input1 ISWHEN "111" =>   D<="00000001";   -- 八位,当输入为000时,只有最后一位置0    实验led亮为1   按键摁下为0WHEN "110" =>   D<="00000010";WHEN "101" =>   D<="00000100";WHEN "100" =>   D<="00001000";WHEN "011" =>   D<="00010000";WHEN "010" =>   D<="00100000";WHEN "001" =>   D<="01000000";WHEN "000" =>   D<="10000000";WHEN OTHERS =>  D<="00000000";END CASE;ELSIF EN='0' THEN                        -- 不需要译码时,使能端置0,全部输出低电平D<="00000000";END IF;END PROCESS;
END;

实验一:38译码器的VHDL实现及原理图实现相关推荐

  1. 3-8 译码器设计实验--VHDL

    一.实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习使用原理图方法进行逻辑设计输入,并初步了解可编程器件设计的全过程 (3)熟悉ALTERA公司EDA设计工具软件Quartusll ...

  2. 记录使用Spartan-6 FPGA进行一次3-8译码器实验

    之前仔细的记录过一次PWM蜂鸣器的实验,见博文:全过程实现一个最简单的FPGA项目之PWM蜂鸣器控制,这里就不再仔细的写下全过程了,因为都是一样的过程,只记录一下做这个小实验的思路即可. 3-8译码器 ...

  3. VHDL编写3-8译码器

    VHDL编写3-8译码器 3-8译码器是由3个输入端和8个输出端组成的译码器,实现3位二进制数转换成10进制的输出(用高低电平来表示输入输出)真值表如下: 本文用两种方法来实现译码器(case和wit ...

  4. 38译码器数码管c语言代码,38译码器驱动数码管电路图

    使用38译码器来驱动数码管来节省IO端口 (1)什么是38译码器? 38译码器有3个输入端口A.B.C和8个输出端口Y0-Y7.由输入端口控制输出端口的值 (2)为什么要使用38译码器 回想之前的驱动 ...

  5. 用2片3-8译码器拼接成4-16译码器

    用2片3-8译码器拼接成4-16译码器 一.实验内容 1.用两片74138译码器拼接成4-16译码器 2.验证仿真电路的正确性 3.注意观察输出信号的毛刺 二.实验步骤 1,新建工程 2,新建bdf文 ...

  6. 牛客刷题<19>使用3-8译码器实现逻辑函数

    题目:使用3-8译码器①实现逻辑函数_牛客题霸_牛客网 思路:此方法可适合于任何逻辑函数,需要将L=(~A)·C+A·B 逻辑式转换为最小项的形式. 实现逻辑表达式 38译码器的输出实际上包含了输入A ...

  7. 学习笔记——3-8译码器实例(FPGA)

    一.3-8译码器简介 1.简介 译码是编码的逆过程.其功能是将具有特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路称为译码器.如果有n个二进制选择线,则最多可译码转换成2n个数据. ...

  8. 51单片机交通灯(定时器+38译码器+中断)

    51单片机交通灯这个实例主要用到的知识点有: >如何点亮LED >38译码器位选与段选 >定时器控制 >中断控制 #include <reg52.h>/****** ...

  9. (147)Verilog编程:使用3-8译码器实现全减器

    (147)Verilog编程:使用3-8译码器实现全减器 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Verilog编程:使用3-8译码器实现全减器: 5)结束语. ...

  10. 计算机组成原理画出CPU与主存及3-8译码器之间信号线的连接问题

    [前驱知识–主存储器扩展]      主存储器表达方法:字线(地址线) × 位线(数据线)      *CS片选信号线.WE读写控制信号线.A地址线.D数据线. 位扩展(数据线扩充) 例如:两片16K ...

最新文章

  1. anaconda tensorflow 2.3_TensorFlow 速成 | 统计师的Python日记 第13天
  2. python做小程序-抖音最火的整蛊表白小程序如何做出来的?教你用python做出
  3. 高性能网站建设的14个原则
  4. C#中全角与半角的转换
  5. nginx报错:nginx: [alert] could not open error log file: open() “/var/log/nginx/error.log“ failed (2: N
  6. 2016年第七届蓝桥杯C/C++ A组国赛 —— 第三题:打靶
  7. STM32F412应用开发笔记之一:初识NUCLEO-F412ZG
  8. hive 创建访问用户_hive创建角色并赋权
  9. 写给90后快30岁的我们
  10. visual studio code无法连接网络,五种方法
  11. @所有技术人,快来翻开属于你的2021定制日历!
  12. (转)一段如何調用Button.Click事件的故事
  13. 悲剧,当用cywin 写Linux脚本
  14. Dart中dynamic,var,object三者的区别
  15. vscode下载很慢问题处理
  16. [求助]python模拟布丰投针
  17. 古风尚婚纱摄影--决定
  18. 联想台式计算机重装系统教程,联想台式机怎么重装系统?联想台式机重装系统教程...
  19. 【干货】怎么将阿里云ECS的数据下载到本地
  20. 百度网盘加速无限试用_百度网盘上线 单日/单次 加速功能,最低仅需 2 块钱

热门文章

  1. linux缺少libeds.so,OpenSSL鏈接libcrypto.a以靜態方式
  2. 【数据结构试验】树的基本操作
  3. Excel函数大全-12统计函数
  4. 爬虫 推送到discord_如何将自定义表情符号添加到Discord服务器
  5. java代码混淆工具
  6. 官网CentOs7镜像下载详细步骤
  7. java中hashmap按键排序_HashMap按键值排序方法
  8. ACM32 MCU元器件AD封装库
  9. 2020云课堂智慧职教答案计算机,2020云课堂智慧职教答案英语,云智慧职教题库,智慧职教测试答案...
  10. java编程选游戏本还是轻薄本,编程用什么笔记本,超薄本还是游戏本