在VHDL中如何编写“符号拓展” 函数?

作者&投稿:在奖 (若有异议请与网页底部的电邮联系)
vhdl语言中取余符号rem如何用 ,给个例句吧!(急)~

rem是vhdl标准库numeric_std里面定义的函数
mod(取模)/rem(取余)对于两个正的输入来说结果一致 否则有区别
A rem B = A - ( A / B ) * B --余数运算符 利用操作数A决定结果的正负号
A mod B = A - B * N --取模运算符 利用操作数B决定结果的正负号
并且都是用于仿真而不可综合的
5 mod 3 = 2
(-5) mod 3 = 1
5 mod (-3) = -1
(-5) mod (-3) = -2
5 rem 3 = 2
(-5) rem 3 = -2
5 rem (-3) = 2
(-5) rem (-3) = -2
VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

rem是vhdl标准库numeric_std里面定义的函数
mod(取模)/rem(取余)对于两个正的输入来说结果一致 否则有区别
A rem B = A - ( A / B ) * B --余数运算符 利用操作数A决定结果的正负号
A mod B = A - B * N --取模运算符 利用操作数B决定结果的正负号
并且都是用于仿真而不可综合的
5 mod 3 = 2
(-5) mod 3 = 1
5 mod (-3) = -1
(-5) mod (-3) = -2
5 rem 3 = 2
(-5) rem 3 = -2
5 rem (-3) = 2
(-5) rem (-3) = -2
VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

IEEE标准库numeric_std提供位宽扩展函数resize
用法举例如下

