当前位置:文档之家› 数据选择器Verilog HDL程序

数据选择器Verilog HDL程序

数据选择器Verilog HDL程序
数据选择器Verilog HDL程序

数据选择器Verilog HDL语言

一、2选1数据选择器

1、数据流描述方式

module SEL2_1(A,B,SEL,F);

input A,B,SEL;

output F;

assign F=~SEL&A|SEL&B;

endmodule

2、行为描述方式

module SEL2_1(A,B,SEL,F);

input A,B,SEL;

output F;

assign F=SELE2_1_FUN(A,B,SEL);

function SELE2_1_FUN;

input A,B,SEL;

if(SEL==0) SELE2_1_FUN=A;

else SELE2_1_FUN=B;

endfunction

endmodule

二、4选1数据选择器

行为描述方式

Module sele4_1(a,b,c,d,sel,f);

Input a,b,c,d;

Input [1:0]sel;

Output f;

Assign f=sele4_1_fun(a,b,c,d,sel);

Function sele4_1_fun;

Input a,b,c,d;

Input [1:0]sel;

Case(sel)

2’b00:sele4_1_fun=a; 2’b01:sele4_1_fun=b; 2’b10:sele4_1_fun=c; 2’b11:sele4_1_fun=d; Endcase Endfunction Endmodule

Verilog~HDL~电梯程序

这个程序不需要你再添加任何的程序,你只需要添加楼层数就可以成功控制6层以上电梯,另外你必须得读懂每一块程序的作用,才能对这个程序有更好的应用 module dtsj(clk,reset,up1,up2,up3,up4,up5,dn2,dn3, dn4,dn5,dn6,d1,d2,d3,d4,d5,d6,overw,pro,led,hex,Buzzer1,lig); input clk,reset; //reset键使用key input overw,pro,up1,up2,up3,up4,up5,dn2,dn3,dn4,dn5,dn6,d1,d2,d3,d4,d5,d6; //故障警报键 output[6:0] hex,lig; //light和led用数码管 output[5:0] led; output Buzzer1; reg Buzzer1,door; reg[6:0] hex,lig; reg[2:0]state,next_state,count; reg[5:0] d,up,dn,now_f,curr,led; //d是部按键,up外部上升按键,dn是外部下降按键, //now_f是当前楼层,curr是当前楼层的另外一个变量 reg[1:0] ud_f; //上升下降标志位 reg light; //reg[29:0] counter; //regclkout; parameter idle_state=3'b001,open_state=3'b010,close_state=3'b011, up_state=3'b100,down_state=3'b101,sleep_state=3'b110, alarm_state=3'b111,f1=6'b000001,f2=6'b000010,f3=6'b000100,f4=6'b001000 ,f5=6'b010000,f6=6'b100000,up_f=2'b01,dn_f=2'b10,idle=2'b00; //jiuzhongzhuangtai he shang sheng zhuang tai 'shang sheng zhuang tai he xiajiazhuang tai initial begin state<=idle_state; end always (posedgeclk or posedge reset) if(reset) state<=idle_state; else state<=next_state; always (state or up or dn or d or now_f or count or ud_f) case(state) open_state: begin if(count<5)

2选1多路选择器 EDA实验报告

EDA实验报告 学生姓名:asfmla;m 学号:eafvpa[cv专业班级:电子3班 组合电路设计 一、实验目的 熟悉quartusⅡ的VHDL文本设计全过程,学习简单组合电路的设计、多层次电路设计、仿真。 二、实验内容 实验内容:首先利用quartusⅡ完成2选1多路选择器(例4-3)的文本编译输入(mux21a.vhd)和仿真测试等步骤,最后在实验系统上硬件测试,验证此设计的功能。将此多路选择器看成一个元件mux21a,利用元件例化语句描述成三选一,然后进行编译、综合、仿真。引脚锁定以及硬件下载测试。建议选实验电路模式5,用键1(PIO0)控制s0;用键2(PIO1)控制s1;a3、a2和a1分别接clock5、clock0和clock2;输出信号outy仍接扬声器spker。通过短路帽选择clock0接256HZ信号,clock5接1024HZ信号,clock2接8HZ信号。最后选行编译、下载和硬件测试实验。 三、实验器材 Quartus II软件。 四、设计思路/原理图 五、实验程序 实验内容1:二选一: library ieee; use ieee.std_logic_1164.all; entity mux21a is port(a,b: in std_logic; s: in std_logic; y: out std_logic); end entity; architecture dataflow of mux21a is begin

y<=a when s='0' else b; end architecture; 实验内容2:三选一 library ieee; use ieee.std_logic_1164.all; entity mux31a is port(a1,a2,a3: in std_logic; s0,s1: in std_logic; outy: out std_logic); end entity mux31a; architecture m31a of mux31a is component mux21a port( a,b: in std_logic; s: in std_logic; y: out std_logic); end component; signal tmp: std_logic; begin u1: mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp); u2: mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy); end architecture; 六、实验步骤 在E盘新建一个文件夹,用于存放工程。打开quartus,新建工程,然后选择新建VHDL 文件,命名为mux21a。在VHDL编辑窗口中输入实验程序后,进行编译、仿真;在实验一的基础上,新建VHDL文件,命名为mux31a。在VHDL编辑窗口中输入实验程序后,进行编译、综合、仿真;最后进行硬件测试。 七、仿真波形分析 二选一波形: 分析:当s=0时,y=a;当s=1时,y=b。 三选一综合图形及其波形

