This message is generated because your programmer cannot find any JTAG devices on the chain to program. It's not connected to the device you're trying to program. How to troubleshoot that specifically is hard to say, I would suggest for starters that you make sure the programmer is connected correctly...
You have declared count 4 bits with wire [3:0] count; but the error is about count1. As it is not declared it is being created as a 1 bit wire. Just add wire [3:0] count1; to the top level module Clock...
Here's a good reference, one of the first that came up when I googled how to write a testbench. You should google first, give it an honest shot, then come back here with more specific questions. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Full_Adder_tb is end Full_Adder_tb; architecture Behavioral of Full_Adder_tb is...
Line 51 misspelled process on Line 50 (will collapse the next errors on Lines 54, 58) Line 63 Roll='1' should be Roll <= '1' (Will collapse errors lines 64, 65). Line 69: else Sp ='1'; Nextstate <= 4; should be else Sp <= '1'; Nextstate <= 4; Line 68: (not...
type-conversion,vhdl,xilinx,xilinx-ise,vivado
From IEEE Std 1076-2002 section 7.3.5 "Type conversions" The conversion of a floating point value to an integer type rounds to the nearest integer; if the value is halfway between two integers, rounding may be up or down. If you want something else, maybe functions in IEEE.MATH_REAL can be of...
Don't use a register with a load enable, use clock edge register. The iteration limit is a delta cycle limit in ISIM. Introducing a '1' in b you get a striking oscillator, a loop with delta cycle delays and inversion (the summing). Make num4, reg4 and reg8 clock edge driven...
verilog,cpu-architecture,xilinx,risc
When you write (below) the Right hand side is an Integer (Decimal, base10), not binary (base2). Only use non-blocking when implying flip-flops. initial begin RW <= 0; MD <= 00; BS <= 00; PS <= 0; MW <= 0; FS <= 00000; MB <= 0; MA <= 0; CS <=...
installation,arm,ubuntu-12.04,embedded-linux,xilinx
libboost-all-dev is available for arm, but accessing it requires Linux knowledge: 1.Search “Update Manager” 2.Click “Settings” on bottom left 3.Click on “Ubuntu Software” tab on upper left. 4.check/select the box “Community-maintained free and open-source Software (Universe)” 5.click “close” on bottom right...
xilinx,ubuntu-14.04,microblaze
It seems like installing the package rpm fixed the problem - honestly i don't know why.
hardware,xilinx,synthesis,digital-design
From the UG871, it seems that the size of the array is from 0 to 16 samples, hence you need 32 addresses to access all values (see Figure 69). I guess that the number N is somewhere limited to be less than 32 (or be exactly 16). This means that...
As pointed out by Morten Zilmer, you need to terminate the if/else with an end if. Also there have been some missing semicolons. The code below should work. if (inc_dec='1') then if (r_reg=(M-1)) then r_next <= (others=>'0'); else r_reg+1; end if; elsif (inc_dec='0') then if (r_reg=(M-10)) then r_next <= to_unsigned(9,...
c,linker,cross-compiling,gnu,xilinx
You can use a linker script for that. Maybe you are already using one to specify the memory section attributes. So, just add: MEMORY_CACHEABLE : { BEGIN_MEMORY_CACHEABLE = .; *(MEMORY_CACHEABLE) END_MEMORY_CACHEABLE = .; } Then in the C code: extern char BEGIN_MEMORY_CACHEABLE, END_MEMORY_CACHEABLE; And use &BEGIN_MEMORY_CACHEABLE as a pointer to...
Your addition expression in adder1 is invalid because you're trying to index element "8" when the range of a1 and a2 is 7 downto 0. Assuming thet you're trying to sign extend it would look something more like this: q <=(a1(7)&a1 + a2(7)&a2); The "+" operator has higher precedence than...
For typical FPGA and ASIC devices, implementation of tristate capabilities are only available on the IO, like for example in an Altera Arria 10 FPGA: So for such devices, the internal RAMs are always implemented with dedicated input and output ports, thus not using any internal tristate capabilities. Even if...
Complaining about dead/unused code WARNING:Xst:646 Signal <thirdaddress> is assigned but never used. Signal <secondaddress> is assigned but never used. Signal <firstaddress> is assigned but never used. This means these three signals are unused in your design. If you don't plan to use them in future, you can remove them ->...
Vivado parses all files. Even those which are not used! My ISE project had a old backup file with a package named 'DMATest' inside it. This should explain why DMATest was reanalyzed and DMATest is not an entity - it was overridden by the package....
Take a look at the synthesis and timing (STA) warnings, since these will indicate if the synthesis tool could not implement the design to match the RTL VHDL code. The edge condition by rising_edge(...) or falling_edge(...) should only be used on a single common clock signal, unless there is a...
See Quartus II VHDL Support, Section 14 Predefined language environment, the table entry 14.3, Construct TEXTIO, the rightmost column VHDL 1993 Support: Supported. File I/O cannot be synthesized; therefore, calls to TEXTIO functions are ignored. If you can't use TEXTIO for synthesis you could imagine a pointer to a line...
I am assuming this is part of a clocked synchronous block, i.e. something like the following (it would not make much sense otherwise and you wrote "I need to do all the shifts within one clock cycle", which implies that this is part of a synchronous design): reg [MSB:0] a...
touchscreen,xilinx,prototyping
First: There are several types of cheap touchscreens: resistive and capacitive (intro from 3m). And under touchscreen I mean touch panels (digitizers) - the thin multilayer panels which feels touches, but don't display anything. Touchscreens can be combined with LCD/OLED screens to get display with touch capability. Resistive touchscreens are...
vhdl,xilinx,synthesis,xilinx-ise,netlist
Internal debates on how easy it was to find the answer aside there's some cause for propagating the question and it's answer in Stackoverflow. The idea being Stackoverflow is a search resource before someone asks the same question again, striving to be a higher quality resource in general than found...
You're missing declaration of alu in ralu, i.e.: alu myALU( .op1(op1), .op2(op2), .func(func), .out(out) ); ...
This answer is provided because the other 7 occurrences of ERROR:HDLParsers:800 on Stackoverflow don't involve literals assigned to integer types, and Morten thinks an actual answer to the question may be valuable. The closest matching question with an answer (See VHDL: Type of “variable” is incompatible with type of <=)...
As Brian indicated in his comment, the reason your original power estimate had no dynamic power consumption was that when the design was originally simulated, it was simulated in a static state. That is to say, no elements of your design were toggling. The reason no elements of your design...
vhdl,xilinx,modelsim,inference
The length of U is N+1 (0 to N) Changing U <= to_unsigned(add_all,N); To U <= to_unsigned(add_all,N+1); Will prevent a length mismatch between the left hand side and right hand side of the signal assignment in architecture inference of adder_n. The passed parameter to to_unsigned specifies the length....
My guess is that this code was intended to work correctly even if value is not a 1-byte (8-bit) type. The bitmask 0xFF makes sure that only the last byte of the value is kept.
c++,malloc,xilinx,standard-library,bare-metal
Reliance of a program on malloc() can occur in both C and C++, even if the program doesn't directly use them. It is a quality of implementation matter for the compiler and standard library rather than a requirement by the standards. This really depends on how the both the compiler...
For the process failing part, it seems that Xilinx tool writers may have an issue try restarting them and if needed, your machine as well.
Assuming you have a clock and active low reset: module tracker( input clk, input rst_n, input [3:0] data_rx ); reg [7:0] count [0:15]; integer i; always @(posedge clk, negedge rst_n) begin if (~rst_n) begin for(i=0; i<16, i=i+1) begin count[i] <= 8'b0; end end else begin count[data_rx] <= count[data_rx] + 1;...
When you synthesize your top level design in Project Navigator you should enable the IO buffers so that your design can access the external ports, but your internal modules should not have them enabled. Normally, IO buffers are automatically turned off for internal modules, but in the case of partial...
I deleted and re-added design & simulation sources, which still left the black-box. I opened a new project and added the sources before the project was created and the simulation ran without a problem.
Unfortunately, the one place where you can't use type natural is top level ports, where they are mapped to physical device pins. This is because you need to connect each individual bit of the signal to its own pin, so you need some type that represents the signal as an...
I have run simulations much longer than this in ISIM, so this points at your code, I think. Two ways forward: Try another simulator, perhaps ghdl (free) and see if it reports a problem that ISIM doesn't. It is usually stricter (more standard compliant) than ISIM and can sometimes diagnose...
You want to implement a shift register to feed data in serially. In general you should use case statements only for control logic and not data flow. Treating the data vector as an addressable array is also possible but it synthesizes to a decoder which will become a timing problem...
You can't do that in VHDL. What kind of hardware would be generated by your code? If you don't know, the synthesizer won't either. The way to do this kind of thing is to set N to the largest value you want to support, and use size in your logic...
If you have lots of data that you can stream, use a Pipe. If you want to access the data randomly, you'll have to use a multiplexer, controlled by a WireIn. Regarding efficiency, you'll have to specify what dimension of efficiency you are interested in, and what value is acceptable....
q <= std_logic_vector(resize(signed(a), q'length)); The std_logic_vector doesn't represent an integer value, only an array of std_logic, so first you make it signed using signed from ieee.numeric_std.signed. A resize function is also defined in ieee.numeric_std for signed and unsigned, and it is applied to the signed value, with the desired length...
The error message appears to be complaining that you are using the output of the cnt counter as a clock. Instead you could use it as a toggle enable and clk as the clock: --process (clock, btn) process (clk, btn) begin -- if btn = '0' then if btn =...
See the discussion of longest static prefix in the VHDL FAQ at: http://www.eda.org/comp.lang.vhdl/FAQ1.html#drivers For this reason, you need to re-write your instance as: Mgen : for i in 1 to N generate If_N : if i = N generate DR : SA_REGDR port map ( R=> R(10) ,EC=> EC(10), C=>...
memory-management,arm,windows-ce,xilinx
After long struggle, I found the answer. DWORD GetVirtualAddress() { HANDLE hCurrentProcess; HANDLE hCallerProcess; DWORD pAddr; PHYSICAL_ADDRESS pa; hCurrentProcess = (HANDLE)GetCurrentProcess(); hCallerProcess = (HANDLE)GetDirectCallerProcessId(); pa.QuadPart = 0xe000a000; pGpioRegs = MmMapIoSpace(pa, sizeof(XILINX_GPIO_REGS), FALSE); if (!pGpioRegs) RETAILMSG(1, (L"Cannot map the gpio register.\r\n")); pAddr = (DWORD)VirtualAllocCopyEx(hCurrentProcess, hCallerProcess, pGpioRegs, PAGE_SIZE, PAGE_READWRITE | PAGE_NOCACHE); if...
verilog,fpga,system-verilog,xilinx,vga
I'm posting this as an answer because I cannot put a photo in a comment. Is this what your design looks like? My only guess ATM is that you might have misplaced some ports during instantiation of vga_driver and/or map_generator (if you used the old style instantiation). Nevertheless, I'm going...