Verilog HDL 之 8-3编码器

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

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,完成新建设计文件。

如图1.3所示。

图1.3 添加设计文件
4.向设计文件中输入Verilog代码。

1//--------------------------------------------------------------------------------------------------
2//
3// Title : BM8_3
4// Design : exp1
5// Author : wangliang
6//
7//-------------------------------------------------------------------------------------------------
8//
9// Description :
10//
11//-------------------------------------------------------------------------------------------------
12 `timescale 1 ns / 1 ps
13
14 module bm8_3 ( a ,b );
15
16 input [7:0] a ;
17 wire [7:0] a ;
18
19 output [2:0] b ;
20 reg [2:0] b;
21 always @ ( a )
22 begin
23case ( a )
248'b0000_0001 : b<=3'b000;
258'b0000_0010 : b<=3'b001;
268'b0000_0100 : b<=3'b010;
278'b0000_1000 : b<=3'b011;
288'b0001_0000 : b<=3'b100;
298'b0010_0000 : b<=3'b101;
308'b0100_0000 : b<=3'b110;
318'b1000_0000 : b<= 3'b111;
32default : b<= 3'b000;
33 endcase
34 end
35
36// -- Enter your statements here -- //
37
38 endmodule
5. 编译。

点击图1.4中的第二个按钮。

图1.4
6. 分配引脚。

选择Assignments下的Pins选项,进入引脚分配界面,或者对该工程的.tcl 文件进行直接修改。

分配好的引脚如图1.5所示
图1.5 引脚分配
7. 将在Assignments|Device 里面打开Device& Pin Options选项,在Unused Pins 页里面的选择第一项As input。

每次新建的工程编译前必须设置这个选项。

此操作原因:
(1)由于开发板FPGA芯片的许多引脚已经分配给如FLASH存储器等的外围器件或者开发板的某些开关,当运行自己开发的逻辑时,必须把FPGA尚未分配的引脚与测试电路无关的链接断开,否则的那个FPGA复位后这些固定的链接会破坏任务的执行,所以,必须把不用的引脚设置成三态输入信号。

(2)SRAM等设备是低电平其idong,置成高阻态可防止错误地启动类似SRAM的设备。

(3)为了降低功耗,一般我们的设计都比较小,未用管脚较多,而未用管脚若默认为输出低电平,则会形成电流回路,产生较大的功耗。

8. 全部编译。

点击图1.4中的第一个按钮。

9. 烧写到目标板。

点击图1.4中的倒数第三个按钮,等烧写完毕查看实验板结果,并且可以和仿真结果进行比对。

(仿真方法请参考链接。


将开关选择跳线选择至低8位拨动开关,利用低BIT7~BIT0位作为输入,LED2、LED1、LED0作为输出(图中红线标出部分)。

实验结果:
BIT7~BIT0当中的一个打开时,LED的灯对应亮着,如果有多个打开,则LED的灯是灭着的。

相关文档
最新文档