




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、F0803017 周仕成 5080309600VHDL 实验报告F0803017 周仕成5080309600目录实验三.4 位可逆计数器,4 位可逆二进制代码格雷码转换器设计2实验六. 序列检测器的设计5实验七. 基于 ROM 的正弦波发生器的设计8实验八. 数字密码锁的设计与实现131F0803017 周仕成 5080309600实验三.4 位可逆计数器,4 位可逆二进制代码格雷码转换器设计设计思路及步骤:1) 4 位可逆计数器:1. 定义各个量:clk 为时钟输入(50MHz),clkdiv 为分频后的时钟,count 为分频计数,mode 为 SW17 模式控制,rst 为 KEY3 异
2、步复位开关;2. 本实验的时钟输入为 50MHz,定义为 clk,为此设计时需要将其分频为 50Hz,需 225 分频,因此,代码中,需要有一个 count 作为一个 225 计数器,同时,定义分频后的时钟为 clk_div;3. 在主程序中,count 从 0 计数到 224-1,检测时钟输入 clk,在 clk 触发上升沿时,使 count 加 1,当 count 为 224-1 时,clkout 作一次 not 变换,如此便达到分频的目的。4. 分频结束后,需要在另一个 process 中,首先检测是否异步复位开关 key 为 0,叵为 0,则复位。否则,检测 clk_div,当其触发上
3、升沿时,检测模式控制,按模式控制,对 num 加 1 或减 1;2) 4 位可逆二进制代码-格雷码转换器:1 各量的定义 :SW(17) 为 SW17 模式控制, SW3-SW0 为拨码开关输入,LEDR3-LEDR0为转换值的输出;2 检测模式输入,按模式输入值进入各自的 when 语句,相应的输入对应相应的输出。源代码:4 位可逆计数器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT(clk:
4、 INSTD_LOGIC;mode: INSTD_LOGIC;LEDR: OUT STD_LOGIC_VECTOR(17 DOWNTO 0);rst: INSTD_LOGIC);END counter;ARCHITECTURE rtl OF counter ISSIGNAL count: STD_LOGIC_VECTOR(24 DOWNTO 0);SIGNAL clk_div : STD_LOGIC;SIGNAL num: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINclk_div = count(24);LEDR(3) = num(3);LEDR(2) = num(2
5、);2F0803017 周仕成 5080309600LEDR(1) = num(1);LEDR(0) = num(0);PROCESS(clk,count,rst)BEGINIF (rst=0)THEN count=0000000000000000000000000;ELSEIF (clk event AND clk=1) THENIF(count=1111111111111111111111111) THENcount 0);ELSEcount = count+1;END IF ;END IF ;END IF;END PROCESS;PROCESS(clk_div,num,rst)BEGIN
6、IF (rst=0 AND mode=1) THENnum=0000;ELSIF (rst=0 AND mode=0) THENnum=1111;ELSEIF (clk_div event AND clk_div=1)THEN IF (mode=1)THENLEDR(17)=1;num=num+1;ELSELEDR(17)=0;num=num-1;END IF;END IF;END IF;END PROCESS;END rtl;4 位可逆二进制代码-格雷码转换器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.
7、ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY graycode ISPORT(SW :INSTD_LOGIC_VECTOR(17 DOWNTO 0);LEDR: OUT STD_LOGIC_VECTOR(3DOWNTO 0);END graycode;3F0803017 周仕成 5080309600ARCHITECTURE rtl OF graycode ISSIGNAL graycode : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL binary: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL i
8、nput: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINinput(0)=SW(0);input(1)=SW(1);input(2)=SW(2);input(3)=SW(3);graycode =0000 WHEN INPUT=0000 ELSE0001 WHEN INPUT=0001 ELSE0011 WHEN INPUT=0010 ELSE0010 WHEN INPUT=0011 ELSE0110 WHEN INPUT=0100 ELSE0111 WHEN INPUT=0101 ELSE0101 WHEN INPUT=0110 ELSE0100 WHEN INPUT
9、=0111 ELSE1100 WHEN INPUT=1000 ELSE1101 WHEN INPUT=1001 ELSE1111 WHEN INPUT=1010 ELSE1110 WHEN INPUT=1011 ELSE1010 WHEN INPUT=1100 ELSE1011 WHEN INPUT=1101 ELSE1001 WHEN INPUT=1110 ELSE1000 WHEN INPUT=1111;BINARYLEDRLEDR sm=0;if din=1 thenstate=s1;5F0803017 周仕成 5080309600elsestate sm=0;if din=0 then
10、state=s2;elsestate sm=0;if din=1 thenstate=s3;elsestate sm=0;if din=1 thenstate=s4;elsestate sm=0;if din=0 thenstate=s5;elsestate sm=1;if din=1 then6F0803017 周仕成 5080309600state=s3;elsestate=s0;end if;end case;end if;end process;end;仿真结果:实验心得:这次的实验,如果对状态图掌握的好的话还是比较容易的,由于比较生疏,开始状态图并不对,后来在助教老师的提示下修改正确
11、,加深了对状态机的理解。7F0803017 周仕成 5080309600实验七. 基于 ROM 的正弦波发生器的设计设计思路及步骤:1. 原理图:波形数据存储模块(rom)波形发生器控制模块CLK输出锁存模块2. 由于地址宽度为 6,最多存 64 个数据,因此,在一个周期 2 内,等间隔取 64 个采样点;同时,由于数据的宽度为 8,因此数据值的范围可以为 0 到 256,使用 MATLAB 得到这 64 个波形数据,如下:10000000,10001101,10011001,10100101,10110001,10111100,11000111,11010001,11011011,11100
12、011,11101010,11110001,11110110,11111010,11111110,11111111,11111111,11111111,11111110,11111010,11110110,11110001,11101010,11100011,11011011,11010001,11000111,10111100,10110001,10100101,10011001,10001101,10000000,01110011,01100111,01011011,01001111,01000100,00111001,00101111,00100101,00011101,00010110
13、,00001111,00001010,00000110,00000010,00000001,00000000,00000001,00000010,00000110,00001010,00001111,00010110,00011101,00100101,00101111,00111001,01000100,01001111,01011011,01100111,011100113. 定义各量: data 为数据输入,clk 为时钟输入,wave 为波形值的最终输出,count为计数器,memory 为 64 个采样点的存储;4. 首先,先将 64 个采样点存储在 memory 中,程序开始,检测
14、时钟输入 clk,若触发上升沿,检测 count 的值,将相应的 count 从 063 对应的 memory 从 memory0-memory63,用 case 语句关联它们的关系,同时,count 加 1;5. 由此,在仿真时设定相应的时钟参数,便可得到相应的波形输出。源代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ROM ISGENERIC (BITS: INTEGER :=8;WORDS: INTEGER := 64);PORT (ADDR : BUFFER INTEGER RANGE 0 TO WORDS-1;DATA: BUF
15、FER STD_LOGIC_VECTOR(BITS-1 DOWNTO 0);CLK : IN BIT;WAVE: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END ROM;ARCHITECTURE ROM OF ROM ISTYPE VECTOR_ARRAY IS ARRAY(0 TO WORDS-1) OFSTD_LOGIC_VECTOR (BITS-1 DOWNTO 0);SIGNAL COUNT: INTEGER RANGE 0 TO 63;8F0803017 周仕成 5080309600CONSTANT MEMORY: VECTOR_ARRAY :=(10
16、000000,10001101,10011001,10100101,10110001,10111100,11000111,11010001,11011011,11100011,11101010,11110001,11110110,11111010,11111110,11111111,11111111,11111111,11111110,11111010,11110110,11110001,11101010,11100011,11011011,11010001,11000111,10111100,10110001,10100101,10011001,10001101,10000000,01110
17、011,01100111,01011011,01001111,01000100,00111001,00101111,00100101,00011101,00010110,9F0803017 周仕成 508030960000001111,00001010,00000110,00000010,00000001,00000000,00000001,00000010,00000110,00001010,00001111,00010110,00011101,00100101,00101111,00111001,01000100,01001111,01011011,01100111,01110011);b
18、eginPROCESSBEGIN-data WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAV
19、E WAVE WAVE WAVE WAVE WAVE WAVE WAVE WAVE = MEMORY(63);END CASE;COUNT=COUNT+1;END PROCESS;end rom;仿真结果:实验心得:本次实验同样比较简单,通过做这次本次实验,使我了解了基于 ROM 的正弦波发生器的设计,并且,通过实验加深了对 VHDL 实现波形发生器的理解与认识。12F0803017 周仕成 5080309600实验八. 数字密码锁的设计与实现设计思路及步骤:1. 各量定义:input_code 为拨码开关的密码输入,clk 为时钟输入,open_lock 为开锁信号,close_lock 为
20、关锁信号,set 为修改密码信号,rst 为复位信号,dispred 和 dispgreen 分别为红灯和绿灯输出;2. 首先,本实验按异步复位处理,检测复位信号 rst,若为 0,则复位密码置为 00000001,否则,若 set 为 0,密码为当前输入;3. 组合逻辑部分:通过 process 敏感列表,检测 rst,input_code,open_lock,close_lock。若密码正确,亮绿灯,灭红灯,若 open 为 0,则将输入的密码与存储的密码对比,若相等,开锁成功,反之失败;若密码错误,则要红灯灭,绿灯亮,此状态下可修改密码或者关锁,若 close 为 0,则关锁;若 cha
21、nge 为 0,则取得拨码开关的值作为新的密码。4. 由此,可得最终结果。源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity codelock isport( input_code: in std_logic_vector(7 downto 0);rst,open_lock,close_lock,set: in std_logic;dispred,dispgreen: out std_logic);end codelock;architecture codelock_body of codelock issignal code: std_logic_vector(7 downto 0):= 00000001;signal setcode_flag: s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北医药学院药护学院《新媒体与文学》2023-2024学年第二学期期末试卷
- 2024-2025学年福建省龙岩高中高三5月教学质量检测试题语文试题(A卷)试题含解析
- 2025公司劳动合同模板
- 2025届广西南宁市新民中学初三练习题四(山东卷)英语试题含答案
- 云南省屏边县第一中学2025年高三下学期期中质量检测试题语文试题含解析
- 山西师范大学现代文理学院《教学设计与评价》2023-2024学年第二学期期末试卷
- 泰山职业技术学院《词汇学》2023-2024学年第一学期期末试卷
- 永平隧道施工方案
- 2025租赁合同的法律特征和种类
- 2025企业咨询服务合同(参考文本)
- (八省联考)陕西省2025年高考综合改革适应性演练 生物试卷(含答案详解)
- DG-TJ 08-2336-2020 绿道建设技术标准
- 新建农副产品深加工项目立项申请报告
- 工商企业管理毕业论文范文 工商企业管理5000论文范文
- 国际金融学课件完整版
- 2024会计职业规划
- 2024年(中级)多媒体应用设计师软考试题库大全(含真题等)
- 国家电网公司招聘高校毕业生应聘登记表
- 公众号转移合同模板
- 施工现场扬尘控制专项方案
- DB4413-T 44-2024 废气收集处理设施安装维护消防安全指南
评论
0/150
提交评论