-
Thread
VHDL Signal Teilen und in die nächst höhere Adresse schreiben
Adresse. Ich bekomme folgende Fehlermeldung: The data cannot be written to the memory correctly when only en_write is enabled, or the content of memory cannot be read. Kann mir jemand sagen, wo mein Problem liegt? Mein RAM [vhdl]library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all
downto 0); type ram_type is array (1023 downto 0) of logic_vector; signal ram : ram_type := ((others=> (others=>'0'))); begin process(Clk) begin if(en_read = '1') then outputsignal <= ram(to_integer(unsigned(addr2))); elsif(en_write = '1') then input_1 <= input(17 downto 0); input
-
Thread
nach Kündigung Auszeit & Selbststudium J2EE?
http://programmers.stackexchange.com/questions/25564/when-should-you-call-yourself-a-senior-developer You can call yourself a Senior when: - You can handle the entire software development life cycle, end to end - You lead others, or others look
person will leverage asynchronous programming, queuing, caching, logging, security and persistence when appropriate. When asked they can give a detail explanation of their choice and the pros and cons. In most cases they have mastered object oriented programming and design, this not an absolute other
-
Thread
Verhalten Sim vs Post Fit Sim
when "0011" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '1'; when "0100" => UP_DOWN <= '0'; C_ENABLE <= '1'; ERR <= '0'; when "0101" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0';
when "1111" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0'; when others => null; end case; end if; end if; end process QDecoder; end VERH;[/vhdl] nicht korrekt synthetisiert
-
Thread
FSM Automat(für bestimmte zeit in einem zustand bleiben)
bar aber ich will da bleiben counter<=(others=>'0');--für bestimmte zeit Folge_z<=S4; end if; . . . MFG
counter <= (others => '0'); --für bestimmte zeit Folge_z <= S4; end if; [/vhdl] Was sagen den Folge_z und counter in der Simulation? Rick
-
Thread
2x werden die Daten 128-254 ausgegeben vom SRAM statt 0-254, woran liegt das bitte ?
txd => txd, tx_start => tx_start, tx_data => tx_data ); sram_io <= data_write when read_write='0' else (others=>'Z'); data_read <= sram_io; ub <= '0'; lb <= '0'; process (clk) begin if rising_edge (clk) then if (zustand = "001") then sram_adr <= sr_adr
rx_data; zustand <= "001"; end if; if sw(0) = '1' then sram_io <= (others => 'Z'); sram_adr <= (others => '0'); we <= '1'; ce <= '1'; oe <= '1'; end if; if sw(1) = '1' then sr_adr <= (others => '0');
-
Thread
2 ATMega8 über SPI kommunizieren lassen
Mhz */ #endif #include <util/delay.h> void SPI_SlaveInit(void) { /* Set MISO output, all others input */ DDRB = (1<<PB4)|(1<<PB0); /* Enable SPI */ SPCR = (1<<SPE); } char SPI_SlaveReceive(void) { /* Wait for reception complete */ while(!(SPSR & (1<<SPIF))) ; /* Return data register
be held high to ensure Master SPI operation. If the SS pin is driven low by peripheral circuitry when the SPI is configured as a Master with the SS pin defined as an input, the SPI system interprets this as another Master selecting the SPI as a Slave and starting to send data to it.
-
Thread
Synchroner Reset in Kombinatorik
(shift, reset, load, data, enable) begin if reset ='1' then shift_next <= (others => '0'); elsif load = '1' then shift_next <= data; elsif enable = '1' then shift_next <= std_logic_vector(SHIFT_LEFT(unsigned(shift), 1)); else shift_next
mit Kombinatorik gelöst ist. (nicht zu hause nachmachen, dies ist KEIN Reset): [vhdl] s_out <= (others => '0') when reset = '1' else shift(3); [/vhdl]
-
Thread
Wie designe ich dieses case am besten?
habe eine verzweigte if-case-Anweisung in dieser Form: [vhdl] if RW = '0' then case DP_M is when "0000" => blabla when "0001" => blabla, etc end case; else case DP_M is when "0000" => blabla when "0001" => blabla, etc end case; [/vhdl] Ich habe also in beiden Fällen (also
Compiler mitteilen kannst, daß bestimmte Kombinationen nicht relevant sind, z.B. case Adr is when "00" => Data <= "0000"; when "01" => Data <= "0100"; when others => Data <= "----"; -- don't care end case; Grüße Klaus
-
Thread
LCD von TerAsic mit Cyclone II von Altera
lut_data <= "001001" & "00" & "00100000"; when 4=> lut_data <= "010000" & "00" & "00111111"; when 5=> lut_data <= "010001" & "00" & "00111111"; when 6=> lut_data <= "010010" & "00" & "00101111"; when 7=> lut_data <= "010011" & "00" & "00101111"; when others=> lut_data <= "000000" & "00" & "00000000"; end case; im controller.vhd werden die bits von vorne abgeselen: if (mst < 17) then mst <= mst+1; end if; if (mst < 16) then
-
Thread
Externens Ram statt FPGA RAM
we => ram_we ); end generate; Meine nicht funktionierende Lösung: ram_io <= RWD when ram_wr = '0' else (others => 'Z'); ram_a(12 downto 0) <= RAB; ram_a(19 downto 13) <="0000000"; ram_ce<='0'; ram_oe<='0'; ram_we <= ram_wr;
dem externen SRAM nachbilden können. > Meine nicht funktionierende Lösung: > ram_io <= RWD when ram_wr = '0' else (others => 'Z'); > ram_a(12 downto 0) <= RAB; > ram_a(19 downto 13) <="0000000"; > ram_ce<='0'; > ram_oe<='0'; > ram_we <= ram_wr; Das ist der Ansatz, es fehlt aber ncoh ne
-
Thread
DCM und Ram Simulieren
'0'; signal reset_b : std_logic := '0'; signal dina : std_logic_vector(24 downto 0):= (others => '0'); signal addra : std_logic_vector(9 downto 0) := (others => '0'); signal wea : std_logic_vector(0 downto 0) := (others => '0'); begin -- dut -- component instantiation
BLK_MEM_GEN_V3_3.vhd DEBUG auf 1 setzen und mit Modelsim neu compilieren (memory_i <= memory when DEBUG=1;)
-
Thread
Post-Map simulation mit ModelSim
overloaded matching definition for "+" Die zeilen 488..492 -- vsptr_out:SLV((adrbit-1) DOWNTO 0):=(OTHERS => '0'); IF (vsptr_inp = maxbuf) THEN -- Bufferpointer inkrem. vsptr_inp := (OTHERS => '0'); ELSE vsptr_inp := vsptr_inp + '1';--zeile 491 END IF; ist mir völlig unklar wo das fehler sein
-- vsptr_inp:SLV((adrbit-1) DOWNTO 0):=(OTHERS => '0'); für inp ist die gleiche Definition Gruss Anton
-
Thread
Xilinx Latch Problem
; when others => null; end case; end process p_memless; p_memzing : process (CLKxCI, RSTxRBI) begin -- process p_memzing if RSTxRBI = '0' then
heutzutage breite Bildschirme haben, bietet sich 'concurrent' geradezu an: [vhdl] InputDstRdyxS <= '1' when STATExDP = waitforSrc else '0'; [/vhdl] [vhdl] STATExDN <= waitforSrc when STATExDP = reset else count when STATExDP = waitforSrc and InputSrcRdyxS = '1' else
-
Thread
Instruktion SLLI (Shift logical left i times)
" => m := 64; when "0111" => m := 128; when "1000" => m := 256; when "1001" => m := 512; when "1010" => m := 1024; when "1011" => m := 2048; when "1100" => m := 4096; when "1101" => m := 8192; when "1110" => m := 16384; when others => m := 32768; end case; y <= std_logic_vector(unsigned(a) * m); end process; [/vhdl] Number of Slices
-
Thread
Bereich abprüfen
[vhdl] process (clk) begin if rising_edge(clk) then case pixel is when 0 => X <= "0001"; when 80 => X <= "0010"; when 160 => X <= "0011"; when 240 => X <= "0100"; when 320 => X <= "0101"; when 400 => X <= "0110"; when 480 => X <= "0111"; when others => X <= X; -- sonst Wert halten end case; end if; end process; [/vhdl]
-
Thread
Ein wirklich blöder Fehler, den ich nicht sehe
is port( BTN : in std_logic; LED : out std_logic_vector(7 downto 0) := (others => '0') ); end entity Debounce_Test; [/vhdl] das "(others => '0')" macht hier etwas völlig anderes, als anscheinend von allen angenommen. Am dichtesten dran (aber immer noch auf dem Holzweg
LED <= (cnt => '1', others => '0'); -- end process; -- -- Diamond: Err choice is not constant / XST Err: Choices must be locally static -- -- ISIM: statisch "00100000" -- LED <= (cnt => '1', others => '0'
-
Thread
SPI und SCK Problem
die Initialisierung des SPI: [c] DDRB = (1<<PB5) | (1<<PB7); //Set MOSI and SCK output, all others input DDRB |= (1<<PB4);// configure the CS Pin as output as not to affect the SPI /* initialize SPI Control Registers */ SPCR |= (1<<SPE); //enables SPI functionality SPCR &= ~(1<<
*** ENDE sei(); DDRB = (1<<PB5) | (1<<PB7); //Set MOSI and SCK output, all others input DDRB |= (1<<PB4); // configure the CS Pin as output as not to affect the SPI /* initialize SPI Control Registers */ SPCR |= (1<<SPE); //enables SPI functionality
-
Thread
Taschenrechner in VHDL
variable zahl: unsigned(15 downto 0); Begin case state_zahl is when zahl1_state => zahl(3 downto 0) := unsigned(eingabe); state_zahl <= zahl2_state; when zahl2_state => zahl := shift_left(zahl
downto 0) := unsigned(eingabe); state_zahl <= zahl1_state; when others => state_zahl <= zahl1_state; end case; ausgabe(15 downto 0) <= std_logic_vector(zahl); end process verarbeitung; [/vhdl]
-
Thread
Adder/Subtracter Map Problem
architecture Behavioral of AdderSubtracter is begin y <= STD_LOGIC_VECTOR(UNSIGNED(a)+UNSIGNED(b)) when sel = "00" else STD_LOGIC_VECTOR(SIGNED(a)+SIGNED(b)) when sel = "01" else STD_LOGIC_VECTOR(UNSIGNED(a)-UNSIGNED(b)) when sel = "10" else STD_LOGIC_VECTOR(SIGNED(a)-SIGNED(b)) when sel = "11" else (others => '0'); end Behavioral; ----------------------------------------------- [/vhdl] Die Constaints Datei sieht so aus: [vhdl] ######################
-
Thread
VIVADO 2017.1
aber 2016.4: ERROR: [VRFC 10-2335] selected assignment statement does not cover all choices. 'others' clause is needed [D:/vhdl/TEM_uni_5_stream/TEM_uni_5_stream.srcs/sources_1/TEM_uni_5_adc_stream.vhd:206] [vhdl]with ADC_select select ADC_data <= fifo_counter when "000", AD7356_1_data when "001", AD7356_2_data when "010", AD7356_3_data when "011", AD7356_4_data when "100", AD7356_5_data when "101", AD7356_6_data when "110", fifo_counter when "111";[/vhdl]
-
Thread
Open Bench Logic Sniffer - FPGA läuft nicht an
reset_shreg(reset_shreg'left); if async_reset = '1' then reset_shreg <= (others => '1'); end if; end process; reset_n <= not reset; [/vhdl] Duke
do mention to try another USB cable or even another USB Port. But as you have the strange error when mounting it in a case , i'd say a solder defect on the board. /Bingo
-
Thread
If und Port-Map Problem
1100110"; when "0101" => led <= NOT "1101101"; when "0110" => led <= NOT "1111101"; when "0111" => led <= NOT "0000111"; when "1000" => led <= NOT "1111111"; when "1001" => led <= NOT "1101111"; when others => led <= "ZZZZZZZ"; end case; end if; end process; end behv; ------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use
-
Thread
State Machine mit 2 Clocks
States.) [c] --state machine process. process (current_s,input) begin case current_s is when ready => --when current state is "ready" output <= '0'; if(input ='1') then next_s <= steady; else next_s <= ready; end if; when steady =>;
change. end if; end process; process (clk1,clk2,current_s) is begin case current_s is when ready => clk_temp <= clk1; when steady => clk_temp <= clk2; when others => clk_temp <= clk1; end case; end process; [/c] Bernd
-
Thread
1-Bit-Komparator als Komponente für n-Bit-Komparator
--Hilfsvektor END GENERATE SCHLEIFE; --Größer ZOUT(2) <= '1' WHEN Hi>Lo ELSE '0'; --Gleich ZOUT(1) <= '1' WHEN Eq=EqH ELSE '0'; --Kleiner ZOUT(0) <= '1' WHEN Lo>Hi ELSE '0'; end architecture verhalten;
Da ich keine "=" Operation beim std_logic_vector > machen konnte, sonst ginge ja: Ausgang <= '1' WHEN Vector = (N-1); Ausgang <= '1' WHEN Vector = (others => '1'); sollte gehen. Für beliebige integer geht es auch, mit ein paar Typumwandlungen. Je nachdem, welche library du für std_logic verwendest