我是靠谱客的博主 害怕灰狼,最近开发中收集的这篇文章主要介绍左移寄存器vhdl_基于VHDL的移位寄存器设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文通过对EDA和VHDL的简单说明,阐述了基于

VHDL硬件描述语言的移位寄存器设计方法,程序简单,在电子

设计中有一定的推广价值。

关键词

移位寄存器   设计  EDA  VHDL

随着科学技术的不断进步,尤其是计算机产业的日新月

异,作为计算机一个非常重要的部件——移位寄存器,从最早

只能简单的左右移动功能的寄存器到现在广泛应用的具有寄存

代码、实现数据的串行并行转换、数据运算和数据处理功能的

移位寄存器,它正朝着体小量轻能强的方向不断发展,本文介

绍了利用生成语句设计的16位串入串出移位寄存器的方法。

1 EDA基本介绍

EDA是电子设计自动化(Electronic Design Automation)

的缩写。EDA技术是指以计算机为工作平台,融合了应用电子技

术、计算机技术、信息处理及智能化技术的最新成果,进行电

子产品的自动设计。设计者在EDA软件平台上,用硬件描述语

言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化

简、分割、综合、优化、布局、布线和仿真,直至对于特定目

标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出

现,极大地提高了电路设计的效率和可操作性,减轻了设计者

的劳动强度。而在EDA设计中,经常会用到移位寄存的功能,如

并行传送的数据转换成串行传送的数据时的移位以及乘法器的

部分积右移等。因此,移位寄存起的设计在基于数字系统的设

计中显得十分必要。

2 VHDL简介

VHDL是工业标准的硬件描述语言,称之为VHSIC(Very

High

Speed

Integrated

Circuit

Hardware

Description

Language),简称VHDL。VHDL语言主要用于描述数字系统的结

构,行为,功能和接口。除了含有许多具有硬件特征的语句

外,VHDL的语言形式、描述风格以及语法是十分类似于一般的

计算机高级语言。VHDL的程序结构特点是将一项工程设计,或

称设计实体(可以是一个元件,一个电路模块或一个系统)分

成外部(或称可视部分及端口)和内部(或称不可视部分),即

涉及实体的内部功能和算法完成部分。在对一个设计实体定义

了外部界面后,一旦其内部开发完成后,其他的设计就可以直

接调用这个实体。这种将设计实体分成内外部分的概念是VHDL

系统设计的基本点。

3 移位寄存器

寄存器按照功能的不同分为基本寄存器和移位寄存器两大

类。基本寄存器只能并行送入数据,需要时也只能并行输出。

移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左

移,数据既可以并行输入、并行输出,也可以串行输入、串行

输出,还可以并行输入、串行输出,串行输入、并行输出,十

分灵活,用途也很广。

4 移位寄存器的设计过程

4.1 工作原理

如图所示:串入串出移位寄存器有数据输入端和同步时

钟输入端,一个数据输出端。在同步时钟的作用下,前级的数

据向后级移动。语句GENERATE用来产生多个相同的结构。利用

基于VHDL的移位寄存器设计

景兴红  刘  陈  王泽芳

(重庆正大软件职业技术学院 400056)

GENERATE和D触发器元件dff,可以很方便地设计出16位串入串

出移位寄存器。

4.2 利用VHDL编写程序

(1)D触发器的程序

library ieee;

use ieee.std_logic_1164.all;

entity dff_logic is

port ( d, clk: in std_logic;

q: out std_logic);

end dff_logic;

architecture dff1 of dff_logic is

begin

p1: process (clk)

begin

if (clk ' event and clk = 1 ) then

q <= d;

end if;

end process p;

end dff;

(2)顶层文件-16位移位寄存器的VHDL程序

library ieee  ;

use ieee.std_logic_1164.all;

entity shift_16 is

port (a,clk:in std_logic;

b:out std_logic);

end shift_16;

architecture sample of shift_16 is

component dff

port (d,clk:in std_logic;

q:out std_logic);

end component;

signal z:std_logic_vector (0 to 16);

begin

z(0) <= a;

g1:for i in 0 to 15 generate

dffx:dff port map (z(i),clk,z(i+1));

end generate;

b <= z(16);

end sample;

参考文献

[1]潘松.VHDL实用教程【M】.成都:电子科技大学出版社

.2000;[2]Jayaram.Bhaker.VHDL教程.北京:机械工业出版社

.2006.

最后

以上就是害怕灰狼为你收集整理的左移寄存器vhdl_基于VHDL的移位寄存器设计的全部内容,希望文章能够帮你解决左移寄存器vhdl_基于VHDL的移位寄存器设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部