quartus-8-3编码器

合集下载

8-3编码器,3-8译码器的verilog实现

8-3编码器,3-8译码器的verilog实现

8-3编码器,3-8译码器的verilog实现在数字系统中,由于采⽤⼆进制运算处理数据,因此通常将信息变成若⼲位⼆进制代码。

在逻辑电路中,信号都是以⾼,低电平的形式输出。

编码器:实现编码的数字电路,把输⼊的每个⾼低电平信号编成⼀组对应的⼆进制代码。

设计⼀个输⼊为8个⾼电平有效信号,输出代码为原码输出的3位⼆进制编码器。

化简逻辑表达式:由逻辑表达式可以得出,普通的8-3编码器⽤或门即可实现。

对应的verilog程序如下:module mb_83(x,y);input [7:0]x;output [2:0]y;reg [2:0]y;always@(x)begincase (x)8'b00000001:y=3'b000; //当当 x=8 ’b00000001,则则 y 输出为 3 ’b0008'b00000010:y=3'b001; //当当 x=8 ’b00000010,则则 y 输出为 3 ’b0018'b00000100:y=3'b010; //当当 x=8 ’b00000100,则则 y 输出为 3 ’b0108'b00001000:y=3'b011; //当当 x=8 ’b00001000,则则 y 输出为 3 ’b0118'b00010000:y=3'b100; //当当 x=8 ’b00010000,则则 y 输出为 3 ’b1008'b00100000:y=3'b101; //当当 x=8 ’b00100000,则则 y 输出为 3 ’b1018'b01000000:y=3'b110; //当当 x=8 ’b01000000,则则 y 输出为 3 ’b1108'b10000000:y=3'b111; //当当 x=8 ’b10000000,则则 y 输出为 3 ’b111default: y=3'b000;endcaseendendmodule上述编码器有⼀个缺点,即在某⼀个时刻只允许有⼀个有效的输⼊,⽽同时若⼜有两个或两个以上的输⼊信号要求编码,输出端⼀定会发⽣混乱,出现错误。

8线-3线编码器

8线-3线编码器


输 出 I3 0 0 0 1 0 0 I2 0 0 0 1 1 0 0 1 0 0 1 0 0 Y 2 Y 1Y 0 0 0
说明:输入高电平有效,Y2为最高位(8421BCD码)
0
4 0
0
0 0
1
1
根据真值表写函数表达式(与-或式): Y2=I4+I5+I6+I7
Y1=I2+I3+I6+I7 Y0=I1+I3+I5+I7
直接实现 Y2=I4+I5+I6+I7 Y1=I2+I3+I6+I7 Y0=I1+I3+I5+I7
Y2 Y1 Y0
1
I0 I1 I2 I3 I4 I5 I6 I7
1
1
作业:思考设计二—十进制编码器(输入低电平有 效)

输 出 I3 0 0 I2 0 0 Y2 Y1 Y0 0 0
十进 制数 0 1 2 3 4 5 6
输 I7 0 0 1 I6 0 I5 I1 0
入0 0 1 1 2 0 3 0 0 0 0 0 0 0 1 0 0 0 0 0 输 I7 0 1 0 0 0 I6 0 I5 I1 0 入 I4 I0 0
【新授】
例:设计一个 三位二进制编码器。
--- 8 线-3线编码器
八个输入
I0 I1 I2
.
最多能对 几个信号编码?
编 码 器 Y0 Y1 Y2
三位输出
输入:用I0~I7表示0~7这 8个数字,高电平有效; 输出:用Y0、Y1、Y2表示, 高电平有效。
本节课的任务: 设计该编码器
I7
真 值

FPGA Verilog HDL 系列实例--8-3编码器

FPGA Verilog HDL 系列实例--8-3编码器

Verilog HDL 之直流电机PWM控制一、实验前知识准备在上一篇中总结了步进电机的控制,这次我将学习一下直流电机的控制,首先,我们简要了解下步进电机和直流电机的区别。

(1)步进电机是以步阶方式分段移动,直流电机通常采用连续移动的控制方式。

(2)步进电机采用直接控制方式,它的主要命令和控制变量都是步阶位置;直流电机则是以电机电压为控制变量,以位置或速度为命令变量。

(3)直流电机需要反馈控制系统,他会以间接方式控制电机位置。

步进电机系统多半以“开环方式”进行操作。

1、什么是直流电机输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。

当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。

2、什么是PWMPWM(脉冲宽度调制)是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。

3、开发平台中直流电机驱动的实现开发板中的直流电机的驱动部分如图1.1所示。

利用FPGA设计一个0、1组成的双极性PWM发生器。

