VHDL语言掌握——北京理工大学集成电路设计实践一

本文介绍了使用VHDL进行数字电路设计,包括四通道分频器和16位超前进位加法器的实现。分频器通过计数器实现不同频率的时钟输出,而16位加法器通过四级4位超前进位加法器并联完成快速加法。实验代码展示了VHDL的结构和流程,并给出了仿真结果。
摘要由CSDN通过智能技术生成

实验一:4通道分频器的设计

一、实验目的

(1)熟悉软件环境

(2)理解用VHDL进行设计综合的流程和方法

(3)掌握VHDL的代码结构及电路描述方法

(4)理解并行语句和顺序语句

(5)用VHDL语言编写一个四通道分频器及其测试文件

二、实验原理

在数字电路中,常常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号,即分频器。实现分频器的方法有很多,最常用的是使用计数器分频的方式,而分频也分为偶数分频(2N)、奇数分频(2N+1)、半整数分频(N-0.5)等等,对于最简单的偶数分频,只需要使用模值位N的计数器实现50%占空比的时钟信号,即每次计数满N时输出时钟信号翻转即可。

三、实验内容

本次的实验任务是将一个1Mhz的信号分频成100khz、10khz、1khz、100hz。实验要求每相差十倍频率就有脉冲输出,推荐采用十进制计数器对信号进行分频,即判断输入信号上升沿或下降沿的个数,每计满5个即让输出信号电平翻转,以此实现10分频。

然后将10进制计数器做成COMPENENT,利用元件例化语句实现调用,在测试文件(TEST-BENCH,TB)中只需要给输入1Mhz方波信号。

 

图1 分频器示意图

四、实验代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY FPQ IS

  GENERIC(N:INTEGER:=10);

  PORT(FPQ_in:IN STD_LOGIC;

       FPQ_out_0:BUFFER STD_LOGIC;

       FPQ_out_1:BUFFER STD_LOGIC;

       FPQ_out_2:BUFFER STD_LOGIC;

       FPQ_out_3:BUFFER STD_LOGIC);

END FPQ;

ARCHITECTURE behavior OF FPQ IS

       SIGNAL TEMP_0:INTEGER RANGE 0 TO N-1;

       SIGNAL TEMP_1:INTEGER RANGE 0 TO N-1;

       SIGNAL TEMP_2:INTEGER RANGE 0 TO N-1;

       SIGNAL TEMP_3:INTEGER RANGE 0 TO N-1;

BEGIN

       PROCESS(FPQ_in)

       BEGIN

              IF(FPQ_in'EVENT AND FPQ_in='1')THEN

                     IF(TEMP_0<N-1)THEN

                            TEMP_0<=TEMP_0+1;

                     ELSE

                            TEMP_0<=0;

                     END IF;

              END IF;

       END PROCESS;

       PROCESS(TEMP_0)

       BEGIN

              IF(TEMP_0<N/2)THEN

              FPQ_out_0<='1';

              ELSE

              FPQ_out_0<='0';

              END IF;

       END PROCESS;

       PROCESS(FPQ_out_0)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值