library ieee;
use ieee.numeric_std.all;
...
...
signal a: std_logic_vector(7 downto 0);
signal b: std_logic_vector(8 downto 0);
...
b<= std_logic_vector(resize(signed(a), b'length));
...

另外还有两个函数SXT/EXT 由std_logic_arith提供 用起来更简便一些 但它们不是标准库函数
例如
USE IEEE.STD_LOGIC_ARITH.ALL;
b <= SXT(a, b'LENGTH);


用VHDL编写分频器程序
这个一般有两种方法,一种是分奇偶分频,因为奇偶分频不一样,所以先判断是奇偶,然后再相应处理就可以了,另一种是一种整体算法思想,不需要判断奇偶数。。。顶层模块程序:entity control_clk is port(Clk_i : in std_logic;Data_i : in std_logic_vector(4 downto 0);Clk_div : o...

如何用VHDL编写正弦波,其原理是什么
用DDS 直接数字合成。一般信号发生器都这么做的。保存1\/4个波形放在ROM里。或者用Codic算法。这些网上都有原理,可以查这一方面的资料的。

VHDL程序设计中,用WITH_SELECT_WHEN语句描述4个16位至1个16位输出的4...
1、首先第一步就是把4个寄存器的输出送到某一组输出线上,可使用四选一多路选择器,也可使用三态门。用四选一实现和用三态门实现。2、然后就是进行程序的编写, If-then语句4选1选择器(P92)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT ( a,b,c,d: IN std_logic;s:...

如何用VHDL语言编写一个16*16的点阵显示电路
根据点阵的不同,方法会有差别若16*16中每行之间采用的是动态显示,16行轮流点亮, 则在一个时间片(如0.5秒)内应该循环刷新这16行,显示某一个字。接下来的一个时间片内,显示下一个字的16行。 若16*16中16行采用的是静态显示,16行同时点亮, 则在一个时间片(如0.5秒)开始送出16行的信息...

VHDL编程时,如何编写保持前一状态的程序。高手进 加分 程序示例如下...
直接在实体定义的时候把g设置成inout就可以了,然后当第三种情况直接g<=g;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.all;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity aaa is Port (clk : in std_logic;x :in std_logic_vector(3 downto 0);g :inout std_logic )...

求程序:用vhdl语言编写出20进制计数器并在数码管上显示出来
计数模块 library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity count20 is port(clk:in std_logic;out1a,out1b,out2a,out2b:out std_logic_vector (7 downto 0):="00000000");end count20;architecture Behavioral of count20 is component disp is port(clk:in std_logic;input: integer range...

如何用VHDL编写十六进制加法计数器
这就是一个32位加法计数器,有清零、复位和使能输入 entity auto_counter is port (clk : in std_logic;rst_n : in std_logic;clr : in std_logic;en : in std_logic;counter : std_logic_vector(31 downto 0) < type > );end auto_counter;architecture behave of auto...

如何用VHDL语言编写一个模为40,两位8421BCD码输出的减法计数器?_百度...
library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mo40 is port(clk,rst:in std_logic;jinw:out std_logic;y:out std_logic_vector(7 downto 0));end mo40;architecture shu of mo40 is begin process(clk,rst)variable ...

在VHDL中如何编写“符号拓展” 函数?
IEEE标准库numeric_std提供位宽扩展函数resize 用法举例如下 library ieee;use ieee.numeric_std.all;...signal a: std_logic_vector(7 downto 0);signal b: std_logic_vector(8 downto 0);...b<= std_logic_vector(resize(signed(a), b'length));...另外还有两个函数SXT\/EXT 由std_logic...

用VHDL编写三位二进制计数器
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity question is port (ci:in std_logic; --计数信号 reset: in std_logic; --异步复位 load: in std_logic; --同步置数 clk: in std_logic;d : in std_logic_vector(2 downto 0); --置数值...

隆化县14738446918: 在VHDL中如何编写“符号拓展” 函数? -
善凭胰酶: IEEE标准库numeric_std提供位宽扩展函数resize 用法举例如下 library ieee; use ieee.numeric_std.all; ... ... signal a: std_logic_vector(7 downto 0); signal b: std_logic_vector(8 downto 0); ... b<= std_logic_vector(resize(signed(a), b'length)); ... 另外...

隆化县14738446918: vhdl的文本源程序的拓展名是什么 -
善凭胰酶: QUARTUSII(我用的)中一般情况下,用到的文件扩展名: .vhd:VHDL源代码文件 .bsf:符号图文件 .bdf:顶层原理图文件 .mif:存储器初始化文件 .qpf:工程文件 全部文件扩展名在软件的帮助文档中有,你可以查一下.

隆化县14738446918: VHDL怎样把8位数扩展到10位数 -
善凭胰酶: signal a : std_logic_vector(7 downto 0); signal b : std_logic_vector(9 downto 0); a<="00001111"; b<="10"&a; 使用&并置运算符 b最后等于”1000001111“

隆化县14738446918: 如何用VHDL编写多串口扩展模块? 不用其他芯片,只在CPLD或FPGA上接上多个串口头来实现 -
善凭胰酶: 那就用普通IO口来模拟串口功能

隆化县14738446918: VHDL语言中,SXT是什么意思?格式如:RegB<=SXT(RegA,WID... -
善凭胰酶: 符号位扩展

隆化县14738446918: C语言问题 - --扩展字符 -
善凭胰酶: #include<stdio.h> void expand( char *s1, char *s2 ) { while( *s2 = *s1 ) { char prev = *( s1 - 1 ), curr = *s1, next = *( s1 + 1 ); if( curr == '-' && prev < next ) { char c = prev + 1; while( c < next ) *s2++ = c++; --s2; } ++s1; ++s2; } } int main( ) { char in[99], out[...

隆化县14738446918: quartus中如何调用自己写的vhdl模块 -
善凭胰酶: 看你在声明地方调用,原理图最简单,生成符号文件后直接添加元件,在工程文件夹里就有,VHDL和Verilog调用就用它们自己的语法格式对应好参数列表和端口列表就行了 从你的错误信息看你的顶层模块是qiangda,而你调用的VHDL程序的模块名(即entity后面的名字)也是qiangda,注意不要和顶层模块重名 是否可以解决您的问题?

隆化县14738446918: 符号数的扩展 -
善凭胰酶: 你理解错了!有符号数是用最高位是0或1来标记正负的,如果最高位是0(如8位数中的第7位,从0位开始算的)表示正数,而是1表示负数.16位数中的第15位控制符号.符号数扩展实称为带符号扩展. 只是位数的扩展,不能改变原值的! ...

隆化县14738446918: 举例解释符号扩展传送指令 -
善凭胰酶: movzx和movsx都是286 的指令,你的程序无法通过编译是因为你没写.286这个伪指令所以宏汇编程序认为movzx不在默认的8086指令集内. IBM-PC汇编语言指令

隆化县14738446918: 用vhdl语言,怎么编写n输入或门.急!!
善凭胰酶: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GATE IS PORT(A,B:IN STD_LOGIC; YAND,YOR,YXOR,YNOT:OUT STD_LOGIC);END GATE;ARCHITECTURE ART OF GATE IS BEGIN YAND<=A AND B; YOR<=A OR B; YXOR<=A XOR B; YNOT<=NOT a; END ART

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网