图1.1 直流电机的驱动部电路二、实验平台Quartus II 7.2 集成开发环境、SOPC-MBoard板、ByteBlaster II 下载电缆三、实验目标1、了解直流电机PWM的控制方法。

2、具有调速功能。

四、实验实现详细实现步骤请参考【连载】FPGA Verilog HDL 系列实例--------8-3编码器1、在设计文件中输入Verilog代码。

66 endmodule2、分析思考:(1)如何控制顺时针转和逆时针转?(2)速度的大小如何控制的?第38行~第53行:由2个引脚控制生成双极性PWM发生器。

结论:(1)以MA_r[0]为准,当状态0的时间大于状态1的时间时,电机逆时针转动;反之,电机顺时针转动。

8-3线_quartus版

8-3线_quartus版

输出 B3 0 0 1 1 0 0 1 1 B4 0 1 0 1 0 1 0 1
广东工业大学电工电子实验中心
Library 库名表; -- 如:IEEE Use 库名.包名.项目名; --Use IEEE.STD_LOGIC_1164.ALL
广东工业大学电工电子实验中心
实体
Entity 实体名 IS PORT(端口名表); -- 描述输入输出信号 End 实体名 ;
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
广东工业大学电工电子实验中心
CASE 语句
CASE语句根据满足的条件直接选择多项 顺序语句中的一项执行,CASE语句的语 法结构如下: CASE 表达式 IS WHEN 选择值 =>{顺序语句}; WHEN 选择值 =>{顺序语句}; …… End CASE;
广东工业大学电工电子实验中心
数ቤተ መጻሕፍቲ ባይዱ对象
信号 Signal 信号名:数据类型[:=初值]; singal temp:STD_LOGIC:=0;
当信号声明了数据类型后,在设计中对信号 赋值,格式为 目标信号名<=表达式; 如: X<=9;
广东工业大学电工电子实验中心
程序实例
Library IEEE ; Use IEEE.std_logic_1164.All ; Entity bm8_3 is port( a:in std_logic_vector(7 downto 0); b:out std_logic_vector(2 downto 0)); End bm8_3; Architecture one of bm8_3 is begin process(a) begin case a is when"00000001"=>b<="000"; when"00000010"=>b<="001"; when"00000100"=>b<="010"; when"00001000"=>b<="011"; when"00010000"=>b<="100"; when"00100000"=>b<="101"; when"01000000"=>b<="110"; when others=>b<="111"; end case; end process ; end one;

quartus-8-3编码器

quartus-8-3编码器

贵州大学实验报告学院:专业: 班级:
case(sw)//下面对8-3编码器的逻辑功能进行描述
8'b0000_0001:led<=3’b000;//
8’b0000_0010:led〈=3’b001;//
8'b0000_0100:led〈=3'b010;//
8'b0000_1000:led<=3’b011;
8'b0001_0000:led〈=3’b100;
8’b0010_0000:led〈=3'b101;
8'b0100_0000:led〈=3’b110;
8’b1000_0000:led<=3’b111;
default:led<=3'b000;//
endcase//
end//顺序语言块结束
endmodule//模块结尾
//图和说明




从图中看出,8-3编码器在8个输入信号输入时会将得到的信号编成一个对应的2进制代码并输出。

当输入信号为00000001时,输出信号为000;输入信号为00000010时,输出信号为001;输入信号为00000100时,输出信号为010;输入信号为00001000时,输出信号为011;输入信号为00010000时,输出信号为100;输入信号为00100000时,输出信号为101;输入信号为01000000时,输出信号为110;输入信号为10000000时,输出信号为111,由此实现了8—3编码器的功能。

注:各学院可根据教学需要对以上栏木进行增减.表格内容可根据内容扩充.。

quartus(4选1和编码器)

quartus(4选1和编码器)

课程名称: FPGA原理实验实验名称:选择与编码器姓名: xxx 学号:xxx一、预习报告1、实验目的1、设计并实现4选1选择器2、设计并实现一个8线-3线优先编码器2、实验内容与实验步骤1、启动QuartusⅡ建立一个空白工程,然后命名;2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在过程中发现错误,则找出并更正错误,直至编译成功为止;3、新建仿真文件,对各模块设计进行仿真,验证设计结果;4、选择目标器件,将未使用的管脚设置为三态输入;5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。

3、实验环境计算机(装有QuartusⅡ软件)二、实验报告1、实验数据处理4选1数据选择器(1)程序输入课程名称: FPGA原理实验实验名称:选择与编码器姓名: xxx 学号:xxx (2)RTL图(3)功能仿真(4)时序仿真课程名称: FPGA原理实验实验名称:选择与编码器姓名: xxx 学号:xxx (5)引脚分配8线-3线优先编码器(6)程序输入课程名称: FPGA原理实验实验名称:选择与编码器姓名: xxx 学号:xxx (7)RTL图(8)功能仿真(9)时序仿真课程名称: FPGA原理实验实验名称:选择与编码器姓名: xxx 学号:xxx(10)引脚分配2、实验结论成功实现了4选1数据选择器和8线-3线优先编码器的逻辑功能。

