十六进制七段数码显示译码器
、实验目的:学习7段数码显示器的Verilog硬件设计 、实验原理:7段数码显示器是纯组合电路。通常的小规模专用
IC,如74
或4000系列的器件只能做十进制BCD码译码器(其真值表如图(1)所示),然而数字系 统中的数据处理和运算都是二进制的,所以输出表达式都是十六进制的,为了满足十六进制的 译码显示,最方便的方法就是
Verilog译码程序在
FPGA/CPL冲来实现。所以首先要设计一段程序。设输入的 4位码为A[3:0],输
出控制7段共阴数码管(如图(2)所示)的7位数据为LED7S[6:0]输出信号LED7S勺7位 接共阴数码管的7个段,高位在左,低位在右。例如当LED7S俞出为\"时,数码管7个段 g、f、e、d、c、b、a 分别接 1、1、0、1、1、0、1;
接有高电平的段发亮,于是数码管显示“5” o这里没有考虑表示小数点的发光管,如果要考 虑,需要增加段h,然后将LED7S改为8位输出。
利用
a D O・ { 卜
dM c I■ J
d c dp
ab
卜 C O
却id
图(1) 7段译码器真值表 输入码 代表数据 输入码 输入码 输入码 代表数据 0000 0 1 1000 0001 0010 0011 1001 8 9 A B 2 3 4 5 1010 1011 0100 1100 C D 0101 1101 1110 0110 6 7 E F 0111 s)引脚
1111 图(2) 7段共阴数码管
(b>共胡根
三、实验任务:将设计好的Verilog译码器程序在Quartusll±进行编辑、编译、
综合、适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形输入激励 信号的设 置)。提示:设定仿真激励信号是用输入总线的方式给出输入信号的仿
真数据。
四、实验步骤:
(一)、建立工作库文件和编辑设计文文件 任何一项设计都是一项
Project (工程),而把一个工程下的所有文件放在一
个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文 件,而此文件 夹将被EDA软件默认为Work Library (工作库),所以第一步先根 据自己的习惯,建立个新 的文件夹。
(1新建文件夹:我的习惯在D盘建立并保存工程,我将文件夹取名Test,
(2)输入源程序:打开 Quartus II,选择菜单 File->New->Desig n> VerilogHDL File- ->OK如图1所示)
A HOL < di
H
( Up “I
I ll —
EOIF F.l«
H Or-h|r>© | vl?
SvetorTF/t ilk Q HCI 咖 Tel Script FiM VHDL FiU
HexaiJecimJ |lrrte|.Forridi|
liNh.Me/n<«Lir > Fil*
一 Vrntir.-Mnrb^r) •■hi taawa 门I严乍
In Vem Source! Probes 卜 te Logia Aiialysc-r lrMertac«*「Hu Sac II Look Ar^avs*r File …Vector V/avefum Fiv
Ho
-00 ef TMes
•- AH DI nchid- F4 日 lock Spnbol Fih? ■
Clu Ocixr.rt»»ljn |
匸Oo -.iyr> C< f h - module DECL7S(A丄ED7S); in put[3:0] A; output[6:0] LED7S; reg[6:0] LED7S; always@(A) case(A) 4W000 :LED7S<=7*bO111111; 4'b0001 :LED7S<=7*b0000110; 4*b0010 :LED7S<=7*b1011011; 4'b0011 :LED7S<=7*b1001111; 4W100 :LED7S<=7*b1100110; 4*b0101 :LED7S<=7'b1101101; 4'b0110 :LED7Sv=7'b1111101; 4'b0111 :LED7S<=7*b0000111; 4'b1000 :LED7S<=7'b1111111; 4*b1001 :LED7S<=7,b1101111; 4® 010 :LED7S<=7,b1110111; 4^1011 :LED7Sv=7'b1111100; 4*b1100 :LED7S<=7*bO111001; 4'b1101 :LED7S<=7'b1011110; 4fb1110 :LED7S<=7,b1111001; 4'b1111 :LED7S<=7*b1110001; default:LED7S<=7'bO111111; endcase en dmodule ⑶ 保存文件:完成一步就保存一步是一个好习惯,这样 即使出现意外情况,也不至于以前的努力付诸东流。选择File->Save as,选择保存路径,即刚 才新建 的文件夹Test文件名应与实体名保持一致,即DECL7S点击保存后会跳出“Do you want to create a new project with this file?选择 是”,贝 u 进入如下界面 F fwr Nr«v Fyw. W sd hvtn vou «»w • newcrwrc^ .00 ptvArvrw^ 謬 N・・・ or C2 !QP*eM|l 童・5 F\" Roect Mttt attdb・3 Twl •ntidrm. EDA tool 用691 the YetjftmcMMW MHbr>oi Im f z4g mRCt r II* 点击Next,进入 工程设置”对话框,如图所示 Me/; 'A L re^ory Narw. Ig£ntty oace 1 of X^hil» \"■ sk 些 cr^^orj'talh: pcj»d? 卜.八'Xfe^tzZqa/le^ Wh v is g r trr^ 才 L n pOfecP fDEQTS Wh* e ^9 lc;-^ dc^gr / Iw 肝? ZK郴IM narv n caw :erxw rdmu^ ••卽-Nrt 冷 *・irwr¥rmm -*p:i-n t :DEX UxExAig 1 Sick s > Fnu止 第一行表示工程所在的文件夹,第二行为工程名,可以与顶层文件的实体名保持一致,也可以 另取别的名字,第三行为当前工程顶层文件的实体名。 点击next,进入ADD FILE对话框,如图所示,单击Add All按钮,将工程相关的所有 VHDL文件加进工程,也可以单击“Add..选择性加入,按此步骤建立工程,工程已经自动将 所有文件加进去 了,可以直接点击next,当先直接建立工程时,需要自己添加 New W 哄 AddF 沁 M5] Se cct Nhc nfesg-i fX A-jir to inAhj = r 也亡旳川 t Ckx Atd Al to arid dl de-ygn rikAs rn M k|Ek1 *UI t f /LW I: Mctr. HHW dikJ k¥ lu 1 d-d Add\" 亠00氷3 (4) 选择目标芯片:我们选用的是Cyclonelll系列的EP3C55F484C8,在Family 栏选择芯片系列一一 CycloneHI,在窗口右边的三个下拉列表框选择过滤条件, 分别选择 Package 为 FBGA > Pin count 为 484 和 Speed grade 为 8,点击 Next, 如图所示 New Prqjnt. Wildi d: IF iti 1 次 Device Writings [page 3 広 S I b JBVBJe'r./ &evb& larwA Fwnb I gone: III T tfQgr 曲* L AJID 1 \\ |4M F> • 5C TCIflj tv Ihc Ffcls: • 5xcec gaJ? 0 5fror> sdvmrrd ch .m ・ 5ZEI JH: drvice- sete-clE n Aufli=bb dercn I si M vnr |・・・■ ..... . ...... .. . ..... .......... .. 2 7 芥一 \"呗 弓叭刚 MC '■ MU 豐亍 twnna v? PLl PS 332 1161216 23SE1S0 1 - : EFSCCFWIS ErXAJWMCO 12V 1.2V EF t eOF tif «p mica 12/ III (5) 工具设置:进入EDAT 具设置窗口,有三个选项,分别是选择输入的HDL类型和 综合工具、选择仿真工具、选择时序分析工具,这是除Quartusll自含的所有设计工具以 外的外加的工具,如果不作选择的,表示仅选择 Quartus II自含 的所有设计工具,本次不需要其他的设计工具,可以直接点击 Next (NEW PAojert Wizard EDA Tool Settir-gs 4 of 5] 5 pccifjf th? v Vst > Fimih I 舉消 I (6) 结束设置:进入 工程设置统计”窗口,列出了与此工程相关的设置情况,设置 完成,点击Finish (二) 、编译 配置好后就可以进行编译了,点击 全程编译 Processing Start Compilation命令启动 编译成功后的界面如图所示 Alhy in ■■\" vjic Un KLH- Kin HI K~F .Wl 3旨 n.t解z v (三) 时序仿真 (1 )打开波形编辑器:File->New->Verification/Debugging >Vector Waveform->OK,即出现空白的波形编辑器,如图所示 CFC 2 A 9 f f “ C 0 Q D CC1.7Q v f »«•! zn rr.rw ■■ JJ ⑵设置仿真时间区域:Edit->End Time在Time栏中输入50,单位选择u us”点波形文件 击确定并保存 End T me DLALJ exk?ns;on 二phon?・ r、小用 ;d^ClT« K pel »<'n E rtd le ae wn per i»_n4 Rdd> | 匸 >eer±ien gue? dsnb Narie I Dreeton \"rtnee? (3 )将工程DECL7S的端口信号名选入波形编辑器中:View—>Utility windows- ->Node Finder,在Filter框中选Pins : all (通常是默认选项),然后点击List,贝U显 示出了所有引脚,如图 所示 P 1 Ldak fiT. h Ede-» Fo na 1 «ir ii -g 2 Indude Tycfl ffj LF*CM S Irica iti 叭 口 I A^n-wrij S b«1 2«M1| 11慣 UN Nt 金亏 nad 昨 111a i U (J U 辺.firtaiftl ■J enifliodl 1J Bf priAipil Ug ±rAeiecl U m fintaisd !J «■ Uw?f H r: • ■ I LED 兀 LED?E.|Q| \"LEO75| 1 IlnilFigniwj Inp f Llrz. i:i i nod ii iJpiJGn] UH Un G雋初 UiJpa Oi-RpiJ1 Q L£Li/&|.JI LEQZSRI It L=W5 i»j •LED 細 Ur«*-a5«gne>± n L¥L£ U * Qfi 型 Una-signed D uRpj IJ enieie-d U efitelKI IJ EQI BHIaiBCi 将重要的端口名拖进波形编辑器后关闭窗口 (4)编辑输入波形: A的左边的+号,能 展开此总线中的所有信号;如果双击此+号左边的信号标记,将弹出对该信号数 据格式 设置的Node Properties对话框,在该对话框的Radix下拉列表中有四种 选择,这里可 选择十六进制Hxadecimal表达方式。 首先进行总线数据格式设置和参数设置:点击输入数据信号 Node Properties GeTLeral | Marne: Typo: prjpuT Value t^pe: g 升■从 Radin: I Hexadecimal Bus width I- Display gray code counl as binary count 确定 取 其次输入波形数据:由于A是4位待加载的输入数据,需要设置输入数据。用鼠标在图 所示信号名A的某一数据区拖拉出来一块蓝色区域,然后单击左侧工具栏的问号(?)按 钮,在弹出窗口输入数据,如 0•继而在不同区域设置不同数据。 这里为方便观察,输入的数据依次是 0、1、2、3、4、5、6、7、8 9、MB、C、 D Eo如图所示 Value i r * I ⑹0 u 120 D 陽 日A OrL K2 KO KO 山】 •1[2] rz ■ FJ JVM mi m M KO 3 io ns tlKLU .6) 讨 ••5] Y B -.<1 B ■ A B0 99 3 a 砂 HLI ⑴“B 剧K 8 tM2 (5)仿真 仿真器参数仿真:选择Assignment Settings命令,在Settings窗口下选择 Category Simulator Settingso 在右侧的 Simulation mode 下拉列表中选择 Timing, 即选择时序仿真,并选择仿真激励文件名DECL7S.vwfo选择Simulation Period 确认选中了 “ Run simulation 55 until all vector stimuli are used 。 • ■ * - ■ I E ■ •>itt «|・・iia-r • • «!«r f E•-«WTon et 4U- HhfTccr FPA r?'* Trw FdPb・亠 口 d?LfMHBU«T. I all Mj-i AnrilMr L-*C mM^thcn ■ ISEMIV1 la - ・ Krl ! Mv/rxV Ffw iw fAar Sathn^a 竟hz O 启动仿真器:Processing->Start Simulation ,直至出现 Simulation was successful,仿真结束,然后会自动弹出 ^Simulation Report点击输出信号 展开总线中的所有信号,可以更利于我们观察和分析波形,女口图 LED7S '旁边的“ 所示 (四)应用RTL电路图观察器 ToolsNetlist Viewers->RTL Viewer,结果如图所示 尸.” r«M> | 五、实验总结 经过几周的学习,我觉得FPGA的学习应该做好预习工作,最好提前安装一下 提前练习程序编写应该有很大帮助。 Quartusll, 因篇幅问题不能全部显示,请点此查看更多更全内容