北航eda实验报告数字部分
北航数值分析实验报告
北航数值分析实验报告篇一:北航数值分析报告第一大题《数值分析》计算实习报告第一大题学号:DY1305姓名:指导老师:一、题目要求已知501*501阶的带状矩阵A,其特征值满足?1?2...?501。
试求:1、?1,?501和?s的值;2、A的与数?k??1?k?501??140最接近的特征值?ik(k=1,2,...,39);3、A的(谱范数)条件数c nd(A)2和行列式de tA。
二、算法设计方案题目所给的矩阵阶数过大,必须经过去零压缩后进行存储和运算,本算法中压缩后的矩阵A1如下所示。
?0?0?A1??a1??b??c0b a2bcc bb c............c bb ccb a500b0a 3...a499c?b??a501??0?0??由矩阵A的特征值满足的条件可知?1与?501之间必有一个最大,则采用幂法求出的一个特征值必为其中的一个:当所求得的特征值为正数,则为?501;否则为?1。
在求得?1与?501其中的一个后,采用带位移的幂法则可求出它们中的另一个,且位移量即为先求出的特征值的值。
用反幂法求得的特征值必为?s。
由条件数的性质可得,c nd(A)2为模最大的特征值与模最小的特征值之比的模,因此,求出?1,?501和?s的值后,则可以求得c nd(A)2。
eda技术实验报告
eda技术实验报告EDA技术实验报告引言EDA(Electronic Design Automation)技术是电子设计自动化的缩写,是现代电子设计中不可或缺的一环。
它通过计算机辅助设计,提高了电路设计的效率和质量。
本文将介绍EDA技术的背景、应用和实验结果。
背景随着电子产品的不断发展,电路设计变得越来越复杂,传统的手工设计已经无法满足需求。
EDA技术的出现填补了这一空白。
它利用计算机的强大计算能力和算法,帮助设计师完成电路设计、仿真、布局和验证等工作。
应用1. 电路设计EDA技术的核心应用是电路设计。
通过EDA工具,设计师可以绘制电路图、选择器件、进行参数设置等。
EDA工具还可以自动进行电路优化,提高电路性能。
2. 仿真验证在电路设计完成后,需要对电路进行仿真验证。
EDA技术可以提供准确的仿真结果,帮助设计师分析电路的性能和稳定性。
仿真验证可以帮助设计师发现潜在的问题,提前解决。
3. 物理布局物理布局是将电路逻辑转化为实际的物理结构。
EDA技术可以自动进行物理布局,优化电路的面积和功耗。
物理布局的好坏直接影响到电路的性能和可靠性。
4. 电路验证在电路设计完成后,需要进行电路验证,确保电路的正确性和可靠性。
EDA技术可以自动进行电路验证,提供准确的验证结果。
电路验证可以帮助设计师发现设计缺陷,提高电路的可靠性。
实验设计在本次实验中,我们选择了一款EDA工具进行实验。
首先,我们设计了一个简单的数字电路,包括与门和或门。
然后,利用EDA工具进行电路仿真和优化。
最后,对电路进行物理布局和验证。
实验结果通过实验,我们得到了以下结果:1. 仿真结果显示,设计的数字电路在不同输入条件下均能正确输出结果,验证了电路的正确性。
2. 通过优化算法,我们成功提高了电路的性能,减少了功耗和面积。
3. 物理布局结果显示,电路的布局紧凑,满足了设计要求。
4. 电路验证结果显示,电路的功能和性能均符合设计要求,验证了电路的可靠性。
EDA实验报告——计数器
EDA实验报告——计数器一、实验目的本实验主要是通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。
二、实验原理计数器是数字电路的重要组成部分,在数字电路的多个应用中都有着广泛的应用。
计数器可以实现多种数字处理功能,如二进制计数、定量计数、计时、频率分频等。
三、实验材料1. Protues软件2. 74LS90集成电路3. 7段数码管4. 4位拨动开关5. 4个LED灯6. 电路板、杜邦线等。
四、实验内容1. 给定 74LS90 计数器数据手册,分析本实验使用到的 74LS90 芯片的接口及特性。
2. 根据实验需求,用 Protues 软件搭建计数器电路图。
3. 在计数器电路图中连通 74LS90 芯片的译码器输出端口,设置与四个拨动开关相连的输入端口以及 LED 显示器输出端口,实现计数器的计数。
4. 在计数器的输出端口增加 7 段数码管,通过数码管显示计数值。
5. 根据实验需求搭建模电流源电路,对实验电路进行仿真分析,并对仿真结果进行评估。
五、实验步骤2. 从库中拖动 74LS90 芯片、7 段数码管、拨动开关、LED 灯等元件到设计图中。
4. 在 74LS90 芯片工作模式的选择端口接上拨动开关,选择计数器的计数方式。
5. 配置模电流源电路,并设置仿真参数。
6. 进行仿真并记录仿真结果。
七、实验结果本实验搭建的计数器能够正确地进行计数,并且将计数结果通过数码管和 LED 灯显示出来。
在进行仿真分析时,根据仿真数据评估实验电路的合理性。
本实验通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。
实验中主要学习了数字计数器的结构、性能和工作原理,在搭建计数器电路时主要包括了 74LS90 芯片的接口和设置以及输入输出端口的设置。
通过本实验,我进一步了解了计数器的基本知识和原理,也学习了如何使用 Protues 软件进行电路的搭建和仿真。
EDA实验报告(12份).pdf
实验一组合电路的设计1. 实验目的:熟悉MAX + plus II 的VHDL 文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
2. 实验内容:设计一个2选1多路选择器,并进行仿真测试,给出仿真波形。
3. 实验程序如下:library ieee;use ieee.std_logic_1164.all; entity mux21a isport(a,b,s:in std_logic;y:out std_logic); end entity mux21a; architecture one of mux21a is beginy<=a when s='0' else b ; end architecture one ;4. 仿真波形(如图1-1所示)图1-1 2选1多路选择器仿真波形5. 试验总结:从仿真波形可以看出此2选1多路选择器是当s为低电平时,y输出为b, 当s为高电平时,y输出为a(y<=a when s='0' else b ;),完成2路选择输出。
实验二时序电路的设计1. 实验目的:熟悉MAX + plus II VHDL文本设计过程,学习简单的时序电路设计、仿真和测试。
2. 实验验内容:设计一个锁存器,并进行仿真测试,给出仿真波形。
3. 实验程序如下:library ieee;use ieee.std_logic_1164.all;entity suocun7 isport(clk: in std_logic;en: in std_logic;D: in std_logic_vector(7 downto 0);B:out std_logic_vector(7 downto 0)); end suocun7;architecture one of suocun7 issignal K: std_logic_vector(7 downto 0); beginprocess(clk,en,D)beginif clk'event and clk='1' thenif en ='0'thenK<=D;end if;end if;end process;B<=K;end one;4.仿真波形(如图2-1所示)图2-1 8位锁存器仿真波形此程序完成的是一个8位锁存器,当时钟上升沿到来(clk'event and clk='1')、使能端为低电平(en ='0')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。
EDA实验报告(绝对有用)
EDA实验报告(绝对有用)本次实验主要针对数据分析中的探索性数据分析(Exploratory Data Analysis, EDA)进行了深入学习和实践。
EDA是一种针对数据集中每个变量和变量之间关系的视觉和统计方法的分析方法,它旨在识别有趣的模式、特征和异常,这些信息有助于之后的建模和分析。
在实验中,我们采用了Python编程语言进行数据分析。
我们利用了NumPy、Pandas、Matplotlib、Seaborn等库进行计算、数据处理、数据可视化等操作。
我们选取了Titanic 号乘客的数据集进行实验,该数据集包含了乘客的个人信息、船票信息、生还情况等信息。
该数据集是一个经典的数据集,经常被用来进行数据分析和建模。
实验主要从以下几个方面进行了数据探索。
首先,我们对数据集的整体情况进行了概述。
我们利用head()和sample()函数查看了数据集的前5和5个随机样本,了解了数据集的变量的类型和取值范围。
然后,我们通过describe()函数来对数据集进行统计摘要分析,包括每个变量的均值、标准差、最小值、最大值等,从而对数据集的分布情况进行了把握。
接着,我们利用info()函数查看了数据集中的缺失值和数据类型,进一步了解了数据清洗的工作量。
在了解了数据整体情况之后,我们进一步对数据集的不同变量进行了探索。
我们先对生还情况(“Survived”)进行了统计分析,以了解不同乘客的生还率分布情况。
我们利用pie()和countplot()函数分别使用饼图和直方图来展示了不同生还情况的比例和数量。
我们发现,生还乘客和死亡乘客的比例为38.4%和61.6%。
接着,我们对乘客的性别(“Sex”)进行了分析,以确定男女乘客的生还率差异情况。
我们利用countplot()函数来展示男女乘客的数量和生还率情况,发现女性乘客的生还率比男性高得多。
这进一步证明了Titanic号上的“女士优先”政策。
我们还分析了乘客的舱位等级(“Pclass”)和年龄(“Age”)等变量,以确定这些因素与生还率的关系。
eda实验报告
eda实验报告EDA(Exploratory Data Analysis)是一种常用的数据分析方法,通过对数据集进行可视化、统计和计算,来揭示数据中的潜在规律和趋势。
下面是一份关于EDA实验的报告,总字数700字。
实验目的:1. 熟悉EDA方法和流程;2. 分析数据集的特征和表现;3. 发现数据集中的异常和趋势。
实验过程:1. 数据收集与预处理本次实验使用的数据集是关于某公司销售数据的报告。
首先,收集了公司销售数据,并进行了数据清洗与预处理,包括去除重复数据、处理缺失值和异常值等。
2. 数据可视化通过绘制直方图、散点图和箱线图等可视化图表,分析如下几个方面:(1)销售额分布情况:绘制直方图分析销售额的分布情况,观察是否存在明显的集中趋势或异常值。
(2)销售额与时间的关系:绘制时间序列图,观察销售额随时间的变化趋势。
(3)不同产品类别的销售情况:绘制柱状图比较不同产品类别的销售额,从而分析各类别产品的市场表现。
(4)销售额与其他因素的关系:绘制散点图分析销售额与其他因素(如广告费用、产品价格等)之间的关系,发现潜在的规律。
3. 数据统计与计算通过对数据集进行统计和计算,揭示数据集中的特征和规律,如:(1)平均销售额:计算销售额的平均值,以了解公司销售的平均水平。
(2)销售额的标准差:计算销售额的标准差,以评估销售额的波动性和不稳定性。
(3)销售额的趋势:使用回归分析等方法,拟合销售额与时间的关系,从而预测未来的销售趋势。
实验结果:通过数据可视化和统计计算,我们获得了以下一些结果:1. 销售额的分布呈正偏态,大部分销售额集中在较低水平,但也存在一些异常值;2. 销售额随时间呈现出上升的趋势,说明公司的销售业绩在逐渐提升;3. 不同产品类别的销售额差异较大,其中某些类别的销售额明显高于其他类别;4. 销售额与广告费用和产品价格之间存在一定的正相关关系,即投入更多的广告费用和提高产品价格可以带来更高的销售额。
北航_电子实习_数字部分实验报告
报告名称:电子电路设计训练数字部分学院:仪器科学与光电工程学院目录实验报告概述: (3)一、选做实验总结: (3)(1)补充练习2:楼梯灯设计 (3)(2)练习题6:用两种不同的设计方法设计一个功能相同的模块,完成4个数据的冒泡排序 (5)(3)练习题3:利用10MB的时钟,设计一个单周期形状的周期波形 (6)(4)练习题4:运用always块设计一个8路数据选择器 (6)(5)练习题5:设计一个带控制端的逻辑运算电路 (7)二、必做实验总结: (7)(1)练习一:简单组合逻辑设计 (7)(2)练习三:利用条件语句实现计数分频失序电路 (7)(3)练习四:阻塞赋值与非阻塞赋值得区别 (8)(4)练习五:用always块实现较复杂的组合逻辑电路 (8)(5)练习六:在verilog HDL中使用函数 (9)(6)练习七:在verilog HDL中使用任务 (9)(7)练习八:利用有限状态机进行时许逻辑设计 (10)三、实验总结及体会: (10)四、选作程序源代码 (11)(1)练习题3:利用10MB的时钟,设计一个单周期形状的周期波形 (11)(2)练习题4:运用always块设计一个8路数据选择器 (12)(3)练习题5:设计一个带控制端的逻辑运算电路 (13)(4)练习题6:用两种不同的设计方法设计一个功能相同的模块,完成4个数据的冒泡排序 (14)(5)补充练习2:楼梯灯设计 (16)图表目录Figure 1 楼梯灯任务4 (5)Figure 2 组合逻辑 (5)Figure 3 时序逻辑 (6)Figure 4 周期波形 (6)Figure 5 8路数据选择器 (6)Figure 6 逻辑运算电路 (7)Figure 7 组合逻辑设计 (7)Figure 8 计数分频时序电路 (8)Figure 9 阻塞赋值与非阻塞赋值得区别 (8)Figure 10 always块组合逻辑电路 (9)Figure 11 使用函数 (9)Figure 12 使用任务 (10)Figure 13 有限状态机 (10)电子电路设计训练(数字部分)实验报告实验报告概述:本实验报告为对四次电子电路设计训练(数字部分)实验的总结,主要包括以下四部分:第一部分为选做实验总结,主要包括每个选择实验的设计思路、运行结果、注意事项、心得体会;第二部分为必做实验总结,包括运行结果、总结、心得体会;第三部分为课程总结和体会,是对全部实验及课程的总结;第四部分为选做实验部分源代码;一、选做实验总结:(1)补充练习2:楼梯灯设计设计思路:本题给出楼梯的运行规则,并分别给与四个相应任务进行编程设计,考虑到程序的通用性及FPGA高速并行处理的优点,主要思路如下:根据运行规则(8s内和大于8s等),对每个灯的相应状态进行编程,设计时序逻辑及有限状态机;由于在总体上看,每个灯的状态变化相对独立(只有一个人上楼除外),故对每个灯编程所得到的程序代码可通用于其它灯(只需要改变相应寄存器定义即可),此即为灯控制模块,对4个不同的任务,只需设计其它部分判断逻辑,即可完成任务要求;如此设计,可大大提高程序设计效率、易用性,同时如果面对更多的灯控制需要,也可快速进行修改部署。
北航电子电路设计训练数字部分实验报告
2014-2015-2-G02A3050-1 电子电路设计训练(数字EDA部分)实验报告(2015 年6月24 日)仪器科学与光电工程学院目录目录 (1)实验一、简单组合逻辑和简单时序逻辑 (4)1.1 实验任务1——简单组合逻辑 (4)1.1.1 实验要求 (4)1.1.2 模块的核心逻辑设计 (4)1.1.3 测试程序的核心逻辑设计 (5)1.1.4 仿真实验关键结果及其解释 (6)1.2 实验任务2——简单时序逻辑 (7)1.2.1 实验要求 (7)1.2.2 模块的核心逻辑设计 (8)1.2.3 测试程序的核心逻辑设计 (8)1.2.4 仿真实验关键结果及其解释 (9)1.3 实验小结 (9)实验二、条件语句和always过程块 (10)2.1 实验任务1——条件语句实现计数分频时序电路 (10)2.1.1 实验要求 (10)2.1.2 模块的核心逻辑设计 (10)2.1.4 仿真实验关键结果及其解释 (13)2.2 实验任务2——always块实现较复杂的组合逻辑电路 (14)2.2.1 实验要求 (14)2.2.2 模块的核心逻辑设计 (14)2.2.3 测试程序的核心逻辑设计 (15)2.2.4 仿真实验关键结果及其解释 (16)2.3 实验小结 (17)实验三、赋值、函数和任务 (18)3.1 实验任务1——阻塞赋值与非阻塞赋值的区别 (18)3.1.1 实验要求 (18)3.1.2 模块的核心逻辑设计 (18)3.1.3 测试程序的核心逻辑设计 (19)3.1.4 仿真实验关键结果及其解释 (21)3.2 实验任务2——在Verilog HDL中使用函数 (21)3.2.1 实验要求 (21)3.2.2 模块的核心逻辑设计 (21)3.2.3 测试程序的核心逻辑设计 (24)3.2.4 仿真实验关键结果及其解释 (26)3.3 实验任务3——在Verilog HDL中使用任务(task) (27)3.3.1 实验要求 (27)3.3.2 模块的核心逻辑设计 (27)3.3.4 仿真实验关键结果及其解释 (29)实验四、有限状态机 (30)4.1 实验任务1——利用有限状态机进行时序逻辑的设计 (30)4.1.1 实验要求 (30)4.1.2 模块的核心逻辑设计 (30)4.1.3 测试程序的核心逻辑设计 (31)4.1.4 仿真实验关键结果及其解释 (32)4.2 实验任务2——串行数据采样器 (33)4.2.1 实验要求 (33)4.2.2 模块的核心逻辑设计 (34)4.2.3 测试程序的核心逻辑设计 (37)4.2.4 仿真实验关键结果及其解释 (41)4.3 实验小结 (42)实验一、简单组合逻辑和简单时序逻辑1.1 实验任务1——简单组合逻辑1.1.1 实验要求实验代码提供的是一个可综合的数据比较器。
EDA实训报告.doc
设计报告课程名称在系统编程技术任课教师查长军设计题目电子钟班级11通信1班姓名郭丽丽学号1105021006 日期2014-6-25目录一、题目分析 (1)1、总体方框图: (1)2、设计指标: (1)3、功能要求: (1)二、选择方案 (1)三、细化框图 (2)四、编写应用程序并仿真 (2)1、秒计数器 (2)2、分钟计数器 (3)3、时钟计数器 (4)4、整点报时模块 (4)五、全系统联调,画出整机电路,波形图等 (5)1、数字时钟系统总原理图 (5)2、数字时钟系统波形图仿真 (5)六、硬件测试及说明。
(5)1、各部分引脚图 (6)七、结论 (6)1、实验调试结果分析 (6)八、课程总结 (6)九、参考文献目录 (7)十、附录(源程序) (7)1、小时计数器VHDL语言源程序(底层文件) (7)2、分钟计数器VHDL语言源程序(底层文件) (8)3、秒钟计数器VHDL语言源程序(底层文件) (9)4、整点报时报警模块VHDL语言源程序(底层文件) (10)一、题目分析2、设计指标:(1)时间以 24 小时为一个周期;(2)显示时、分、秒;(3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;(4)计时过程具有报时功能,当时间到达整点进行蜂鸣报时并延时2秒。
3、功能要求:1.时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分 60 进制计数,即从 0 到 59 循环计数,对时 24 进制计数,即从 0 到 23 循环计数。
2.时间设置:手动调节分钟(setfen)、小时(setshi),高定平时有效,可以对分、时进行进位调节,低电平时正常计数。
这样可以对所设计的时钟的时间任意调。
3.清零功能:reset 为复位端,低电平时实现清零功能,高电平时正常计数。
这样可以对所设计的时钟的时间进行清零处理。
4.整点报时功能:当分由 59 进位时,会在整点报时输出端输出高电平,此信号可以通过 LED 点亮检验。
EDA数字电路设计实验报告范文
一、实验目的通过本实验的学习,使学生掌握VHDL 中文件IO、配置、同步和异步设计等知识,训练VHDL 的编程能力,培养数字电路设计的基本技能,为今后继续学习大规模数字系统设计奠定基础。
二、实验内容1、分析示例代码,掌握VDHL 文件IO 的编写方法。
2、分析示例代码,掌握VDHL 配置的使用以及编写方法。
3、按照要求修改文件IO 和配置的示例代码。
4、根据同步和异步设计的不同,按照要求编写代码。
三、实验原理、方法和手段复杂设计,例如CPU,需要给它执行的指令。
以验证其正确性。
执行的结果也可以保存在文件中,供以后分析用。
VHDL 提供了文件读写功能,可以将测试激励预先保存在文件中,然后读入进行仿真。
文件读写的功能保存在IEEE 库的std.textio 和 std_logic_textio 包中,在文件头包含这些库,包,就可以调用文件读写函数。
文件I/O 关键语句:1、使用IEEE 文件读写包:USE ieee.std_logic_textio.all;USE std.textio.all;2、定义文件数据类型file results: text open write_mode is “results.txt";file mem_data: text;3、打开文件file_open(mem_data, "mem_data.txt", read_mode);4、定义行变量variable inline: line;5、读入一行数据到行变量readline(mem_data, inline);6、读行变量数据read(inline, ram_mem_temp);7、写数据到行变量write(OneLine,addr,right,10);8、写行变量到文件中writeline(results,OneLine);9、类型转换To_stdlogicvector(ram_mem_temp);--将ram_mem_temp 转换成std_logic_vector 型变量conv_integer(addr);--将addr 转换成interger 型变量1),常用的数据类型,函数,过程,模块,测试激励可以放在一个包中,以方便重用。
EDA计数器实验报告
EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。
2、掌握计数器的设计原理以及设计方法。
3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。
二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。
使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。
实验内容:本次实验要求设计一个模为自己学号后 3 位的计数器(模108)。
各个零部件可以用LPM来定制,而顶层则要使用VHDL语言以元件例化的方法来实现。
1、VHDL语言的部分代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exp_cnt108 isport(clk0,clk,clrn,En:in std_logic;b,s,g:out std_logic_vector(3 downto 0);c:out std_logic;cc:out std_logic;sb,ss,sg:out std_logic;ga,gb,gc,gd,ge,gf,gg:out std_logic);end exp_cnt108;architecture rtl of exp_cnt108 iscomponent count4port(clk:in std_logic;q:out std_logic_vector(1 downto 0));end component;component decoder2_3port(data:in std_logic_vector(1 downto 0);eq0,eq1,eq2:out std_logic);end component;component mux4_3_1port( data0x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data1x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data2x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);sel : IN STD_LOGIC_VECTOR (1 DOWNTO 0);result : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));end component;component my7449port(cout:in std_logic_vector(3 downto 0);a,b,c,d,e,f,g:out std_logic);end component;component exp_cnt10port(Clk,clrn,En,cin:in std_logic;cq:out std_logic_vector(3 downto 0);cout:out std_logic);end component;signal clr,cin:std_logic;signal q:std_logic_vector(1 downto 0);signal coutb,couts,coutg,cout:std_logic_vector(3 downto 0);signal c1,c2,c3: std_logic;signal eq0,eq1,eq2: std_logic;signal qa,qb,qc,qd,qe,qf,qg: std_logic;beginu0:count4 port map(clk0,q);u1:decoder2_3 port map(q,eq0,eq1,eq2);sb<=eq2;ss<=eq1;sg<=eq0;cin<='1';u2:exp_cnt10 port map(clk,clrn or clr,En,cin,coutg,c1);u3:exp_cnt10 port map(clk,clrn or clr,En,c1,couts,c2);u4:exp_cnt10 port map(clk,clrn or clr,En,c2 and c1,coutb,c3);b<=coutb;s<=couts;g<=coutg;cc<=c1;c<=c2;clr<=coutb(0) and coutg(3);u5:mux4_3_1 port map(coutg,couts,coutb,q,cout);u6:my7449 port map(cout,qa,qb,qc,qd,qe,qf,qg);ga<=qa;gb<=qb;gc<=qc;gd<=qd;ge<=qe;gf<=qf;gg<=qg;end rtl;三、波形仿真及下载验证:如图所示:波形仿真:仿真参数设置:Entime:45us Grid size:100ns clk:clock→period:10ns波形说明:clrn为0,En为0时,保持;clrn为0,En为1时,计数;clrn为1时,清零;由仿真图知,计数到107后从0开始计数。
EDA原理及应用 实验报告
一.基础部分1.整体框架采用自顶向下的层次化设计思路,将实现功能的各模块放入单独的文件内完成,最后通过top文件例化各个模块实现整体功能,再根据引脚约束与硬件对应。
在本例的基础部分主要分为计数频率5hz的分频,七段数码管的驱动,七段数码管扫描的频率,计数模块,16进制到10进制转换模块。
下面逐项介绍:2.计数频率5HZ分频a.设计思路由上一个实验,我们知道1HZ的分频需要计数到49999999,因此本例的5HZ应该计数到上次计数值的五分之一:9999999,也就是十六进制下的98967f,将分频后的时钟div_clk_098作为输出。
为了最终的顶层设计具有清零功能,因此对每一个子模块也加入清零引脚。
b.源代码module divclk_2_098(input clk_098,input rst_098,output reg div_clk_098);reg[31:0]counter_098;always@(posedge clk_098 or posedge rst_098)beginif(rst_098)counter_098<=32'h00000000;elseif(counter_098==32'h0098967f)//5hz分频begincounter_098<=32'h00000000;div_clk_098<=~div_clk_098;endelsecounter_098<=counter_098+1;endendmodule3.数码管刷新频率分频a.设计思路根据人眼的视觉暂留效应,当数码管的刷新频率很快的时候,看上去会像多个数码管通识导通。
但原有100MHZ的主频太快,以此刷新并不能实现效果,查阅资料并实际测试,让其计数到60000左右可以完成任务,最终选取了61567,即16进制下的f07f,将输出scan_clk_098作为顶层文件中的七段数码管的时钟进行驱动刷新。
北航电路实验报告
北航电路实验报告北航电路实验报告引言北航电路实验是电子信息工程专业学生必修的一门实践课程,旨在帮助学生理解和掌握电路的基本原理和实验技巧。
本文将对北航电路实验进行详细的报告和分析,以便更好地总结和应用所学知识。
实验一:电路基础实验电路基础实验是北航电路实验的第一次实践活动,通过搭建简单的电路并测量电流和电压,学生可以对电路的基本概念和特性有一个初步的了解。
首先,我们使用面包板搭建了一个简单的电路,包括电源、电阻和电流表。
然后,我们通过改变电阻的大小,测量了电路中的电流和电压。
实验结果表明,电流与电压成正比,而电阻则影响电流的大小。
实验二:交流电路实验交流电路实验是北航电路实验的第二个实践环节,通过使用交流电源和各种电路元件,学生可以研究交流电路的特性和行为。
我们首先搭建了一个简单的交流电路,包括交流电源、电感和电容。
然后,我们测量了电路中的电流和电压,并绘制了电流和电压随时间变化的波形图。
实验结果表明,电感和电容对交流电路的行为有重要影响,可以产生滤波、延时等效果。
实验三:放大电路实验放大电路实验是北航电路实验的第三个实践环节,通过使用放大器和各种电路元件,学生可以研究电路的放大效果和信号处理。
我们首先搭建了一个简单的放大电路,包括放大器、电阻和信号源。
然后,我们输入不同幅度和频率的信号,并测量输出信号的幅度和频率。
实验结果表明,放大器可以放大输入信号的幅度,同时也会对信号的频率产生一定的影响。
实验四:滤波电路实验滤波电路实验是北航电路实验的第四个实践环节,通过使用滤波器和各种电路元件,学生可以研究电路的滤波效果和频率响应。
我们首先搭建了一个简单的滤波电路,包括滤波器、电容和电阻。
然后,我们输入不同频率的信号,并测量输出信号的幅度和相位。
实验结果表明,滤波器可以对输入信号进行频率选择,滤除不需要的频率成分。
实验五:数字电路实验数字电路实验是北航电路实验的最后一个实践环节,通过使用数字电路元件和逻辑门,学生可以研究电路的逻辑运算和数字信号处理。
EDA实验报告(包含多个实验)
海南大学EDA实验报告学院:信息科学与技术学院专业班级:09理科实验班课程:EDA任课教师:***姓名:***学号:**************实验一 MAX –plusII及开发系统使用一、实验目的1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路2、掌握层次化设计的方法3、熟悉DXT-BⅢ型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。
三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。
它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。
4位全加器设计一个4位全加器可以由4个1位全加器构成,如图1.1所示,1位的全加器串行联接可以实现4位的二进制全加器。
图1.1 4位全加器电路原理图1位全加器可以由两个半加器和一个或门构成,如图1.2所示。
图1.2 全加器电路原理图1位半加器可以由与、或、非等基本门构成,如图1.3所示。
图1.3 半加器电路原理图根据实验原理中,采用层次法设计一个4位全加器。
四、实验步骤1、如图1.3所示,利用MAX-plusⅡ中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。
注意:编译之前必须将文件设为当前文件。
2、建立一个更高得原理图设计层次,如图1.2所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。
3、再建立一个更高得原理图设计层次,如图1.1所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真。
五、实验报告要求:详细描述4位全加器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出加法器的延时情况;最后给出硬件测试的流程和结果。
1)半加器图半加器仿真图2)全加器图全加器仿真图3)四位全加器仿真图实验二十进制计数器一、实验目的学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog数字电路设计实验报告院系:组员:年月日目录分组概况 (3)分组概况 (3)实验概况 (4)实验感想 (5)实验内容 (9)实验一 (9)实验二 (15)实验三 (25)实验四 (33)组长:主要负责各次实验的总体进程,以及选做实验的代码编译。
在实验报告中负责统筹规划及后期编排。
组员:负责各次实验必做实验源代码的录入及仿真。
在实验报告中负责报告前期录入,包括各次实验的简要内容、步骤等。
本课程共安排四次实验,其内容是:1、练习一、简单的组合逻辑设计练习二、简单分频时序逻辑电路的设计选做一、设计一个字节(8位)的比较器2、练习三、利用条件语句实现计数分频时序电路练习五、用always块实现较复杂组合逻辑电路选做一、利用10MB时钟设计一个单周期波形选做二、运用always块设计一个8路数据选择器3、练习四、阻塞赋值与非阻塞赋值的区别练习六、在Verilog中使用函数练习七、在Verilog中使用任务练习题5、综合一个可以计算正整数平方、立方、阶乘的函数思考题3、在blocking模块中实现对两种写法的仿真4、必做一、设计一个串行数据检测器必做二、楼梯灯——基本任务选做一、楼梯灯——扩展任务三、感想通过这4次的实验,我们基本熟悉Modelsim 软件,掌握了Modelsim 软件的编译、仿真方法。
同时在编写程序的过程中,加深了我们对课上所讲的语法的认识以及学会了测试模块的编写。
经过实验一,我们掌握了基本组合逻辑电路,基本时序电路;经过实验二,我们掌握条件语句在简单时序模块设计中的使用、在Verilog模块中应用计数器以及用always实现较大组合逻辑电路;经过实验三,我们掌握阻塞赋值与非阻塞赋值的概念与区别,了解函数的定义和在模块设计中的使用,掌握任务在verilog模块设计中的应用;经过实验四,我们掌握利用有限状态机实现一般时序逻辑分析的方法。
在实验过程中,我们也遇到过程序编写以及软件仿真上的问题。
程序编写时,要注意一些细节,比如符号,全角与半角等。
软件仿真过程中,我们出现过程序无错,但添加波形运行后,却没有波形的情况,最后上网百度,找到了解决方法。
实验总体来说,都比较顺利。
对于难度较大的实验四,只要思路清晰,考虑到所有的情况,就能做出来。
四、实验内容第一次实验课:练习一简单的组合逻辑设计实验目的:(1)掌握基本组合逻辑电路的实现方法(2)初步了解两种基本组合逻辑电路的生成方法(3)学习测试模块的编写(4)通过综合和布局布线了解不同层次仿真的物理意义实验原理:实验代码提供的是一个可综合的数据比较器。
从语句中可以看出是比较数据a,b的结果,结果相同输出1,否则输出0.测试模块用于检测模块设计是否正确,给出输入信号,观察模块的内部信号和输出信号以确定设计是否正确。
综合就是把compare.v文件送到synplify或其他综合器进行处理,启动综合器编译。
布局布线就是把综合后的另一种文件(EDIF),在布线工具控制下进行处理,启动布局布线的编译。
实验内容:模块源代码的组合逻辑仿真与测试实验代码:module compare(equal,a,b);inputa,b;output equal;assign equal =(a==b)?1:0;endmodule实验仿真:测试程序:`timescale 1ns/1ns`include "./compare.v"module t;rega,b;wire equal;initialbegina=0;b=0;#100 a=0;b=1;#100 a=1;b=1;#100 a=1;b=0;#100 a=0;b=0;#100 $stop;endcompare m(.equal(equal),.a(a),.b(b));endmodule仿真结果:练习二简单分频时序逻辑电路的设计实验目的:(1)掌握最基本时序电路的实现方法(2)学习时序电路测试模块的编写(3)学习综合和不同层次的仿真实验原理:对于组合逻辑电路,可综合成具体电路结构的时序逻辑电路也有准确的表达方式。
在可综合的模型中,通常用always块或者@(posedgeclk)或(negedgeclk)结构表达时序逻辑。
实验为二分之一分频器模型。
在always块中,被赋值信号都必须定义为reg型,对于reg型数据,如果未对它进行赋值,仿真工具会认为它是不定态的。
为了正确观察结果,在可综合模块中,常定义一个复位信号reset,其为低电平时对寄存器进行复位。
实验内容:分频时序电路的仿真测试实验代码:modulehalf_clk(reset,clk_in,clk_out);inputclk_in,reset;outputclk_out;regclk_out;always @(posedgeclk_in)beginif(!reset) clk_out=0;elseclk_out=~clk_out;endendmodule实验仿真:测试程序:`timescale 1ns/100ps`define clk_cycle 50module top;reg clk,reset;wire clk_out;always #`clk_cycle clk=~clk;initialbeginclk=0;reset=1;#10 reset=0;#110 reset=1;#100000 $stop;endhalf_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out));endmodule仿真结果:选做一设计一个字节(8位)比较器实验内容:比较两个字节的大小,若a[7:0]大于b[7:0],则输出高电平,否则输出低电平。
实验代码:module compare8(equal,a,b);input [7:0]a,b;output equal;reg equal;always@(a or b)if(a>b)equal=1;elseequal=0;endmodule实验仿真:测试程序:`timescale 1ns/1ns`include "./compare8.v"module test8;reg [7:0]a;reg [7:0]b;wire equal;initialbegina=8'b10000000;b=8'b00000000;#100 a=8'b00001000;b=8'b00001111;#100 a=8'b00001111;b=8'b00011111;#100 a=8'b11111111;b=8'b11111111;#100 a=8'b10101010;b=8'b00001111;#100 $stop;endcompare8 m(.equal(equal),.a(a),.b(b));endmodule仿真结果:第二次实验课练习三利用条件语句实现计数分频时序电路实验目的:(1)掌握条件语句在简单时序模块设计中的使用(2)学习在Verilog模块中应用计数器(3)学习测试模块的编写、综合和不同层次的仿真实验原理:在可综合的Verilog HDL模型中,常用的条件语句有if …else和case…endcase两种结构,用法和C语言相似。
1. if语句(1)i f(表达式)语句(2) if(表达式)语句1else语句2(3)i f(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;……2. case语句(1)case(表达式)<case分支项>endcase(2)casez(表达式) <case分支项>endcase(3)casex(表达式) <case分支项>endcase前者用于不太复杂的分支关系,实际编写模块时常用的是后者。
实验代码是一个可综合风格的分频器,可将10M时钟分频为500K,基本原理和二分之一分频器类似,但需要定义一个计数器以准确获得1/20分频。
实验内容:进行所给代码计数分频器的仿真测试并观察输出波形实验代码:modulefdivsion(RESET,F10M,F500K);input F10M,RESET;output F500K;reg F500K;reg [7:0]j;always @(posedge F10M)if(!RESET)beginF500K<=0;j<=0;endelsebeginif(j==9)beginj<=0;F500K<=~F500K;endelsej<=j+1;endendmodule实验仿真:测试程序:`timescale 1ns/100ps`defineclk_cycle 50moduledivision_top;reg F10M,RESET;wire F500K_clk;always #`clk_cycle F10M=~F10M;initialbeginRESET=1;F10M=0;#100 RESET=0;#100 RESET=1;#10000 $stop;endfdivsion m0(.RESET(RESET),.F10M(F10M),.F500K(F500K_clk));endmodule仿真结果:练习五用always块实现较复杂的组合逻辑电路实验目的:(1)掌握用always实现较大组合逻辑电路的方法;(2)进一步了解assign与always两种组合电路实现方法的区别和注意点;(3)学习测试模块中随机数的产生和应用;(4)学习综合不同层次的仿真,并比较结果。
实验原理:(1)自触发always块:例:采用非阻塞赋值的自触发振荡器module osc2(clk);outputclk;regclk;initial #10 clk=0;always @(clk) #10 clk<=~clk;endmodule@(clk)的第一次触发之后,非阻塞赋值的RHS表达式便计算出来,并把值赋给LHS的时间并安排在更新事件队列中。
在非阻塞赋值更新事件队列被激活之前,又遇到了@(clk)触发语句,并且always块再次对clk的值变化产生反应。
当非阻塞LHS的值在同一时刻被更新时,@(clk)再一次触发。
本实验示例中使用了电平敏感的always块,所谓电平敏感的触发条件:@后的括号内电平里表中的任何一个电平发生变化(与时序逻辑不同,它在@后的括号内没有沿敏感关键词,如posedge或negedge),就能触发always块的动作。
(2)assign与always使用assign结构来实现组合逻辑电路,如果逻辑关系比较复杂,不容易理解语句的功能,而适当采用always来设计组合逻辑,使源代码语句的功能容易理解。