3、实验体会和建议通过本次实验,学会了选择器和编码器的程序,加深了when-else语句和if语句的使用,对选择器和编码器的原理与逻辑功能有了进一步的了解。

卡诺图法化简8-3编码器的探讨


+ I d 1 i 2 I 3 i j 5 I 6 I 7 , Y0 = I o I l i 2 i 3 i 4 i 5 I 6 I 7 + I o l l i 2 I 3 I 4 I 5 I 6 I 7 + I o I l I 2 I 3 I A 5 I 6 I 7 + I o I l I 2 I 3 I 4 I 5 I 6 I 7 .
1 6列 .这 1 6行 1 6列 最 小项 的排 列 必须 满 足具 有
I 。 , I 。 , l , I , I , I , I , I 的取值组合有 2 5 6 种 ,但由于 普通 编码 器 最多 只允 许输 人 一个 有效 电平 ,因此 能 出现 的取 值组 合 只有八 种 ,剩 下 的 2 4 7个 取 值 组合是 约束 项. 其真值 表如表 1 所示 .
O O 0 0
O 1 0
0 0 0 0
0 0 l
O O 0 l
1 l l
0 l 1 0
O 1 l
Байду номын сангаас
l 0 1 0
l 0 1
行 的二进 制 编码 ;第 三行 是第 二 行对 应 的格 雷
Yl = I o I l I 2 I 3 I , I s I 6 I 7 + I o I l I 2 I 3 I 4 1 5 I 6 I 7 + I o i l 1 2 1 3 I , I 5 I 6 I 7
辑 电路部分 中主要掌握的内容之一. 编码器是实现 二进 制码 表示 十进 制 的 电路 , 即编码 器 的输 入是 二进制 , 输 出是与其对应的十进制. 普通 编码器的 输 入 是高 电平 有效 ,而且 每 次 只能最 多输 入 一个 有 效 电平. 许 多 教材里 讲 的是 以 8 — 3编码 器 为例 的 普 通 编码 器 ,由于八 个变 量 的真 值表 及 化 简较 复 杂 ,因此 没有 给 出完 整 的真值 表 和逻 辑 函数 表达 式 的计 算过 程.

Verilog-HDL-之-8-3编码器学习资料

V e r i l o g-H D L-之-8-3编码器Verilog HDL 之 8-3编码器原理:在数字系统中,常常需要将某一信息(输入)变换为某一特定的代码(输出)。

把二进制码按一定的规律排列,例如8421码、格雷码等,使每组代码具有一特定的含义(代表某个数字或是控制信号)称为编码。

具有编码功能的逻辑电路称为编码器。

编码器有若干个输入,在某一时刻只有一个输入被转换为二进制码。

例如8线-3线编码器和10线-4线编码器分别有8输入、3位输出和10位输入、4位输出。

下面是8-3编码器的真值表。

实验环境:硬件:AR2000核心板、SOPC-MBoard板、PC 机、ByteBlaster II 下载电缆软件:ModelSim 、Altera Quartus II 7.2 集成开发环境。

实验步骤:1.打开Quartus II 7.2软件,选择File | New Project Wizard新建一个工程,在对话框中第一行选择工程路径,并为该工程新建一个文件夹。

本例中第二行输入工程名bm8_3;第三行是工程顶层设计文件名,该顶层设计文件名一定要与设计文件中模块名module一致,可以与工程名不同,但一般都和工程名一致。

如图1.1所示。

图1.1 在Quartus II中新建工程2.单击“Next”,此对话框是向工程中添加设计文件的。

现在还没有写设计文件,所以没有文件可以添加;直接单击“Next”,进入器件选择对话框。

在Family下拉菜单中选择Cyclone II 系列。

然后在Filters下的Package下拉菜单中选择封装形式FBGA,Pin count下拉菜单中选择管脚数672,Speed grade下拉菜单中选择速度级别8;然后在Available devices中选择EP2C35F672C8器件。

如图1.2所示。

图1.2 选择FPGA器件3.单击Finish,建立好工程。

向工程中添加设计文件,选择File | New ,在New对话框中选择Device Design Files下的Verilog HDL File,单击OK,完成新建设计文件。

8-3优先编码器

8-3优先编码器⾸先,实现可以参考这篇博客我的代码跟⽹上的是⼀样的,师兄给出了其他写法,有空再补。