2输入数据选择器(mux2)集成电路课设报告

课程设计任务书 学生姓名:助人为乐专业班级:不计得失 指导教师:一定过工作单位:信息工程学院 题目: 二输入数据选择器版图设计 初始条件: 计算机、ORCAD软件、L-EDIT软件 要求完成的主要任务: 1、课程设计工作量:2周 2、技术要求: (1)学习ORCAD软件、L-EDIT软件软件。 (2)设计一个二输入数据选择器电路。 (3)利用ORCAD软件、L-EDIT软件对该电路进行系统设计、电路设计和版图设计,并进行相应的设计、模拟和仿真工作。 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 2013.11.22布置课程设计任务、选题;讲解课程设计具体实施计划与课程设计报告格式的要求;课程设计答疑事项。 2013.11.25-11.27学习ORCAD软件、L-EDIT软件,查阅相关资料,复习所设计内容的基本理论知识。 2013.11.28-12.5对二输入数据选择器电路进行设计仿真工作,完成课设报告的撰写。 2013.12.6提交课程设计报告,进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 1.绪论 (2) 2.软件简介 (3) 2.1Cadence简介 (3) 2.2L-edit简介 (3) 3.二输入多路选择器电路设计及仿真 (4) 3.1数据选择器原理 (4) 3.2电路原理图的绘制 (5) 3.3电路图仿真 (6) 4.集成电路版图设计 (7) 4.1CMOS数字电路基本单元版图设计 (7) 4.1.1反相器版图设计 (7) 4.1.2与非门版图设计 (8) 4.2整体版图设计 (9) 4.3设计规则的验证及结果 (9) 5.总结 (10) 参考文献 (11)

数电实验考试 verilogHDL语言及参考程序

题目一:表决器电路设计 一、设计任务及原理:所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。 七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。 二、具体要求: 本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票;LED模块中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。 在此实验中数码管、LED、拨动开关与FPGA的连接电路和管脚连接使用模块 信号 对应FPGA 管脚 说明

在以前的实验中都做了详细说明,这里不在赘述。端口名 S1 按键开关 S1 R16 表示1号抢 答者 S2 按键开关 S2 P14 表示2号抢 答者 S3 按键开关 S3 P16 表示3号抢 答者 S4 按键开关 S4 P15 表示4号抢 答者 S5 按键开关 S5 M15 表示5号抢 答者 S6 按键开关 S6 N16 表示6号抢 答者 S7 按键开关 S7 N15 表示7号抢 答者 DOUT0 LED模块D1 L14 表决结果 亮为通过 LEDAG0 数码管模 块A段N4 抢答成功 者 号码显示 LEDAG1 数码管模 块B段 G4

EDA技术与应用的二选一选择器

EDA 技术与应用的二选一选择器 学院名称: 东方学院 专 业: 电子信息工程 班 级: 学 号: 姓 名: 指导教师姓名: 指导教师职称: 2007年 4 月24日 JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 本科课程设计(论文)

