3 비트 직렬 입력 버블 정렬을 설계하려고하는데 출력을 실제로 정렬 할 수 없습니다. 불행히도 VHDL 또는 프로그래밍 전반에 익숙하지 않습니다. 나는 잠재적 인 문제가 신호를 사용하고 프로세스 내에서 할당하는 방식이라는 것을 읽었습니다. 그러나, 내가 그것을 교정하려고 노력했고, 그것을 컴파일하게되면, 나의 출력은 부서졌다. 버블 정렬에 대한 또 다른 질
입력 sel = '1'이 될 때마다 '1'과 '0'의 std_logic 벡터를 토글하고 싶습니다. 다음 방법으로 시도했지만 두 줄 모두 오류가 발생합니다. selected <= ~selected when sel='1';
ERROR: Syntax error near "~" ERROR: This construct is only supported in VHD
내 VHDL 엔티티가 두 단방향 기록 포트가 다음과 같이 패키지에 정의되어 user2regs : in user2regs_t;
regs2user : out regs2user_t
: type user2regs_t is record
status_value : std_logic_vector(31 downto 0);
end record;
ty
저는 VHDL을 처음 접했고 8 개의 스위치로 8 비트 숫자를 만들어서 7 개의 세그먼트 디스플레이 두 개를 표시 할 수있는 16 진수로 변환 할 수 있습니다. 여기 내 현재 코드입니다. 여기에서 어디로 가야할지 모르겠다. ENTITY swToHex IS
PORT (
SW : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
나는 VHDL로 일반 N 비트 ALU를 만들고있다. 더하기 위해 캐리 값을 지정하는 데 문제가 있거나 뺄셈에 차용 중입니다. library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity alu is
generic(n: integer :=1); --Default to
Modelsim에서 직렬 덧셈기의 행동 모델을 만들려고합니다. 그래서 디자인에서 Carry_out을 Carry_in으로 1 클럭주기 후 전달하려고합니다. 디자인은 다음과 같습니다 1 비트, 2 개의 n 비트 수에서 각각 캐리와 함께 가산기를 입력합니다. 처음에는 캐리가 0이지만 다음 클럭 사이클에서 이전 비트의 추가로 인한 carry_out이 carry_i
VHDL의 엔티티 구문에 대해 혼동스러워합니다. 다음은 엔티티가 선언되어야하는 방법 EBN form의 규칙입니다 : 출처 : Peter J. Ashenden, "The Designers Guide to VHDL", 3rd ed., Morgan Kaufmann, 2008. 내가 대한 혼란 스러워요하는 선언의 끝입니다. 이에 따르면 엔티티 또는 식별자을 끝에
VHDL에 무언가를 쓰려고하는데 작동하지 않습니다. 그것은이 라인에서이 문제를 다음과 같이이 말한다 case currentState is
when ST000 =>
with A select nextState <=
ST025 when "01",
ST050 when "10",
ST000 when "11",
나는 두 개의 코드를 가지고 있는데 하나는 Verilog에 있고 다른 하나는 16 비트 2 진수에있는 코드의 수를 세는 vhdl에있다. 둘 다 똑같은 일을하지만 자일링스 ISE를 사용하여 합성 한 후에는 다른 합성 보고서를 얻는다. Verilog 코드 : module num_ones_for(
input [15:0] A,
output reg
ISIM으로 VHDL 코드를 시뮬레이트하려고하면 모든 출력에 대해 U 만 표시됩니다. 그냥 3 개의 계단식 D 형 플립 플롭으로 구성되었습니다. 여기 library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity az_4_2 is
Port (clk: in std_logic;
X : in STD_LOGIC