module coder_83(input [7:0] data_in,input en_in_n,output reg [2:0] code_out,output reg en_out,output reg state);always@(en_in_n or data_in) beginif(en_in_n) begincode_out <= 3'b111;en_out <= 1;state <= 1;endelse if (data_in[7] == 0) begincode_out <= 3'b000;en_out <= 1;state <= 0;endelse if (data_in[6] == 0) begincode_out <= 3'b001;en_out <= 1;state <= 0;endelse if (data_in[5] == 0) begincode_out <= 3'b010;en_out <= 1;state <= 0;endelse if (data_in[4] == 0) begincode_out <= 3'b011;en_out <= 1;state <= 0;endelse if (data_in[3] == 0) begincode_out <= 3'b100;en_out <= 1;state <= 0;endelse if (data_in[2] == 0) begincode_out <= 3'b101;en_out <= 1;state <= 0;endelse if (data_in[1] == 0) begincode_out <= 3'b110;en_out <= 1;state <= 0;endelse if (data_in[0] == 0) begincode_out <= 3'b111;en_out <= 1;state <= 0;endelse if (data_in == 8'b11111111) begincode_out <= 3'b111;en_out <= 0;state <= 1;endelse begin // in case of genetaring latch, while many examples ignore this stepcode_out <= 3'b111;en_out <= 1;state <= 1;endendendmodule以及testbench`timescale 1ns/1psmodule coder_83_tb();reg [7:0] data_in;reg en_in_n, clk;wire en_out;wire state;wire [2:0] code_out;coder_83 u_coder_83(.data_in(data_in),.en_in_n(en_in_n),.en_out(en_out),.state(state),.code_out(code_out));always #20 clk = ~clk;always@(posedge clk) beginif(!data_in)data_in <= 8'b11111111;elsedata_in <= data_in << 1;endinitial beginclk = 0;data_in = 8'b11111111;en_in_n = 1;# 100 en_in_n = 0;# 5000 en_in_n = 1;endendmodule但是vivado综合的时候就很奇怪,出现了⼀个ROM。

EDA课程设计报告-8-3优先编码器EDA课程设计报告

Xxxx大学课程设计任务书课程硬件课程设计题目 8-3优先级编码器设计专业姓名学号主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计8-3优先编码器。

可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。

最后在EL教学实验箱中实现。

二、基本要求:设计并实现一个8-3优先级编码器,要求I0优先级最高,I7优先级最低,编码输出为原码。

三、扩展要求:输入端加使能端,在使能端为有效的低电平时,进行编码;在使能端为无效的高电平时,输出高阻状态。

四、参考文献:[1] 杨刚,龙海燕.现代电子技术-VHDL与数据系统设计.北京:电子工业出版社,2004[2] 黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006[3] 潘松.VHDL实用教程[M].成都:电子科技大学出版社,2000[4] 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000[5] 宋振辉. EDA技术与VHDL.北京:北京大学出版社,2008完成期限18-19周指导教师张岩专业负责人富宇2011年6月28日目录第1章概述 (1)1.1 EDA的概念 (1)1.2 EDA技术及应用 (2)1.3 EDA技术发展趋势 (2)1.4 Quartus II特点介绍 (3)第2章硬件描述语言——VHDL (4)2.1 VHDL的简介 (4)2.2 VHDL语言的特点 (4)2.3 VHDL的设计流程 (5)第3章 8-3优先编码器的设计 (6)3.1 编码器的工作原理 (6)3.2 8-3优先编码器的设计 (6)3.3 8-3优先编码器仿真及分析 (7)3.4 在实验箱上实现8-3优先编码器 (8)结论 (11)参考文献 (12)第1章概述1.1EDA的概念EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学实验报告学院:专业:班级:




//图和说明
从图中看出,8-3编码器在8个输入信号输入时会将得到的信号编成一个对应的2进制代码并输出。

当输入信号为00000001时,输出信号为000;输入信号为00000010时,输出信号为001;输入信号为00000100时,输出信号为010;输入信号为00001000时,输出信号为011;输入信号为00010000时,输出信号为100;输入信号为00100000时,输出信号为101;输入信号为01000000时,输出信号为110;输入信号为10000000时,输出信号为111,由此实现了8-3编码器的功能。

实验总结1、从这次实验中学会了QuartusII的使用方法。

2、学会使用vector wave波形仿真。

3、学会了在做新的实验时需要关闭前一个建立的工程。

4、代码的大小写不能随意更改,如果发生变化,将不能运行。

指导
注:各学院可根据教学需要对以上栏木进行增减。

表格内容可根据内容扩充。

相关文档
最新文档