二选一选择器 一.设计目的 1.学习VHDL编程; 2.进一步熟悉实验箱电路; 二.设计指标及功能要求 设计指标: (1)对所设计的小系统功能正确分析; (2)基于VHDL语言描述系统的功能; (3)在QUARTUSⅡ环境中编译通过; (4)仿真通过,并得到正确的波形; (5)给出相应设计报告; 功能要求:1.用VHDL语言设计可控加减计数器; 2.至少两层电路,底层有三种元件; 3.使得其执行可控加,减记数; 三.实验步骤 1.建立Light目录,用于存放本实验所建立的文本 2.点击“File New”,在出现的对话框中,选择“VHDL File”进入文本编辑器。 3.输入VHDL语言源文件。 4.点“Save as”,保存该源文件。 5.进行编译,点“start compilation”,若语句有错会有提示,修改后重新编译直到无错误。

6.点“File New”,选择“Vector Waveform File”,建立仿真输入文件. 7.点“End time”,输入终止时间(表示波形长度).点“light”将所有信号选中或部分选中。点“start simulation”.运行波形,直至正确。 四、电路工作原理 首先,用异或门控制输入端,加一个脉冲信号。在其后方分别加上加法计数器和减法计数器:来一个脉冲,当异或门输出为0时,减法计数器开始工作,当输出为1时,加法计数器工作。这样,利用给异或门加不同的信号来控制加减计数器。 五.各子模块设计与调试过程 library ieee; use ieee.std_logic_1164.all; entity ora is port(a:in std_logic; b:out std_logic); end entity; architecture one of ora is begin b<=not a; end architecture;

VerilogHDL经典程序非常适合新手

一、2线-4线译码器 module counter4(q1,q0,ncr,cp); input cp,ncr; output q1,q0; reg q1,q0; always@(posedge cp or negedge ncr) begin if(~ncr){q1,q0}<=2'b00; else{q1,q0}<={q1,q0}+1'b1; end endmodule 二、4选1数据选择器 module selector4_1(i0,i1,i2,i3,a1,a0,y); input i0,i1,i2,i3,a1,a0; output y; reg y; always@(a1or a0) begin case({a1,a0}) 2'b00:y=i0; 2'b01:y=i1; 2'b10:y=i2; 2'b11:y=i3; default:y=0; 一、2线-4线译码器 module counter4(q1,q0,ncr,cp); input cp,ncr; output q1,q0; reg q1,q0; always@(posedge cp or negedge ncr) begin if(~ncr){q1,q0}<=2'b00; else{q1,q0}<={q1,q0}+1'b1; end endmodule 二、4选1数据选择器 module selector4_1(i0,i1,i2,i3,a1,a0,y); input i0,i1,i2,i3,a1,a0; output y; reg y; always@(a1or a0) begin case({a1,a0}) 2'b00:y=i0;

1、VerilogHDL设计流程

1、Verilog HDL 设计流程: 1、文本编辑:文件保存为.v的文件; 2、功能仿真:将.v文件调入HDL仿真软件,逻辑功能是否正确(前仿真); 3、逻辑综合:将源文件调入逻辑综合软件进行综合,把语言综合成最简的布尔表达式,生成.edf的EDA工业标准文件;矚慫润厲钐瘗睞枥庑赖。 4、布局布线; 5、时序仿真:验证电路的时序(后仿真)。 2、Verilog 程序包括四部分: 1、端口定义 2、I/O口说明 3、内部信号声明 4、功能定义 3、逻辑功能定义: 三种方法在模块中产生逻辑: (1)用assign 声明语句;如assign a = b & c;(描述组合逻辑) (2)用实例元件;如and #2 u1(q,a,b); (3)用always块;如(既可描述组合逻辑也可描述时序逻辑) always @ (posedge clk or posedge clr) begin if(clr) q <= 0; else if(en) q <= d; end 4、网络类型变量 两种:wire tri Wire型变量:用来表示单个门驱动或连续赋值语句驱动的网络类型数据。 Tri 型变量:用来表示多驱动器驱动的网络型数据。 线网类型两种:wire tri Tri 主要用于定义三态的线网; Wire型:代表的是物理连接,不存储逻辑值,要由器件驱动,通常用assign进行赋值Wire类型的信号没被驱动,缺省值为Z(高阻);信号没有定义数据类型时,缺省为wire 类型。(缺省==默认)聞創沟燴鐺險爱氇谴净。 Reg型:默认初始值为x,通常用always模块内的指定信号,常代表触发器; always模块内被赋值的每一个信号都必须定义为reg型。(寄存器类型) Verilog HDL 有5种寄存器类型: reg、integer、time、real、realtime 5、运算符号所带操作数 单目运算符:可带一个操作数,操作数放在运算符右边 双目运算符:可带两个操作数,操作数放在运算符两边 三目运算符:可带3个操作数,用三目运算符分隔开 6、底层模块的调用:底层模块(被测试模块)可由测试模块调用 如:(位置关联方式) : AND_G2 AND_G2(A,B,F); 第一个AND_G2 为底层模块名,第二个为实例名,(A,B,F)为参数定义。 语法结构为:底层模块名实例名参数定义

