作业帮 > 综合 > 作业

请大神帮忙看下这段VHDL代码

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 01:22:46
请大神帮忙看下这段VHDL代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity comparet is
port
(
clrn:in std_logic;
cq1,cq2,cq3:in std_logic_vector(3 downto 0);
co1,co2,co3:out std_logic_vector(3 downto 0)
);
end comparet;
architecture comparet_arch of comparet is
signal k:std_logic;
begin
process(clrn,cq1,cq2,cq3,k)
begin
if(clrn='0') then
\x05k
从你的描述看,信号k是多余的.下面的描述应当与你上面的描述功能相同:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity comparet is
port ( clrn:in std_logic;
cq1,cq2,cq3:in std_logic_vector(3 downto 0);
co1,co2,co3:out std_logic_vector(3 downto 0));
end comparet;
architecture comparet_arch of comparet is
begin
process(clrn,cq1,cq2,cq3,k)
begin
if(clrn='0') then
co1
再问: clrn我当初是准备作为清空信号的,现在看来有点鸡肋了... k我是作为暂时性判断信号的,即有一次cq1,cq2,cq3输入111后,就让k=1;那么之后无论cq1,cq2,cq3输入是什么,输出的co1,co2,co3都是111,而不再是等于cq1,cq2,cq3。 你刚改的程序我测试了,不能够实现保持的功能,麻烦你能再看看吗,谢谢
再答: 我改过的描述与你以前的描述,其仿真结果应当是一样的。我只是将你描述中多余的信号去掉了而已,并未更改其功能。 你所设想的功能,用上述的描述是实现不了的。你需要将你描述的一个进程分成两个进程: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity comparet is port ( clrn:in std_logic; cq1,cq2,cq3:in std_logic_vector(3 downto 0); co1,co2,co3:out std_logic_vector(3 downto 0)); end comparet; architecture comparet_arch of comparet is signal k:std_logic; begin process(clrn,cq1,cq2,cq3) begin if(clrn='0') then k