




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
pwm信号发生器的设计实验/上机报告课程名称:eda技术及应用专业:电气工程及其自动化成绩:指导教师:xxxx姓名:xxx日期:2013/10/16项目序号:实验二学号:xxxx时间:星期三项目名称:pwm信号发生器的设计组号:地点:xxxxx一、实验目的1、掌握序列发生器和检测器的工作原理;2、初步学会用状态机进行数字系统设计。二、实验环境 quartus ii 7.0 开发系统 三、实验内容用状态机设计实现串序列检测器设计,可以用原理图输入法设计序列信号发生器,要求产生序列:0111010011011010;再进行检测设计,若检测到序列:11010则输出为“1”,否则输出为“0”。并对其进行仿真和硬件测试。四、实验过程本实验可以分为两部分来设计。第一步设计序列信号发生器,在这里可以采用模16的计数器74ls161来产生模16的计数,并由它的4位输出可以产生16种状态,由此可以用来设计序列产生器,也可以采用状态机产生序列,本实验用状态机产生序列。 第二步设计序列检测器,这里用状态机设计,如果为真输出1,为假输出为0; 第三步设计串行转并行输出,将序列并行输出在led管上显示。 第四步是设计一个计数脉冲,记录出现所需要的序列的次数。第五步是将所有模块连接起来,构成一个完整的序列发生和检测设计器。实验代码:1、序列发生器library ieee;use ieee.std_logic_1164.all;entity xulie_produce is序列产生电路port(clk,reset:in std_logic;comb_outputs:out std_logic);-序列输出end xulie_produce;architecture behav of xulie_produce istype fsm_st is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);-状态设计signal current_state,next_state:fsm_st;beginreg:process(reset,clk)主控时序进程beginif reset =1then current_state=s0;elsif clk=1and clkevent then current_state comb_outputs=0;next_state comb_outputs=1;next_state comb_outputs=1;next_state comb_outputs=1;next_state comb_outputs=0;next_state comb_outputs=1;next_state comb_outputs=0;next_state comb_outputs=0;next_state comb_outputs=1;next_state comb_outputs=1;next_state comb_outputs=0;next_state comb_outputs=1;next_state comb_outputs=1;next_state comb_outputs=0;next_state comb_outputs=1;next_state comb_outputs=0;next_state=s0;end case;end process;end behav;2、序列检测器library ieee;use ieee.std_logic_1164.all;entity s_machine is序列检测电路port(clk,reset:in std_logic;state_inputs:in std_logic;-状态转移控制comb_outputs:out std_logic);检测结果输出end s_machine;architecture behav of s_machine istype fsm_st is (s0,s1,s2,s3,s4,s5);signal current_state,next_state:fsm_st;beginreg:process(reset,clk)主控时序进程beginif reset =1then current_state=s0;elsif clk=1and clkevent then current_state comb_outputs=0; if state_inputs=1 then next_state=s1; else next_state comb_outputs=0; if state_inputs=1 then next_state=s2; else next_state comb_outputs=0; if state_inputs=0 then next_state=s3; else next_state comb_outputs=0; if state_inputs=1 then next_state=s4; else next_state comb_outputs=0; if state_inputs=0 then next_state=s5; else next_state comb_outputs=1;-检测到11010输出1 if state_inputs=0 then next_state=s0; else next_state=s1;end if;end case;end process;end behav;3、串行输出变并行输出library ieee;use ieee.std_logic_1164.all;entity shift is 串行变并行电路port(clk,load,a:in std_logic;din :out std_logic_vector(7 downto 0);-并行输出end shift;architecture behav of shift isbegin process(clk,load,a)variable reg8 :std_logic_vector(7 downto 0);beginif clkevent and clk=1then if load=1then reg8(7 downto 1):=reg8(6 downto 0);-load为1时开始装载reg8(0):=a;end if;end if;din=reg8;end process;end behav;4、计数器设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity cntm is 计数电路port (clk,rst,en:in std_logic;a,b,c:out std_logic_vector(3 downto 0);end cntm;architecture behav of cntm issignal a1,b1,c1:std_logic_vector(3 downto 0);beginprocess (clk,rst,en)variable n :integer range 0 to 1000; begin if rst =1 then n:=0; elsif clk event and clk=1 then if en = 1 thenif n100 then n:=n+1;-设计为100计数else n:=0;end if;end if;end if;a1=conv_std_logic_vector(n/100),4);b1=conv_std_logic_vector(n/10)mod 10),4);c1=conv_std_logic_vector(n mod 10),4);a=a1;b=b1;cnew-vhdl file,点击ok后在打开的界面下输入已经设计好的程序。(3)输入完程序后,保存文件选择菜单file-save as,将文件保存到工程文件夹中,文件名不能含有中文字符,最好与程序实体名一样。(4)保存好文件后,一般会提示是否新建一个工程,选择是,如果没有就在菜单打开file-new project wizard项,将出现工程项目建立向导。(5)按照工程项目向导提示设计好工程中要用到的文件放到同一个工程文件夹中,选择实验中用到的芯片和第三方工具(一般默认eda自带的工具箱,在这里不做任何选择)。(6)完成工程项目建立后选择processing-start compilation或选择 按钮开始全程编译,如果编译过程中出现错误或警告提示,则双击错误或警告提示就可以找到该错误或警告在设计文件的位置。(7)在完成设计输入和综合编译以后,可以通过时序仿真来检查设计是否符合要求,这里我们可以通过建立波形文件(.vmf)。在选择file-new-vetor waveform file项后选择ok。(8)设计edit栏选择end time设计时间为50 us ,在view-ulitity windows中选择node finder或按alt+1,然后将所有的输入输出拖到波形文件中,设计好输入时序和输出方式后保存文件。选择processing栏中的start simulation或选择 按钮开始波形仿真。(9)仿真成功后得到了预期的设计效果后,将引脚锁定。方法如下:选择assignment中的pins,将to栏的信号锁定到相应的location引脚列中。 波形仿真:5、 实验总结1.首先用vhdl语言设计序列信号发生器和序列信号检测器模块。2 、为了使设计简化,顶层文件采用原理图法,直接将两个模块连接起来。3、作检测器时要先画出其状态转移图,否则很容易出错。通过本次实验我更加熟悉状态机的使用,还有移位显示输出的设计。我发现每个实验都有很多种方式来实现,不同的人,有不同的思路。这让我们有可以互相学习的机会,学习别人的好的想法。同时这也是这门课最有趣的地方,不同的方式,同样的目的,殊
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南昭通永善县工业园区管理委员会公益性岗位招聘1人备考练习试题及答案解析
- 2025中国平煤神马集团数据科技中心招聘50人备考练习题库及答案解析
- 2025安徽滁州市明光市人民医院招聘工作人员23人备考考试题库附答案解析
- 2025江西中寰投资集团及其下属公司招聘7人备考考试题库附答案解析
- 工厂安全培训照片漫画课件
- 2025甘肃省林业和草原局所属事业单位招聘事业编制189人备考考试题库附答案解析
- 2025四川产业振兴基金投资集团有限公司应届毕业生招聘9人备考考试题库附答案解析
- 建筑系列讲座方案设计模板
- 2025陕西榆林镁业(集团)有限公司招聘(9人)备考考试题库附答案解析
- 掌握化学方程式
- 信息系统工程造价指导书
- 正确解读细菌药敏报告,合理使用抗菌药物
- LS 8010-2014植物油库设计规范
- FZ/T 73001-2016袜子
- 发展心肺耐力与改善身体成分 课件 【新教材同步备课精研】高中体育与健康人教版必修第一册
- 组织行为学核心主题全系列(MBA研修班学生版4日)课件
- 桥梁基础工程施工
- 始祖鸟新员工基础知识考试(NEW)试题含答案
- 渣浆泵基础知识课件
- 布赫液压样本
- 防错验证报告
评论
0/150
提交评论