简单自动售货机VerilogHDL程序

自动售货机VerilogHDL程序 一个简单的自动售卖饮料机的程序。该机器具有投币,显示余额,购买六种饮料,退钱等功能,为了更具实用性,增添了饮料选择允许提示和投币允许提示的功能。具体形容,可投入一元、五元、十元和二十元面值的钱币,显示出当前的余额,并根据当前的余额提示能购买哪些饮料,选择某种饮料,则输出选定的饮料,同时余额减去相应的金钱。若选择退钱,机器就退出所有的钱,余额清零。 下图为功能示意图: 程序的状态表:

程序中包含了一个状态机,定义了一个任务(task)和函数(function),用该任务调用了该函数,使用若干分支语句,详见附后源程序和测试程序。 附上程序编译仿真图:

源程序如下: `define one 3'b001 `define five 3'b010 `define ten 3'b011 `define twenty 3'b100 module automart(money,state,moneyout,coinable,adrkable,bdrkable, cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5, drkout6,coin,clk,reset,moneyback,choice1,choice2, choice3,choice4,choice5,choice6); input[2:0] coin;//投币输入,分为1、5、10、20元四种输入 input clk,reset,moneyback,choice1,choice2,choice3,choice4, choice5,choice6;//moneyback为退钱输入,choice1~6是饮料选择output moneyout,coinable,adrkable,bdrkable,cdrkable,drkout1, drkout2,drkout3,drkout4,drkout5,drkout6; //依次为退钱输出,投币许可提示,饮料选择许可,6种饮料输出output[2:0] state;//状态记录 output[7:0] money;//余额显示 reg[7:0] money; reg[2:0] state; reg moneyout,coinable,backable,adrkable,bdrkable,cdrkable; parameter A=3'b000, B=3'b001, C=3'b010,D=3'b011, E=4'b100; assign drkout1=choice1&adrkable;

EDA课程设计报告-用VerilogHDL语言编写-红绿灯控制程序

成绩: XI’AN UNIVERSITY OF TECHNOLOGY EDA综合实践 所在院系自动化与信息工程学院 专业名称电子信息科学与技术 班级电技111 题目红绿灯设计 指导教师XXXX

二、红绿灯原理及设计思路 设计思路: 为了实现两个方向红绿灯循环亮灭的过程,假设该过程如下: 起始(st0)东西方向绿灯亮(green1=1),南北方向红灯亮(red2=1),这个过程持续3个clock周期;然后(st3)东西方向黄灯亮,绿灯灭,南北方向红灯仍然亮着,这个过程持续1个clock;然后(st4)东西方向红灯亮,南北方向绿灯亮,这个过程持续3个clock;然后南北(st7)方向黄灯亮,东西方向红灯仍然亮着,这个过程持续一个clock;接下来就回到起始(st0)的状态进行循环。 此程序中无论哪个方向,各个灯亮着的时间之比为, 绿:黄:红=3:1:4,可以设置clock的值确定各灯具体的亮的时间。 1、红绿灯工作状态的真值表:

2、模型图:(见下页) 3状态机:

三、源程序 module traffic(clock,reset,red1,yellow1,green1,red2,yellow2,green2); input clock,reset; output red1,yellow1,green1,red2,yellow2,green2; parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7; reg[2:0] state,nxstate; reg red1,yellow1,green1,red2,yellow2,green2; always(posedge clock or posedge reset) begin if(reset) state=st0;

verilog HDL抢答器(两个程序)

一、设计任务 智力竞赛抢答器Verilog HDL要求有6位参赛者进行抢答,有六个抢答信号进行抢答。当有抢答选手按下抢答键后系统能够快速准确的判断是那一组选手按下了抢答信号,由于系统比较小,速度比较快一般不会有同时按下的可能,所以只有六种状态,然后系统能够根据这六种状态进行适时的显示和提示。当有选手按下以后就对抢答信号进行锁存,其他选手的输入无效。然后就是对抢答进行时间限制了,根据设定的时间进行倒计时,当倒计时完成还没有人抢答的时候系统发出警报声音提示时间已经到了。当有选手在主持人未按下抢答键抢答时视为超前抢答,系统显示该选手号,同时蜂鸣器响,该抢答无效。还有清除复位键,抢答完成以后按复位键即可清除已有的状态。通过Verilog HDL程序代码实现系统的各个功能。 二、设计目的与要求 目的:理论联系实际,巩固和运用所学课程,提高分析、解决计算机技术实际问题的独立工作能力,培养学生正确的设计思想,严肃认真、实事求是的科学态度和勇于探索的创新精神。通过对一个智力抢答器的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤,通过Verilog 程序的编写,进一步熟悉Verilog HDL 的语法知识;规范化训练学生撰写技术研究报告,提高书面表达能力。 要求: ?掌握FPGA设计系统的一般方法。 ?熟练掌握使用modelsim软件设计较复杂的数字逻辑电路。 ?培养学生独立分析问题和解决实际问题的能力。 三、课程设计的内容 设计一抢答器,要求如下: (1)抢答台数为6; (2)具有抢答开始后20s倒计时,20秒倒计时后6人抢答显示超时,并报警; (3)能显示超前抢答台号并显示犯规报警; (4)系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其 余各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号。 四、系统设计方案 根据系统设计要求可知,系统的输入信号有:主持人按钮inputEn,各选手的抢答按钮分别是inputL1、inputL2、inputL3、inputL4,inputL5,inputL6,主

Verilog_HDL的交通灯控制器设计

课程设计报告 2015-2016学年第2学期 课程设计名称:电子综合设计EDA课程设计 院(系):电子信息学院 专业:电子信息工程班级:电子1313 姓名: xx 学号: 1310034303xx 综合实验时间: 2016/7/11-2016/7/15 指导教师:钟旭 提交时间: 2016/7/15

上海电机学院课程设计任务书

目录 第一章设计原理 (4) 1.1设计要求 (4) 1.2设计思路和原理 (4) 1.3实现方法 (4) 第二章Verilog HDL程序设计 (6) 2.1整体设计 (6) 2.2 具体设计 (7) 第三章仿真测试 (7) 3.1 波形仿真 (7) 第四章设计总结 (10)

第一章设计原理 1.1设计要求 设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示。[1] 1.2设计思路和原理 (1) 主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。 (2) 选择1HZ时钟脉冲作为系统时钟。 (3) 45s、25s、5s定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,启、闭三色信号灯,并启动另一计时电路。 (4) 交通灯状态变化如表1及图1所示: 表1 交通灯状态图

1实验一 2选1多路选择器

东莞理工学院实验报告 专业班级:电子信息工程技术1班姓名:陈瀚瑜学号:200831307124 指导教师: 卢贵主地点:8B 日期: xxxxx 实验一2选1多路选择器 1、实验目的: 熟悉了解软件Quartus II的界面及其操作,以一个简单的程序初步地跑一遍Quartus II的程序设计流程。通过这个典型的组合电路模块,给出相关的语法规则的说明由此进入对VHDL的深入了解的历程。要让自己能掌握在Quartus环境下新建程序文件、新建工程并编写程序、进行综合以及时序仿真功能。 2、实验设备: 一台装有Quartus II 9.0软件的计算机一台。 3、设计原理: 此实验是一个2选1的多路选择器,既然是两个选一个,当然有两个输入端a,b数据通道,然后有一个输入通道是选择控制信号s,一个输出通道y。当s的取值分别为0或1时,输出端y就分别输出来自输入口a或b。 4、实验内容: 1、打开Quartus II 9.0软件,新建VHDL FILE,保存跟实体一样的名称mux21a。 2、在FILE下按New Project Wizard,找到…\mux21a选中将加入工程,然后选择目标芯片 ACEX1K、分装为TQFP、管口144、速度级别3,然后选择下面的EP1130TC144。 3、根据原理设计代码,如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21a is PORT(a,s,b:IN STD_LOGIC; y:OUT STD_LOGIC); END ENTITY mux21a; ARCHITECTURE BHV OF mux21a IS SIGNAL d:STD_LOGIC; SIGNAL e:STD_LOGIC; BEGIN d<=a AND (NOT s); e<=b AND s; y<=d OR e; END ARCHITECTURE BHV; 4、编译processing-start compilation.

2选1数据选择器的VHDL描述

2选1数据选择器的VHDL描述 ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END ARCHITECTURE one ; 译码器的设计 architecture dec_behave of e1 is signal sel : std_logic_vector( 0 to 3) ; begin sel(0) <= en ; sel(1) <= a(0) ; sel(2) <= a(1) ; sel(3) <= a(2) ; with sel select y <= "00000001" when "1000", "00000010" when "1001", "00000100" when "1010", "00001000" when "1011", "00010000" when "1100", "00100000" when "1101", "01000000" when "1110", "10000000" when "1111", "00000000" when others ; end dec_behave ; 8-3优先编码器 library IEEE; ……; entity encoder83 is port (ind: in std_logic_vector(7 downto 0);

outd: out std_logic_vector(2 downto 0)); end ; architecture behave of encoder83 is begin process (ind) begin if ind (7) = ‘1' then outd<= "111"; elsif ind (6) = ‘1' then outd<= "110"; elsif ind (5) = ‘1' then outd<= "101"; elsif ind (4) = ‘1' then outd<= "100"; elsif ind (3 )= ‘1' then outd<= "011"; elsif ind (2) = ‘1' then outd<= "010"; elsif ind (1) = ‘1' then outd<= "001"; elsif ind (0) = ‘1' then outd<= "000"; else outd<= "000"; end if; end process; end behave;

二选一数据选择器报告

EDA实验报告 组合电路设计 一、实验目的 1、熟悉quartusⅡ的VHDL文本设计全过程, 2、学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。 二、实验内容 1、实验内容2:将此多路选择器看成一个元件mux21a,利用元件例化语句描述成三选一,然后进行编译、综合、仿真。 2、实验内容3:引脚锁定以及硬件下载测试。选实验电路模式5,用键1(PIO0)控制s0;用键2(PIO1)控制s1;a 3、a2和a1分别接clock5、clock0和clock2;输出信号outy仍接spker,通过短路帽选择clock0接256Hz信号,clock5接1024Hz信号,aclock2接8 Hz信号。最后进行编译、下载和硬件测试实验。 三、实验器材 PC机一台、Quartus II软件、EDA实验箱一台、下载电缆一根(已接好)。四、实验程序 实验内容2:三选一 library ieee; use ieee.std_logic_1164.all; entity muxk is port(a1,a2,a3: in std_logic; s0,s1: in std_logic; outy: out std_logic); end entity muxk; architecture bhv of muxk is component mux21a port( a,b: in std_logic; s: in std_logic; y: out std_logic); end component; signal tmp: std_logic; begin u1: mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp); u2: mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy); end architecture bhv; 五、实验步骤 实验二:在实验一的基础上,新建VHDL文件,命名为muxk。在VHDL编辑窗口中输入实验程序后,进行编译、综合、仿真。 实验三:

数字跑表VerilogHDL程序

数字跑表VerilogHDL程序 顶层模块 module paobiao(CLK,CLR,PAUSE,CLK,CLK1); input CLK,CLK1; // 100Hz基准时钟,1kHz数码管扫描时钟 input CLR, PAUSE; output[3:0] MSH,MSL,SH,SL,MH,ML; reg[3:0] MSH,MSL,SH,SL,MH,ML; wire[3:0] dec_in; jishi jishi(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML); count10 count10(CLK,CLK1); decode4_7 decode4_7(decodeout,dec_in); segscan segscan(dec_in,MSL,MSH,SL,SL,ML,MH); endmodule 时基分频器模块 module count10(CLK,CLK1); input CLK1; output CLK; reg[4:0] qout; always @(posedge CLK1) begin if(qout<9) qout<=qout+1; else qout<=0; end assign CLK=(qout==9)?1:0; endmodule reg CLK1; reg [4:0]qunt; always @(posedge CLK or negedge RST) //异步清零 begin if(~rst) begin qunt<=5'd0; end else if(qunt==5'd9) begin qunt<=5'd0; end else begin qunt<=qunt+1'b1; end end wire CLK1; assign CLK1=qunt[4];

二选一数据选择器

二选一数据选择器 目录 一:数据选择器的基本原理 (3) 二电路逻辑功能 (2) 2.1 电路逻辑图 (2) 2.2真值表与表达式 (3) 2.3电路设计及仿真 (3) 三版图设计 (5) 3.1总体版图设计及DRC验证 (5) 3.1.1数据选择器版图设计步骤 (5) 3.1.2版图验证 (8) 3.2版图仿真 (9) 四数据选择器版图LVS对比 (10) 五结论及体会 (12)

一:数据选择器的基本原理 数据选择器是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去,实现数据选择功能的逻辑电路称为数据选择器。它的作用相当于多个输入的单刀多掷开关,其示意图如下: 图1 n位通道选择信号 数据选择器除了可以实现一些组合逻辑功能以外,还可以做分时多路传输电路、函数发生器及数码比较器等。常见的数据选择器有4选1、8选1、16选1电路。 在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器 数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号 下图所示为二选一数据选择器原理图,a,b为输入端,sel为控制端,out为输出端 图1-1数据选择器原理图 二电路逻辑功能 2.1 电路逻辑图 =+(S是数据选择控制端,S为0时选择A,为1时选S择B) Y SA SB 要实现2选1选择器,逻辑电路图如下所示

图2-1数据选择器逻辑电路图 2.2真值表与表达式 二选一数据选择器逻辑表达式为:Y SA SB =+ 根据逻辑表达式所列真值表如下图所示 图2-2数据选择器真值表图 2.3电路设计及仿真 根据原理电路图并使用S-Edit 软件设计出数据选择器的电路图及对应符号图 如下: S A B Y 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0

二选一多路选择器实验报告

实验名称: 二选一多路选择器 实验目的: 通过简单、完整而典型的VHDL设计,初步了解用VHDL表达和设计电路的方法,并对由此而引出的VHDL语言现象和语句规则加以有针对性的说明。 实验原理: 二选一多路选择器功能描述: 输入端口a,b输入信号,在通道选择控制输入端口s输入低电频时,输出端口y输出a输入端口信号;在通道选择控制输入端口s输入高电频时,输出端口y输出b输入端口信号。 实验内容: 一、二选一多路选择器程序录入: ENTITY mux21a IS PORT(a,b:IN BIT; s:IN BIT; y:OUT BIT); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y<=a WHEN s='0' ELSE b; END ARCHITECTURE one; 二、文件存盘及创建工程,文件名和工程名为mux21a 三、对源程序进行全程编译,如有错误进行修改,直到编译成功。编译成功的界面如下图: 四、得出二选一多路选择器的电路图,如下图

五、时序仿真: (1)打开波形编辑器。 (2)设置仿真时间区域(此次仿真域时间设为5us)。 (3)波形文件存盘。 (4)将工程的端口信号选入波形编辑器中。 (5)编入输入波形(输入激励信号)。 (6)总线数据格式设置。 (7)仿真器参数设置。 (8)启动仿真。 (9)观察仿真结果。结果如下图: 实验心得: 1、通过本节上机实验,初步了解了VHDL语言现象和语句规律。 2、程序很简单,按照示例程序输入没有什么错误。主要是通过这个简单程 序了解了时序仿真的全过程,以及通过对输入波形的调整达到清晰美观时序仿真效果的调试方法。 3、实验后基本能从整体上把握VHDL程序的基本结构和设计特点。掌握固 定表达句式,实体内容还是跟C语言语法相似。算是入门了。

EDA课程设计-用VerilogHDL语言编写-红绿灯控制程序

XI’AN UNIVERSITY OF TECHNOLOGY EDA综合实践 ] 所在院系自动化与信息工程学院专业名称电子信息科学与技术《 班级电技111 题目红绿灯设计 指导教师XXXX 成员XXX -2014年元月 成绩:

3、报告评语及成绩(30%): 二、< 三、红绿灯原理及设计思路 设计思路: 为了实现两个方向红绿灯循环亮灭的过程,假设该过程如下: 起始(st0)东西方向绿灯亮(green1=1),南北方向红灯亮(red2=1),这个过程持续3个clock周期;然后(st3)东西方向黄灯亮,绿灯灭,南北方向红灯仍然亮着,这个过程持续1个clock;然后(st4)东西方向红灯亮,南北方向绿灯亮,这个过程持续3个clock;然后南北(st7)方向黄灯亮,东西方向红灯仍然亮着,这个过程持续一个clock;接下来就回到起始(st0)的状态进行循环。 此程序中无论哪个方向,各个灯亮着的时间之比为, 绿:黄:红=3:1:4,可以设置clock的值确定各灯具体的亮的时间。 1、红绿灯工作状态的真值表: 2、; 3、模型图: (见下页)

3状态机: (

三、源程序 module traffic(clock,reset,red1,yellow1,green1,red2,yellow2,green2); input clock,reset; output red1,yellow1,green1,red2,yellow2,green2; parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7; reg[2:0] state,nxstate; | reg red1,yellow1,green1,red2,yellow2,green2; always(posedge clock or posedge reset) begin if(reset) state=st0; else state=nxstate; $ end always(state) begin red1=1'b0; yellow1=1'b0; green1=1'b0; red2=1'b0; yellow2=1'b0; green2=1'b0; case(state) st0:begin green1=1'b1; < red2=1'b1; nxstate=st1; end st1:begin green1=1'b1; red2=1'b1;

2选1多路选择器数选器muxverilog

2 实验2 2.1 实验内容 题目:设计一个1位的二选一多路选择器 要求:1.使用门级描述实现 2.使用逻辑表达式实现 3.使用if条件语句实现 4.出现正确的仿真波形,无需板子上验证。 2.2 实验步骤 1.系统设计 设计1位2选1选通器需要三个输入一个输出,其中中输入需要1根地址线两 根数据线。设输入一位数据a,b,地址为addr,输出为Out,根据2to1选通器的特 _______ 点,可得其逻辑表达式为:out=a·addr+b·addr (1)门级描述 需要两个与门一个非门一个或门,其中所有变量均为wire类型,且需 要三个wire类型中间变量储存信号。 (2)逻辑表达式 源代码中用assign out=sel?a:b; 或assignout=(a&sel)|(b&~sel); (3)If条件语句 If语句在always语句中进行判断。 2.RTL原理图 (1)门级结构 (2)逻辑语句 使用两种逻辑语句进行RTL分析结果略有不同,out=sel?a:b;会分析出来一个2选1选通器而out=(a&sel)|(b&~sel);分析结果与门级结构类似 1)out=sel?a:b;

2)out=(a&sel)|(b&~sel); (3)if语句 3.重要源代码及注释 (1)门级结构 module mux2_1(a,b,out,addr); input a,b,addr; output out; wire naddr,a1,b1;//定义中间变量 not (naddr,addr); and (b1,b,naddr); and (a1,a,addr); or (out,a1,b1); endmodule (2)逻辑语句 module luoji( input a, input b,

EDA实验1lxm二选一数据选择器

实验一 二选一数据选择器VHDL设计 Quartus II 6.0开发环境与EDA实验箱使用 一实验目的 1.熟悉在Quartus II 6.0环境下原理图输入方法。 2.熟悉Quartus II 6.0环境下编辑、编译综合、仿真的操作方法。 3、掌握利用EDA软件进行电路设计的详细流程; 4、熟悉EDA实验箱的基本使用方法。学会对实验板上的FPGA/CPLD进行编程下 载,硬件验证自己的设计项目。 二实验仪器 PC机、Quartus II 6.0软件 三实验内容 1.详细解读教材117页。 2.在QuartusⅡ上输入该设计的原理图,并进行编辑、编译、综合、适配、仿真。 3.给出其所有信号的时序仿真波形。 四实验原理及步骤 1.启动Quartus II 6.0软件 在桌面上双击Quartus II 6.0图标 或者在开始—>所有程序—>Altera—> Quartus II 6.0,如下图 2.建立工作库文件夹及工程

任何一次设计都是一项工程(Project),所有此工程相关的所有设计文件都需要放在同一个文件夹里。不同的设计放在不同的文件夹中。 在E盘下建立一个存放本次设计的工程文件夹,比如“shiyan1”。 注意不要使用中文文件夹,文件夹的存放路径也不要包含中文。 注意本实验室计算机C盘和D盘是重启后复原,不要将任何文件和文件夹放置在桌面或者C、D盘下。 初次打开Quartus II 6.0,会有如图提示: 选择是的情况下,首先是新工程向导:介绍

下一步 下一步

下一步,选择目标芯片,首先在Family栏选择ACEX1K系列,然后选择此系列的具体芯片:EP1K30TC144-3。注意不要选成了EP1K30TC144-3。

相关主题
文本预览
相关文档 最新文档