8路数据选择器、16位奇偶检验器的设计
数字ic课程设计_8路选择器
目录1课程设计名称 (1)2课程设计内容 (1)3课程设计目的 (1)4课程设计要求 (1)5使用软件 (1)6课程设计原理 (1)7课程设计网表 (4)8结果及分析 (8)9延时手工计算 (10)10总结 (11)11参考书目 (11)1.课程设计名称设计一个用两个4选1数据选择器接成8选1数据选择器。
2.课程设计内容设计一个用两个4选1数据选择器接成8选1数据选择器,要求要有超前进位,减小输出的延迟,采用0.5um工艺设计。
3.课程设计目的训练学生综合运用学过的数字集成电路的基本知识,独立设计相对复杂的数字集成电路的能力。
4.课程设计要求4.1、按设计指导书中要求的格式书写,所有的内容一律打印;4.2、报告内容包括设计过程、仿真的HSPICE网表,软件仿真的结果及分析、延时的手工计算;4.3、要有整体电路原理图,仿真的波形图;4.4、软件仿真必须要有必要的说明;要给出各个输入信号的具体波形和输出信号的测试结果。
4.5、写出对应的HSPICE设计网表,网表仿真结果符合设计要求。
把仿真图形附在报告上。
4.6、设输入端的电容为C inv,输出端的负载电容为5000C inv,从输入到输出任意找一通路,优化通路延时,手工计算确定通路中每个门对应的晶体管的尺寸。
每组三个同学选择不能为同一通路。
此部分的计算参数可采用书中第六章的参数。
4.7、各种器件的具体结构可参考阎石的《数字电子技术基础》一书。
不允许有完全一样的报告,对于报告完全相同者,记为不及格。
5.使用软件软件为HSPICE和COSMOS-SCOPE。
6.课程设计原理此题目要求用两个四选一多路选择器搭成一个八选一多路选择器,由此可知有八位输入信号,则选择用三位控制信号实现该功能。
由真值表可得两个四选一多路选择器的逻辑表达式分别为:设sel,s1,s2为控制信号,c1-c8为选择输入信号,out1,out2为选择器输出。
Out1=nsel*ns1*ns2*c1+nsel*ns2*c2+ nsel*s1*ns2*c3+ nsel*s1*s2*c4 out2=sel*ns1*ns2*c5+sel*ns1*s2*c6+sel* ns1*s2*c7+sel* ns1*s2*c8做出真值表根据逻辑表达式做出电路图sel S1 S2 C1 0 0 0 C2 0 0 1 C3 0 1 0 C4 0 1 1 C5 1 0 0 C6 1 0 1 C7 1 1 0 C81114输入与非门反相器2输入或非门7.课程设计网表*select8_1.lib"e:\lib\h05hvcddtt09v01.lib" tt.subckt inv in outmp1 out in vdd vdd nvp w=2u l=1umn1 out in gnd gnd nvn w=1u l=1u.ends.subckt nand4 a b c d zmp1 z a vdd vdd nvp l=1u w=2ump2 z b vdd vdd nvp l=1u w=2ump3 z c vdd vdd nvp l=1u w=2ump4 z d vdd vdd nvp l=1u w=2umn1 z a 1 gnd nvn l=1u w=4umn2 1 b 2 gnd nvn l=1u w=4umn3 2 c 3 gnd nvn l=1u w=4umn4 3 d gnd gnd nvn l=1u w=4u.ends.subckt select4 sell s11 s22 a b c d selectxnd1 nsell ns11 ns22 a out1 nand4xnd2 nsell ns11 s22 b out2 nand4xnd3 nsell s11 ns22 c out3 nand4xnd4 nsell s11 s22 d out4 nand4xnd5 out1 out2 out3 out4 select nand4xinv1 s11 ns11 invxinv2 s22 ns22 invxinv3 sell nsell inv.ends.subckt nor2 a b outmp1 x a vdd vdd nvp w=4u l=1ump2 out b x vdd nvp w=4u l=1umn1 out a gnd gnd nvn w=1u l=1umn2 out b gnd gnd nvn w=1u l=1u.ends.global vdd gndxselect1 sel s1 s2 c1 c2 c3 c4 select1 select4 xselect2 nsel s1 s2 c5 c6 c7 c8 select2 select4xnor select1 select2 nf nor2xnot nf f invxnot1 sel nsel invvdd vdd gnd 5vsel sel gnd pulse 0 5 50ns 100ps 100ps 50ns 100ns vs1 s1 gnd 0vs2 s2 gnd 0vc1 c1 gnd pulse 5 0 10ns 100ps 100ps 20ns 30ns vc2 c2 gnd 5vc3 c3 gnd 5vc4 c4 gnd pulse 0 5 10ns 100ps 100ps 20ns 30ns vc5 c5 gnd pulse 0 5 10ns 100ps 100ps 20ns 30ns vc6 c6 gnd 5vc7 c7 gnd 5vc8 c8 gnd pulse 5 0 10ns 100ps 100ps 20ns 30ns.tran 50ps 100ns.plot tran v(f).end8.结果及分析分析:由波形知,在前50ns控制信号为sel,s1,s2=000,后50ns控制信号为sel,s1,s2=100。
verilog实现8路数据选择器
《串行数据检测器》实验报告* All right reserved*/module mux_8(addr, in1, in2, in3, in4, in5,in6,in7,in8,mout,ncs); input [2:0] addr; //输入的地址端,3位选择开关input [3:0] in1,in2,in3,in4,in5,in6,in7,in8; //8路数据端输入input ncs; //使能信号output [3:0] mout; //一路输出reg [3:0] mout; //输出声明为寄存器类型always @(addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or ncs) //8路输入或者选择开关或者使能信号发生变化则条件触发beginif(!ncs) //低电平使能case(addr)3'b000: mout = in1; //选择开关的3位对应000时,输出等于in1输入;3'b001: mout = in2; //选择开关的3位对应001时,输出等于in1输入;3'b010: mout = in3; //选择开关的3位对应010时,输出等于in1输入;3'b011: mout = in4; //选择开关的3位对应011时,输出等于in1输入;3'b100: mout = in5; //选择开关的3位对应100时,输出等于in1输入;3'b101: mout = in6; //选择开关的3位对应101时,输出等于in1输入;3'b110: mout = in7; //选择开关的3位对应110时,输出等于in1输入;3'b111: mout = in8; //选择开关的3位对应111时,输出等于in1输入;endcaseelsemout = 0; //使能信号高电平时输出一直为0;endendmodule2.编写测试模块test_mux_8.v如下/*** @File test_mux_8.v* @Synopsis 这是8路数据选择器mux_8的测试模块* @Author 陈昊, @* @Version 1* @Date 2010-11-05*//* Copyright(0) 2010-* By* All right reserved*/`timescale 1ns/1nsmodule test_mux_8;wire[3:0] mout; //声明输出为线网型,4位reg [3:0] in1,in2,in3,in4,in5,in6,in7,in8; //声明8路输入信号reg [2:0] addr; //3位的选择开关,寄存型类型reg ncs; //1位的寄存器型使能信号//-------------------------------------------------------------产生测试信号------------------------------------------------------ initialbeginncs=0; //在初始化模块里将使能信号置为0,让选择器正常工作in8={$random}%16; //使用系统任务$random产生一个0至15之间的数in1={$random}%16; //并赋予输入in2={$random}%16;in3={$random}%16;in4={$random}%16;in5={$random}%16;in6={$random}%16;in7={$random}%16;addr=3'b000; //让选择开关的3位初始对应为000.repeat(5) //重复下面的语句块5次,赋5次值 begin#10 in8={$random}%16;in1={$random}%16;in2={$random}%16;in3={$random}%16;in4={$random}%16;in5={$random}%16;in6={$random}%16;in7={$random}%16;addr=addr+1; //每执行一次后改变一次选择开关的值,加1end#10 $stop;end//-------------------------------------------------------------------2.选择Altera STRATIX器件库利用Synplify Pro综合产生的RTL级电路如下五、分析与讨论。
EDA设计8路数据选择器、16位奇偶检验器的设计
大神:枫晓惜
8路数据选择器(每位数据3位输入)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY EIGHT_XUAN_1 IS PORT( RST: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(2 DOWNTO 0); --定义A2,A1, A0的端口为输入 D0: IN STD_LOGIC_VECTOR(2 DOWNTO 0); --定义选择端口 D1: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D2: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D3: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D4: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D5: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D6: IN STD_LOGIC_VECTOR(2 DOWNTO 0); D7: IN STD_LOGIC_VECTOR(2 DOWNTO 0); Q: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); --定义Q2,Q1, Q0的端口为输出 END EIGHT_XUAN_1; ARCHITECTURE ART OF EIGHT_XUAN_1 IS SIGNAL Q1: STD_LOGIC_VECTOR(2 DOWNTO 0); --定义信号量
--当复位信号“1”有效,清零 --对信号量赋值,实现选择的功能 --当A的值是“000”是把D0的值
--当A没被列出来时,Q1执行空操作
波形仿真
16位奇偶检验器的设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY parity_check IS PORT ( a:IN STD_LOGIC_VECTOR (15 DOWNTO 0); --输入端口 十六位的数据 y:OUT STD_LOGIC); --将其奇 偶校验的结果输出,若为奇数个1 输出为高电平;若为偶数个1输出 为低电平 END parity_check; ARCHITECTURE arch OF parity_check IS BEGIN PROCESS(a) VARIABLE temp:STD_LOGIC; BEGIN temp:='0'; --偶校验初始值设为0,奇校 LOOP temp:=temp XOR a(i); temp END LOOP; y<=temp; END PROCESS; END arch;
实验8 8位十六进制频率计设计
实验八8位十六进制频率计设计
一、实验目的
1. 设计8位十六进制频率计,学习较复杂数字系统设计方法。
2. 熟悉元件例化语句;
3. 熟悉包含多个文件的电路设计方法。
二、实验内容
运用Quartus II 集成环境下的图形设计方法设计一个8位的十六进制频率计。
进行波形仿真和分析。
三、实验步骤及参考程序
实验步骤:
1、编写测频控制器、32位锁存器、32位计数器并编译、仿真得到正确的波形;
2、编写顶层模块;
3、仿真并分析波形。
参考程序:
略
参考波形图:
四、实验扩展及思考
1、怎样设计4位或8位十进制频率计?
2、将顶层文件的设计用图形的方法实现。
3、将32位频率值用实验箱上的8个数码管显示出来。
16位的奇偶校验器设计
课程设计报告学生姓名学号班级电子信息工程院系信院电子系题目16位的奇偶校验器设计指导教师2012 年 5 月题目一:设计一个16位的奇偶校验器,并仿真验证其功能。
(1班1组)(要求:输入一个16位的矢量数值,统计矢量中“1”的个数;并判断16位数中1的个数的奇偶性)1、设计思路2、VHDL程序(或原理图)3、仿真波形(图片)4、程序分析1,设计思路如下:可以使用FOR_LOOP语句,语法格式如下:[LOOP标号: ] FOR 循环变量,IN 循环次数范围LOOP顺序语句END LOOP [LOOP标号];FOR后的“循环变量”是一个临时变量,属LOOP语句的局部变量,不必事先定义。
“循环次数范围”规定LOOP语句中的顺序语句被执行的次数。
循环变量从循环次数数范围的初值开始,每执行完一次顺序语句后递增1,直至达到循环次数范围指定的最大值。
其中定义输入端口十六位的数据总线为a, 输出端口y将其奇偶校验的结果输出, 输出端c统计1 的个数2,VHDL程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY parity_check ISPORT (a:IN STD_LOGIC_VECTOR (15 DOWNTO 0); y:OUT STD_LOGIC;c:out integer range 0 to 16);END parity_check;ARCHITECTURE arch OF parity_check ISBEGINPROCESS(a)V ARIABLE temp:STD_LOGIC;V ARIABLE m: INTEGER RANGE 0 TO 16; BEGINtemp:='0';m:=0; --偶校验初始值设为0,奇校验初始值设为1 FOR i IN 0 TO 15 LOOPtemp:=temp XOR a(i);IF (a(i)='1') THEN m:=m+1;END IF;END LOOP;y<=temp;c<=m;END PROCESS;END arch;原理图如下:3,仿真波形如下:程序分析实体:实体名parity_check输入端口十六位的数据总线a:IN STD_LOGIC_VECTOR (15 DOWNTO 0)输出端口y:OUT STD_LOGIC;将其奇偶校验的结果输出若为奇数个1 输出为高电平;若为偶数个1输出为低电平输出端c:out integer range 0 to 16)统计1 的个数结构体:结构体名arch在进程PROCESS(a)中定义变量V ARIABLE temp:STD_LOGIC;V ARIABLE m: INTEGER RANGE 0 TO 16; 并进行变量的赋值temp:='0';m:=0;loop循环FOR i IN 0 TO 15 LOOPtemp:=temp XOR a(i);IF (a(i)='1') THEN m:=m+1;END IF;END LOOP;Temp与a(i)异或将其结果赋给tempIf语句若a(i)为1 m加1计数将其m的计数结果赋给c c 即为a中1 的个数。
八选一数据选择器逻辑电路设计思路
八选一数据选择器逻辑电路设计思路哎呀,这道题目可真是让人头疼啊!不过,别着急,我们一起来想办法解决这个问题吧!我们来看看这个题目的要求:八选一数据选择器逻辑电路设计思路。
简单来说,就是要我们设计一个逻辑电路,它可以从8个输入信号中选择其中一个输出。
这听起来好像很简单,但是实际上还是有一些细节需要注意的。
那么,我们现在就开始着手解决这个问题吧!我们需要明确一下这个逻辑电路的基本结构。
一般来说,这种类型的逻辑电路通常由触发器和多路复用器组成。
触发器可以用来存储输入信号的状态,而多路复用器则可以用来选择不同的输入信号进行处理。
接下来,我们需要考虑一下具体的实现方法。
对于这个问题,我们可以使用两个触发器和三个多路复用器来实现。
具体来说,我们可以将第一个触发器的Q0引脚连接到第二个触发器的D引脚上,这样就可以实现第一个触发器的输出与第二个触发器的输入相同。
然后,我们将第一个触发器的Q1引脚连接到第三个多路复用器的A引脚上,将第一个触发器的Q2引脚连接到第四个多路复用器的A引脚上,将第一个触发器的Q3引脚连接到第五个多路复用器的A引脚上,将第一个触发器的Q4引脚连接到第六个多路复用器的A引脚上,将第一个触发器的Q5引脚连接到第七个多路复用器的A引脚上,将第一个触发器的Q6引脚连接到第八个多路复用器的A引脚上。
这样一来,当第一个触发器的输出为1时,第二个触发器的输出就会被选择出来;当第一个触发器的输出为0时,第二个触发器的输出就不会被选择出来。
同样的道理,当第一个触发器的输出为1时,第三个、第四个、第五个、第六个、第七个和第八个多路复用器的输出都会被选择出来;当第一个触发器的输出为0时,这些多路复用器的输出就不会被选择出来。
我们还需要考虑一下如何控制这个逻辑电路的工作状态。
一般来说,我们可以使用一些基本的逻辑门来实现这一点。
比如说,我们可以使用与门来控制触发器的输出是否为高电平;使用或门来控制多路复用器的选择功能是否被激活;使用非门来控制整个逻辑电路的工作状态是否被改变。
八选一数据选择器逻辑电路设计思路
八选一数据选择器逻辑电路设计思路数据选择器逻辑电路设计,让复杂变简单嘿,朋友们!今天咱们来聊一聊那个让人头疼又爱不释手的东西——数据选择器逻辑电路。
别急,让我用轻松幽默的方式,带你一起走进这个小小的“魔法世界”。
想象一下,你手里有一堆颜色各异的糖果,想要选出一种特定的颜色,比如红色。
这听起来是不是有点像我们在设计数据选择器时的挑战?没错,就是那种既需要精准又得巧妙处理的选择难题。
你得知道数据选择器是什么。
简单来说,它就像是个小魔术师,能够从一大堆数据中,挑选出你想要的那一个。
但它可不是随便选一个就行,而是要根据输入的信号来决定输出的。
这个过程就像是一场智慧与勇气的较量,既要有策略,又要有胆量。
接下来,咱们说说设计思路。
设计数据选择器的时候,你得先搞清楚你要控制的是哪一类信号。
比如,你是想控制数字信号还是模拟信号?是单端还是差分信号?这些问题就像是一座座山,只有越过它们,你才能找到通往成功的道路。
然后,你需要规划你的电路结构。
想象一下,你正在搭建一座城堡,每个元件就像是城堡里的一间房,而你的设计思路就像是城堡的蓝图。
你得确保所有的房间都按照计划建造好,这样才能保证城堡稳固、美观。
当然啦,设计过程中难免会遇到一些“小麻烦”。
比如,有时候信号可能会混在一起,让你难以分辨哪个才是你想要的。
这时候,你得学会运用各种“技巧”,比如滤波器、多路复用器等等,来帮助你解决问题。
别忘了测试和调试。
就像战士在战斗结束后要检验战利品一样,你在完成设计后也要对电路进行测试,确保它能够正常工作,没有遗漏任何细节。
数据选择器逻辑电路的设计并不是一件容易的事情,但只要你有耐心、细心,再加上一点点创意和想象力,你一定能够成为那个出色的“魔法师”。
在这个过程中,你会发现自己不仅学会了如何解决问题,还收获了成长和快乐。
所以,不要害怕挑战,勇敢地去迎接吧!。
8路数据选择器、16位奇偶检验器的设计.
课程设计报告(理工类)课程名称: EDA技术专业班级:电子科学与技术102 学生学号: 050210109 学生姓名:江杰所属院部:物电学院指导教师:顾涵20 12 ——20 13 学年第 1 学期设计项目名称:8位数据选择器与16位奇偶校验器设计同组学生姓名:张海军、贺旌、蒋宁洲实验地点:力行楼203 设计成绩:批改教师:批改时间:一、设计目的和要求1.课程设计目的本实验课程的目的,旨在通过上机实验自己进行EDA设计,使学生加深理解EDA技术的基本方法,帮助和培养学生建立利用原理图和硬件描述语言进行电路设计的基本方法和利用EDA工具软件(MAX+plusⅡ)设计简单数字电子系统的能力,为以后从事有关数字电子系统方面的设计和研究开发工作打下基础。
2.课程设计的基本要求1、通过课程设计使学生能熟练掌握一种EDA软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2、通过课程设计使学生能利用EDA软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或AHDL硬件描述语言输入法。
3、通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。
4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
3.课程设计类型EDA技术VHDL程序设计二、仪器和设备计算机,MAX+plusⅡ软件三、设计过程1.设计内容和要求a).设计一个八选一数据选择器,同时每一个输入端口又由3个二进制位组成,输出端口是从前八个端口选择一个由3个二进制位组成的端口。
b).设计一个16位奇偶校验器,对输入的信号进行统计奇数或者偶数的数量。
将其奇偶校验的结果输出,若为奇数个 1 输出为高电平;若为偶数个1输出为低电平2.设计方法和开发步骤a).方法:查阅相关资料,找到对于一个四选一数据选择器和8位奇偶校验器的介绍,运用类比的方法写出设计所需要的程序。
「8位十六进制频率计设计」
「8位十六进制频率计设计」近年来,随着技术的不断进步和发展,计量仪器的设计和制造也越来越受到人们的关注。
其中,频率计作为一种常见的计量仪器,用于测量信号的频率,被广泛应用于电子、通信、无线电等领域。
本文将重点介绍一种8位十六进制频率计的设计方案。
这种频率计结构简单,具有较高的精度和稳定性,适用于较高频率范围内的信号测量。
在此设计中,采用了数字式频率测量的原理。
具体的设计方案如下:1.时钟信号发生器:首先,需要一个稳定的高频时钟信号来作为计数的基准。
可以采用晶体振荡器或PLL锁相环电路来生成高频稳定的时钟信号。
2.频率除法器:将输入信号经过频率除法器进行分频处理,将其频率降低到可以被下一步计数器接收的范围内。
这里可以选择合适的分频系数,使得被测信号的频率能够在计数器的输入范围内。
3.8位计数器:将分频后的信号输入到8位计数器中进行计数。
计数器可以选择使用CMOS或TTL逻辑芯片来实现,具有较高的计数速度和较低的功耗。
4.显示部分:计数器输出的二进制数据经过十六进制显示芯片进行转换,并通过LED数码管或LCD屏幕显示出来。
为了兼顾精度和显示效果,可以采用高亮度的LED数码管进行显示。
5.校准功能:为了确保频率计的精度和准确性,在设计中应该考虑加入校准功能。
可以通过输入已知频率的标准信号,并与频率计测得的结果进行比较,进行校准操作。
这种设计方案具有以下优点:1.精度较高:数字式频率计的测量精度受到分频比率和计数器位数的影响,通过合理选择这两个参数,可以达到较高的精度要求。
2.适用范围广:该设计方案适用于较高频率范围内的信号测量,可以满足大部分应用场合的需求。
3.结构简单:通过合理的功能模块划分和选择,使得整个频率计的结构简单,易于实现和维护。
4.显示直观:采用LED数码管或LCD屏幕进行显示,使得测量结果直观、清晰可见。
当然,这种设计方案也存在一些不足之处:1.精度受限:由于采用了分频处理和计数器,测量精度受到了一定的限制。
实验7 8位16进制频率计设计
设计要求:FTCTRL的计数使能信号CNT_EN能产 生一个1秒脉宽的周期信号,并对频率计中的32位 二进制计数器COUNTER32B的ENABL使能端进行 同步控制。当CNT_EN高电平时允许计数;低电平 时停止计数,并保持所计的脉冲数。在停止计数期 间,首先需要一个锁存信号LOAD的上跳沿将计数 器在前1秒钟的计数值锁存进锁存器REG32B中,并 由外部的十六进制七段译码器译出,显示计数值。 设置锁存器的好处是数据显示稳定,不会由于周期 性的清0信号而不断闪烁。锁存信号后,必须有一 清0信号RST_CNT对计数器进行清零,为下一秒的 计数操作作准备。
实验任务:
任务1:根据下图所示的波形,设计频率计的 控制模块,并对设计中的各语句功能、设计 原理及逻辑功能进行详细的描述。
(实验报告上体现)
assign连续赋值语句(数据流描述方式)
reg divclk; always@(posedge clk1HZ) divclk<=~divclk; assign cnt_en=divclk; assign load=~divclk; assign rst_cnt=~clk1HZ & ~divclk;
1 不同抽象级别的Verilog HDL模型
Verilog HDL具有行为描述和结构描述功能
应重点掌握行为描述方法
结构描述也可以用来实现电路的系统设 计。
对于一个实际的数字系统电路,一般先用行为描 述方法设计底层模块电路,最后用结构描述方法 将各模块连接起来,构成顶层文件完成系统电路 的设计。
实验任务:
任务2:完成频率计的完整设计,并给出其测 频时序波形及其分析。 (实验报告上体现)
reg32b lk din[31..0] dout[31.
16位奇偶校验器(原理图设计)
3 仿真及结果分析
图 5 是 4 位奇偶校验器的仿真波形图
图 5 4 位奇偶校验器的仿真波形图
图中 A 为数据输入端口,Y 为校验结果输端口在图中我们可以看出当输入数据有奇 数个 1 时 Y 输出为 1,当输入数据有偶数个 1 时,输出为 0。 图 6 是 16 位奇偶校验器的仿真波形图,与 4 位的奇偶校验器的仿真波形图类似图 中 A 为数据输入端口,Y 为校验结果输端口在图中我们可以看出当输入数据有奇数个 1 时 Y 输出为 1,当输入数据有偶数个 1 时,输出为 0。
图 1 4 位奇偶校验器顶层图 图 2 是 16 位奇偶校验器的顶层设计图。图中 A[15..0]是 16 位并行数据输入总线, 16 位
二进制数据由此输入,输出端口 Y 是校验结果输出端口,如果输出 1 则说明输入数据 1 的个数为奇数个,如果输出为 0,则说明输入数据 1 的个数为偶数个。
图 2 16 位奇偶校验器顶层设计图
4Байду номын сангаас
图 6 16 位奇偶校验器的仿真波形图
4、结论和收获
通过本次综合作业的学习,我深深的体会到课程的重要性和目的性。这不仅仅培养 了我们的实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的 进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识 的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后 多安排一些类似的实践环节,让同学们学以致用。
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Y 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
Y= ABCD ABC D ABC D ABCD ABC D ABCD ABC D ABCD 根据表达式设计的原理图如图 3 所示:
八选一数据选择器逻辑电路设计思路
八选一数据选择器逻辑电路设计思路哎呀,这可是个不简单的题目啊!不过别着急,我们一起来聊聊八选一数据选择器逻辑电路设计思路吧!咱们得明确什么是八选一数据选择器。
它就是一个小小的电路,能从8个输入信号中选出1个输出信号。
听起来挺简单的,但实际上可不是那么回事哦!要想设计一个好用的八选一数据选择器,我们得先了解一下它的工作原理。
简单来说,八选一数据选择器的输入端有8个信号,输出端只有1个信号。
当输入信号发生变化时,电路会根据一定的规则来选择其中一个信号输出。
那么,这个规则是什么呢?其实很简单啦!就是根据输入信号的高低电平来决定输出哪个信号。
具体来说,当输入信号为高电平时,电路会选择第一个输入信号输出;当输入信号为低电平时,电路会选择第二个输入信号输出;以此类推,直到输入信号为高电平时,电路会选择第八个输入信号输出。
明白了原理之后,我们就可以开始设计八选一数据选择器了。
我们需要准备一些基本的电子元器件,比如电阻、电容、二极管等等。
然后,我们可以按照以下步骤来进行设计:1. 我们需要搭建一个基本的放大电路。
这个放大电路的作用是将输入信号放大一定的倍数,以便于后面的处理。
我们可以选择一个合适的放大倍数,比如10倍左右。
2. 接下来,我们需要搭建一个多路开关电路。
这个多路开关电路的作用是将放大后的信号分成8路,每路对应一个输入信号。
我们可以选择一个合适的多路开关芯片,比如4位二进制计数器芯片。
3. 然后,我们需要搭建一个译码电路。
这个译码电路的作用是根据多路开关芯片输出的状态来决定哪一路输入信号被选中。
我们可以选择一个合适的译码芯片,比如74HC154译码器芯片。
4. 我们需要搭建一个输出驱动电路。
这个输出驱动电路的作用是将选中的输入信号放大一定的倍数后输出。
我们可以选择一个合适的输出驱动芯片,比如TDA2030功率放大器芯片。
好了,经过以上的设计步骤之后,我们就成功地搭建了一个八选一数据选择器电路!当然啦,这只是一个基本的设计思路,实际应用中可能还需要根据具体情况进行调整和优化哦!。
八选一数据选择器逻辑电路设计思路
八选一数据选择器逻辑电路设计思路哎呀,这道题目真是让人头疼啊!不过没关系,我们一起来聊聊八选一数据选择器逻辑电路设计思路吧!我们得明确什么是八选一数据选择器。
它就是一种电子元件,可以将8个输入信号中的任意一个信号输出。
听起来好像很简单的样子,但是要想设计出一个好用的八选一数据选择器,可不是一件容易的事情哦!那么,我们该如何设计这样一个逻辑电路呢?我们需要了解一下基本的逻辑门电路知识。
比如与门、或门、非门等等。
这些门电路可以用来实现各种不同的逻辑功能。
而八选一数据选择器所需要的功能,其实就是从8个输入信号中选出一个输出信号。
这个功能可以通过组合使用多个与门和或门来实现。
具体来说,我们可以先用两个与门来分别对应输入信号的前四个和后四个。
然后再用一个或门将这两个结果进行组合。
这样就可以实现从8个输入信号中选出任意一个输出信号的功能了。
如果你想要更加灵活地选择输出信号的话,还可以使用其他的组合方式。
比如可以使用三个与门和一个或门来实现同样的功能。
除了基本的逻辑门电路之外,我们还需要了解一下常用的触发器电路。
触发器是一种能够保存并根据时钟信号改变其状态的电路。
在八选一数据选择器的设计中,我们常常会用到多路复用触发器和边沿触发器这两种类型的触发器。
多路复用触发器可以同时处理多个输入信号,并且可以根据不同的输入信号改变其输出状态。
而边沿触发器则只能在输入信号发生变化的时候改变其状态。
因此,在设计八选一数据选择器时,我们需要根据具体的应用场景来选择合适的触发器类型。
我们还需要注意一下电路板的设计问题。
毕竟,一个好的电路板不仅可以提高电路的性能和稳定性,还可以让整个系统更加美观和易于维护。
因此,在设计八选一数据选择器的电路板时,我们需要考虑到PCB布局、元器件放置等因素。
设计一款优秀的八选一数据选择器并不是一件容易的事情。
需要我们具备扎实的电子基础知识、熟练掌握各种逻辑门电路和触发器的使用方法,并且还需要有一定的电路板设计经验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告(理工类)课程名称: EDA技术专业班级:电子科学与技术102 学生学号: ********* 学生姓名:江杰所属院部:物电学院指导教师:顾涵20 12 ——20 13 学年第 1 学期设计项目名称:8位数据选择器与16位奇偶校验器设计同组学生姓名:张海军、贺旌、蒋宁洲实验地点:力行楼203 设计成绩:批改教师:批改时间:一、设计目的和要求1.课程设计目的本实验课程的目的,旨在通过上机实验自己进行EDA设计,使学生加深理解EDA技术的基本方法,帮助和培养学生建立利用原理图和硬件描述语言进行电路设计的基本方法和利用EDA工具软件(MAX+plusⅡ)设计简单数字电子系统的能力,为以后从事有关数字电子系统方面的设计和研究开发工作打下基础。
2.课程设计的基本要求1、通过课程设计使学生能熟练掌握一种EDA软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2、通过课程设计使学生能利用EDA软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或AHDL硬件描述语言输入法。
3、通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。
4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
3.课程设计类型EDA技术VHDL程序设计二、仪器和设备计算机,MAX+plusⅡ软件三、设计过程1.设计内容和要求a).设计一个八选一数据选择器,同时每一个输入端口又由3个二进制位组成,输出端口是从前八个端口选择一个由3个二进制位组成的端口。
b).设计一个16位奇偶校验器,对输入的信号进行统计奇数或者偶数的数量。
将其奇偶校验的结果输出,若为奇数个 1 输出为高电平;若为偶数个1输出为低电平2.设计方法和开发步骤a).方法:查阅相关资料,找到对于一个四选一数据选择器和8位奇偶校验器的介绍,运用类比的方法写出设计所需要的程序。
b).步骤:Ⅰ去图书馆查找相关资料,了解基本原理;Ⅱ写出真值表,根据真值表分析程序结构;Ⅲ确定输入输出,且数据选择器使用case语句,奇偶校验器使用loop结构;Ⅳ参考四选一数据选择器,,8位奇偶校验器,写出VHDL程序;综合编译,仿真,并进一步完善。
3.设计思路a)八选一数据选择器执行对8个数据源的选择,d0,d1,d2,d3,d4,d5,d 6,d7 定义为七个数据输入端口作为数据输入端。
使用三位地址码产生8个地址信号,由a0a1a2选择信号,从而实现y的选择输出。
真值表如下:又因为我们的每个输入端口又由3个二进制位组成,输出又由某一个端口的三个二进制位组成,只要再把每一个输入端口,输出端口设成具有3个的位矢量,然后再做其余的相应修改即可。
b)可以使用FOR_LOOP语句,语法格式如下:[LOOP标号: ] FOR 循环变量,IN 循环次数范围LOOP顺序语句END LOOP [LOOP标号];FOR后的“循环变量”是一个临时变量,属LOOP语句的局部变量,不必事先定义。
“循环次数范围”规定LOOP语句中的顺序语句被执行的次数。
循环变量从循环次数数范围的初值开始,每执行完一次顺序语句后递增1,直至达到循环次数范围指定的最大值。
其中定义输入端口十六位的数据总线为a, 输出端口y将其奇偶校验的结果输出。
4.设计难点a )在设计数据选择器的时候没有理解输入输出端口还是由3个二进制位组成,理解出错,还用元件例化的方法走了不少弯路。
b )16位奇偶校验器由于对for ..loop 语句的不熟悉调试不少时间。
四、设计结果与分析1.思路问题以及测试结果失败分析a )由于八选一数据选择器比较的简单,大体的程序编写出来了,由于刚开始没理解要求,输入输出都要求是由3个二进制位组成,按着自己的错误理解进行再修改而没有成功,最后在老师的又一次讲述下听懂了要求,然后很快就出来了。
b.)16位奇偶校验器调试着几次就没什么问题了。
2.程序简要说明VHDL代码如下八选一数据选择器(每个输入输出端口都是由3个二进制位组成)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY EIGHT_XUAN_1 ISPORT(RST: IN STD_LOGIC;A: IN STD_LOGIC_VECTOR(2 DOWNTO 0); --定义A2,A1,A0的端口为输入D0: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D1: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D2: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D3: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D4: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D5: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D6: IN STD_LOGIC_VECTOR(2 DOWNTO 0);D7: IN STD_LOGIC_VECTOR(2 DOWNTO 0);Q: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); --定义Q2,Q1,Q0的端口为输出END EIGHT_XUAN_1;ARCHITECTURE ART OF EIGHT_XUAN_1 ISSIGNAL Q1: STD_LOGIC_VECTOR(2 DOWNTO 0); --定义信号量BEGINPROCESS(A)BEGINIF RST='1' THEN Q1<="000"; --当复位信号“1”有效,清零ELSECASE A IS --对信号量赋值,实现选择的功能WHEN "000"=> Q1 <= D0;WHEN "001"=> Q1 <= D1;WHEN "010"=> Q1 <= D2;WHEN "011"=> Q1 <= D3;WHEN "100"=> Q1 <= D4;WHEN "101"=> Q1 <= D5;WHEN "110"=> Q1 <= D6;WHEN "111"=> Q1 <= D7;WHEN OTHERS => NULL; --当A没被列出来时,Q1执行空操作END CASE;END IF;END PROCESS;Q<= Q1;END ART;仿真波形如下:16位奇偶检验器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY parity_check ISPORT (a:IN STD_LOGIC_VECTOR (15 DOWNTO 0); --输入端口十六位的数据y:OUT STD_LOGIC); --将其奇偶校验的结果输出,若为奇数个1 输出为高电平;若为偶数个1输出为低电平END parity_check;ARCHITECTURE arch OF parity_check ISBEGINPROCESS(a)V ARIABLE temp:STD_LOGIC;BEGINtemp:='0'; --偶校验初始值设为0,奇校验初始值设为1FOR i IN 0 TO 15 LOOPtemp:=temp XOR a(i); --Temp与a(i)异或将其结果赋给tempEND LOOP;y<=temp;END PROCESS;END arch;仿真波形如下:五、实验心得体会通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。
希望学校以后多安排一些类似的实践环节,让同学们学以致用。
虽然软件的仿真功能很强大,但是还是需要操作人员仔细的进行观察及调试的,否则也容易出现仿真错误。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
六、参考文献1.刘江海等.EDA技术.华中科技大学出版社,2009.2. 李国洪等. 可编程器件EDA设计与实践.机械工业出版社,2004.3. 康华光等。
电子技术基础.高等教育出版社,2005.。