vhdl的问题,急

vhdl的问题,急,第1张

楼主你是想做个半加器吧。

有很多的小问题啊,例如co <= '0',so <= '0'这两句应该用分号隔开。例如你定义了一个ab信号却没有用到。例如定义了D是一个三位的二进制,而D:=0这样赋值肯定不行,要D:="000"。例如D:=(a+b)中的+号没有对应的库文件是用不了的,ieee没有定义+号。

以下是修改好的程序,实现半加器的功能:

LIBRARY IEEE

USE IEEE.STD_LOGIC_1164.ALL

--USE IEEE.STD_LOGIC_unsigned.ALL

--USE IEEE.STD_LOGIC_ARITH.ALL

ENTITY if_adder IS

PORT (a,b : IN STD_LOGIC

co, so : out STD_LOGIC)

END ENTITY if_adder

ARCHITECTURE fh1 OF if_adder is

signal ab : STD_LOGIC_vector(1 downto 0)

BEGIN

ab<=a&b

PROCESS(ab)

BEGIN

case ab is

when "00"=>so<='0'co<='0'

when "01"=>so<='1'co<='0'

when "10"=>so<='1'co<='0'

when "11"=>so<='0'co<='1'

end case

END PROCESS

END ARCHITECTURE fh1

EVENT是表示当一个事件发生了,但是VHDL里面要求必须说明到底发生了什么事,VHDL才能根据发生的事情 来做判断!你只给出了一个EVENT VHDL不知道是发生什么事情,所以它不能判断!!! 换句通俗的话说,VHDL不支持无知的发生事件!

时钟变化有包括上升和下降,还有没变,if clk'event and clk='1' 表示上升

同样的 clk'event and clk='0'表示下降 再加个else 就表示没变化了

1.library UNISIMuse UNISIM.VComponents.all这两个东西貌似无法使用。

UNISIM是xilinx的库函数,如果你用第三方的仿真软件,就需要把xilinx的库编译进仿真软件库中

例如modelsim,xilinx软件中可以直接编译

2.怎么使用组件?

这个你看看语法吧,在这没法一点点跟你介绍

3.预设的非门的端口为not,与关键字重名,怎么办?

信号名一定不能起与保留关键字一样的,修改一下吧,例如my_not

4.预设的and3门的输出端名字也为out,怎么办?

同3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11664098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存