关于这个vhdl语言的问题,需要详细的解释,高分求助

经过该八选一模块将车费和路程显示出来。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity xxx1 is
port(c:in std_logic_vector(2 downto 0);
dp:out std_logic;
a1,a2,a3,a4,b1,b2,b3,b4:in std_logic_vector(3 downto 0);
d:out std_logic_vector(3 downto 0));
end xxx1;
architecture rt1 of xxx1 is
begin
process(c,a1,a2,a3,a4,b1,b2,b3,b4)
variable comb:std_logic_vector(2 downto 0);
begin
comb:=c;
case comb is
when"000"=>d<=a1;
dp<='0';
when"001"=>d<=a2;
dp<='0';
when"010"=>d<=a3;
dp<='1';
when"011"=>d<=a4;
dp<='0';
when"100"=>d<=b1;
dp<='0';
when"101"=>d<=b2;
dp<='0';
when"110"=>d<=b3;
dp<='1';
when"111"=>d<=b4;
dp<='0';
when others=>null;
end case;
end process;
end rt1;
模块SE见图13-5。

图13-5 模块SE
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity se is
port(clk:in std_logic;
a:out std_logic_vector(2 downto 0));
end se;
architecture rt1 of se is
begin
process(clk)
variable b:std_logic_vector(2 downto 0);
begin
if(clk'event and clk='1')then
if(b="111")then
b:="000";
else
b:=b+1;
end if;
end if;
a<=b;
end process;
end rt1;
模块DI见图13-6

图13-6 模块DI
library ieee;
use ieee.std_logic_1164.all;
entity di is
port(d:in std_logic_vector(3 downto 0);
q:out std_logic_vector(6 downto 0));
end di;
architecture rt1 of di is
begin
process(d)
begin
case d is
when"0000"=>q<="0111111";
when"0001"=>q<="0000110";
when"0010"=>q<="1011011";
when"0011"=>q<="1001111";
when"0100"=>q<="1100110";
when"0101"=>q<="1101101";
when"0110"=>q<="1111101";
when"0111"=>q<="0100111";
when"1000"=>q<="1111111";
when others=>q<="1101111";
end case;
end process;
end rt1;

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity xxx1 is
port(c:in std_logic_vector(2 downto 0); --定义宽度为3的逻辑矢量
dp:out std_logic;
a1,a2,a3,a4,b1,b2,b3,b4:in std_logic_vector(3 downto 0);
d:out std_logic_vector(3 downto 0)); --定义宽度为4的逻辑矢量
end xxx1;
architecture rt1 of xxx1 is --定义结构体
begin
process(c,a1,a2,a3,a4,b1,b2,b3,b4) --一个进程
variable comb:std_logic_vector(2 downto 0); --定义该进程中的变量
begin
comb:=c; --变量的赋值
case comb is --多选一的条件赋值语句,为d赋值
when"000"=>d<=a1;
dp<='0';
when"001"=>d<=a2;
dp<='0';
when"010"=>d<=a3;
dp<='1';
when"011"=>d<=a4;
dp<='0';
when"100"=>d<=b1;
dp<='0';
when"101"=>d<=b2;
dp<='0';
when"110"=>d<=b3;
dp<='1';
when"111"=>d<=b4;
dp<='0';
when others=>null;
end case;
end process;
end rt1;
模块SE见图13-5。

图13-5 模块SE
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity se is
port(clk:in std_logic;
a:out std_logic_vector(2 downto 0));
end se;
architecture rt1 of se is --定义结构体
begin
process(clk) --一个计数进程
variable b:std_logic_vector(2 downto 0); --定义该进程中的变量
begin
if(clk'event and clk='1')then --0到7的循环加1计数
if(b="111")then
b:="000";
else
b:=b+1;
end if;
end if;
a<=b;
end process;
end rt1;
模块DI见图13-6

图13-6 模块DI
library ieee;
use ieee.std_logic_1164.all;
entity di is
port(d:in std_logic_vector(3 downto 0);
q:out std_logic_vector(6 downto 0));
end di;
architecture rt1 of di is --定义结构体
begin
process(d) --将d的十进制数值用七段码表示出来
begin
case d is --利用case语句为七段码q赋值
when"0000"=>q<="0111111";
when"0001"=>q<="0000110";
when"0010"=>q<="1011011";
when"0011"=>q<="1001111";
when"0100"=>q<="1100110";
when"0101"=>q<="1101101";
when"0110"=>q<="1111101";
when"0111"=>q<="0100111";
when"1000"=>q<="1111111";
when others=>q<="1101111";
end case;
end process;
end rt1;
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-06-18
你在什么地方复制来的,乱七八糟的

用VHDL语言设计一个共阴极七段数码管的译码电路,急求大神解答,高分求助...
74LS49是一个7段译码器,其VHDL描述如下:LIBRARYIEEE;USE IEEE.Std_logic_1164.ALL;ENTITYls49 IS PORT(bl: IN Std_logic;bi: IN Std_logic_vector(3 DOWNTO 0);a,b,c,d,e,f,g: OUT Std_logic);ENDls49;ARCHITECTURE behavl_49 OF ls49 IS SIGNAL s: Std_logic_vector(6 DOWNTO ...

高分求助C++代码解释
它们相加,你只需要将指数相同的2项的系数相加,指数不变。比如3x^3+5x^3,它们的指数相同,根据刚刚说的系数相加指数不变结果就是(3+5)x^3也就是8x^3。还有就是如果相加后的结果是0,就不再输出这一项。减法和加法道理一样。同时相加后所得的结果的最高次幂和相加前2个结果的最高次幂相同...

关于P(A|B)的问题,高分求助,帮帮忙吧,要崩溃了
具体到你的问题:(1). P(A|B)就是说,已知这个学生是女生,她能毕业的概率是多少。根据题目已知条件就知道结果是:P(A|B) = 0.85 如果你用公式计算也是一样的,AB 表示:事件A和事件B都发生,即该学生是女生且能毕业。P(A|B) = P(AB) \/ P(B) = 0.35 * 0.85 \/ 0.35 = 0....

高分求助关于光盘记录的若干问题。。。
第一个问题:如果不考虑可否引导的话(仅作为数据备份用)可以,如果要引导的话不能!第二个问题:如果刻录了可引导的光盘映像,不可以!第三个问题:可以,这个三言两语说不清,楼主多多浏览dos之家之类的网站便知。第四个问题:DVD格式是标准的MPEG2格式,VBR?RM的格式是压缩率比较大的格式,但是不...

关于JNI的stack overflow的问题,高分求助
您好,很高兴为您解答问题。stack overflow因为局部变量太大了。但是时有时无很可能因为你程序里还有别的问题,比如数组越界。stack overflow还有一种可能是递归太深。如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】希望我的回答对您有所帮助,希望能采纳。~ O(∩_∩)O~

高分求助关于acm的问题!
学习的关键是目的,先要明确学c++目的是干什么?这个问题搞清楚了,就知道“要不要再把c++给学了”。实际上,您学了c语言,进一步学习c++很容易,而且,相关技术和应用更广泛,对您扩展和提高很有帮助。高效学习方法:边学边练边实践,借助动画视频演练--结合实际训练,一定会很快学会的。世上无难事...

急切求助,几个关于高分子的问题,有高分追加
1、 在此模型中,假定高分子链是由n个长度为l的且不占体积的刚性统计单元组成,相邻的两单元间自由连接,即每一单元在空间中不依赖于前一单元而无规取向。根据无规飞行数学理论,得到链两端距离的均方值 (均方末端距)为nl2。当n=104时,链的均方根末端距只有整个链朝一个方向完全伸直时的末端距(...

C语言习题求助,编译通过,运行错误,高分求解
由于 C 语言本身的最大特点就是:其不仅是编程格式上非常地自由,而且在对其进行编译时也是非常自由的(编译器能够放过去很多它认为不是问题的问题),但自由的同时也给程序员带来了程序调试和运行上的困难。有些错误在编译的时候是能够发现的(例如:程序语法错误)、而有些错误在编译程序的时候却是不...

关于与人交流、说话,词不达意的问题,真诚求助【高分悬赏】
1.有种可能,是心理问题,因为学历问题,还有担心自己涉世未深,你要想想过去的一切不管是好是坏,都已经过去了,最重要是过好现在的每分每秒,你只有20岁左右吧,不管什么,你要自信为自己去拼,在外面有谁在乎你是不是在家呆了多长时间呢,要现在,做事 2.你是不是觉得这个问题很严重,其实在常人...

求助,关于msvcrt.DLL文件问题,高分如果解决可加分。
我估计是某视频插件出了问题,如果可以覆盖安装,就覆盖一次。你用的办法,重注册这个DLL,可到安全模式下进行。另外,建议使用360等,修复一下IE,并清理一下IE插件。你说你已经重装过系统,但可以肯定的是,重装系统,是不会再出现这种情况的。这个提示一般跟两个地方有关系:1,加载的IE插件 2,...

相似回答