实验(一):十进制同步计数器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与仿真实验 1、实验目的: (1) 掌握同步计数器的逻辑功能及使用方法。 (2) 学会用VHDL语言设计同步计数器。 (3) 掌握FPGA实验箱的使用。 2、实验原理: 同步时序电路输出状态与时钟同步,并且每一个状态都是“稳定状态“,在任意时刻,几个输入量可以同时变化。 3、实验内容: (1)用VHDL语言编写同步计数器源程序。 (2)将源程序进行综合、优化及功能仿真。 4、VHDL仿真实验 (1)为此工程新建一个文件夹。启动QuartusII软件工作平台,新建工程设计文件名为CNT10.vhd。在新建的VHDL模型窗口下编写源程序代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1'THEN CQI := (OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1'THEN IF EN='1'THEN IF CQI<9 THEN CQI :=CQI+1; ELSE CQI :=(OTHERS=>'0'); END IF; END IF; END IF; IF CQI=9 THEN COUT<='1'; ELSE COUT<='0'; END IF; CQ<=CQI; END PROCESS; END behav; (3) (4) 创建工程及全程编译。完成源代码输入后即可创建工程然后进入全程编译,检查设计是否正确。选择Tools->Netlist Viewers->RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图: (5) 仿真。建立波形编辑文件进行功能呢个仿真,仿真结果如下图所示,在脉冲上升沿出现时,只要满足RST=0,ENA=1,计数器就开始计数。 (6) 硬件测试。完成仿真实验后,若仿真结果无误,则进行锁脚,然后下载到FPGA实验箱上进行硬件测试。 选择试验箱的模式为模式5,时钟选择为CLK0(PIN_28脚)使能信号ENA(PIN_233),复位信号RST(PIN_234),进位信号COUT(PIN_1)。 4、实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
: (1)用VHDL语言编写十进制同步计数器源程序。 (2)对计数器的逻辑功能进行仿真并
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
仿真结果。 (3)将程序下载到硬件上进行测试,观察实验结果,加深对实验程序的理解。 实验(三):8位16进制频率计设计 程序设计与硬件实验 1、 实验目的:设计8位16进制频率计,学习较复杂的数字系统设计方法。 2、 实验原理; 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数器被植入锁存器,计数器清零,为下一个测频计数周期作好准备。测频控制信号可以由一个独立的发生器来产生,即本实验程序中的FTCTRL。 3、 实验内容: (1) 分别测试各个子模块的功能,最终完成频率计完整设计和硬件实现,并给出其测频时序波形及其分析。建议选择电路模式5,8个数码管以16进制形式显示频率输出;待测频率输入FIN由CLK0输入,频率可选4Hz、256Hz、3Hz……50MHz等;1 Hz测频控制信号CKL 1Hz可由CLK2输入(用跳线选1Hz)。注意:这时8个数码管的测频显示值也是16进制的。 顶层程序文件: LIBRARY IEEE; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FREQTEST IS PORT(CLK1HZ : IN STD_LOGIC; FSIN : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END FREQTEST; ARCHITECTURE struc OF FREQTEST IS COMPONENT FTCTRL PORT( CLKK : IN STD_LOGIC; CNT_EN : OUT STD_LOGIC; RST_CNT : OUT STD_LOGIC; load : OUT STD_LOGIC); END COMPONENT; COMPONENT COUNTER32B PORT( FIN : IN STD_LOGIC; CLR : IN STD_LOGIC; ENABLE : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END COMPONENT; COMPONENT REG32B PORT( LK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END COMPONENT; SIGNAL TSTEN1 : STD_LOGIC; SIGNAL CLR_CNT1 : STD_LOGIC; SIGNAL load1 : STD_LOGIC; SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL CARRY_OUT1 : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN U1 : FTCTRL PORT MAP(CLKK => CLK1HZ,CNT_EN => TSTEN1, RST_CNT => CLR_CNT1,load => load1); U2 : REG32B PORT MAP(LK => load1,DIN => DTO1,DOUT => DOUT); U3 : COUNTER32B PORT MAP(FIN => FSIN,CLR => CLR_CNT1, ENABLE => TSTEN1,DOUT =>DTO1); END struc; 测频控制电路程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FTCTRL IS PORT( CLKK : IN STD_LOGIC; CNT_EN : OUT STD_LOGIC; RST_CNT : OUT STD_LOGIC; load : OUT STD_LOGIC); END FTCTRL; ARCHITECTURE behav OF FTCTRL IS SIGNAL Div2CLK :STD_LOGIC; BEGIN PROCESS(CLKK) BEGIN IF CLKK'EVENT AND CLKK ='1' THEN Div2CLK <=NOT Div2CLK; END IF; END PROCESS; PROCESS(CLKK,Div2CLK) BEGIN IF CLKK = '0' AND Div2CLK = '0' THEN RST_CNT <='1'; ELSE RST_CNT <= '0' ;END IF; END PROCESS; load <= NOT Div2CLK; CNT_EN <= Div2CLK; END behav; 32位锁存器: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT( LK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END REG32B; ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(LK,DIN) BEGIN IF LK'EVENT AND LK = '1' THEN DOUT <= DIN; END IF; END PROCESS; END behav; 32位计数器: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNTER32B IS PORT( FIN : IN STD_LOGIC; CLR : IN STD_LOGIC; ENABLE : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END COUNTER32B; ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI : STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN PROCESS(FIN,CLR,ENABLE) BEGIN IF CLR = '1' THEN CQI <= (OTHERS => '0'); ELSIF FIN'EVENT AND FIN = '1' THEN IF ENABLE = '1' THEN CQI <= CQI + 1;END IF; END IF; END PROCESS; DOUT <= CQI; END behav; (2)通过顶层文件完成整个系统的实验仿真,观察RTL电路结构图: (2) 硬件测试,选择电路模式5,下载程序到FPGA实验箱,完成硬件测试 模式5的电路结构 硬件测试的设置图: 4、 实验报告 给出频率计设计的完整的实验报告。