标签: vhdl

VHDL beta功能

我的一个朋友需要在硬件中实现一些统计计算.她希望使用VHDL完成它.

(穿过我的心,我还没有用VHDL编写一行代码,对其细微之处一无所知)

特别是,她需要直接模拟MATLAB的betainc功能.

这样做有没有好的方案?任何有关实施的提示也受到高度赞赏.如果它根本不是一个好主意,请告诉我它.

非常感谢!

math statistics matlab vhdl

0
推荐指数
1
解决办法
370
查看次数

VHDL中的共享变量

我是vhdl的新手(使用ISE项目导航器),我有一个小问题来合成这个程序(sequence.vhd):

LIBRARY ieee ;
USE ieee.std_logic_1164.all;

PACKAGE mypack IS
VARIABLE counter: STD_LOGIC := '0' ;
VARIABLE simultaneous : STD_LOGIC := '0' ;
END PACKAGE mypack;

LIBRARY ieee ;
USE ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;


--library work;

USE WORK.mypack.ALL;

ENTITY secuencia IS

PORT(
    polh            : IN    STD_LOGIC; --uno
    polv            : IN    STD_LOGIC; --cero
    seq            : OUT   std_logic_vector(8 downto 0):= (others => 'Z')
);

END secuencia;


ARCHITECTURE registro OF secuencia IS

SIGNAL stack : std_logic_vector(1000 downto 0);


BEGIN
PROCESS(polh, polv)
 BEGIN

        IF …
Run Code Online (Sandbox Code Playgroud)

vhdl

0
推荐指数
1
解决办法
1万
查看次数

vhdl:将向量转换为字符串

如何将std_logic向量,bit_vector或任何其他向量转换为字符串?

Signal a,b          : UNSIGNED(7 DOWNTO 0);
SIGNAL x,y,z    : BIT_VECTOR(7 DOWNTO 0);

...

report "value: " & BIT_VECTOR'Image(x) severity note;
report "and this one: " & to_string(a) severity note;
Run Code Online (Sandbox Code Playgroud)

这不起作用,那么如何将向量转换为字符串?

arrays string vector type-conversion vhdl

0
推荐指数
3
解决办法
2万
查看次数

两个补码VHDL

我只是想在VHDL中创建一个简单的二进制补码设备,但它正在抛弃这个非常烦人的错误,而且我不确定我做错了什么.可能是非常愚蠢的......错误是"错误(10327):twocompliment.vhd(21)的VHDL错误:无法确定运算符的定义""nand"" - 找到0个可能的定义"

代码是

library ieee;
use ieee.std_logic_1164.all; 
use ieee.numeric_std.all;
entity twoscompliment is
      generic
      (
              Nbits : positive := 8 
       );
 port 
( 
           --Inputs
           A : in std_logic_vector (Nbits-1 downto 0);
           --Outputs
           Y : out std_logic_vector (Nbits downto 0)
);
end twoscompliment;

architecture twoscompliment_v1 of twoscompliment is
 begin
  Y <= std_logic_vector(unsigned(A NAND '1') + '1');
 end twoscompliment_v1;
Run Code Online (Sandbox Code Playgroud)

任何帮助都是极好的!

vhdl

0
推荐指数
1
解决办法
3万
查看次数

如何在VHDL测试平台上模拟内存?

我正在为我的设计编写一个通用测试平台,通过漂亮的标准总线与RAM通信.我咨询了一些例子并写成这样:

signal memory: mem_array;
signal mem_address: std_logic_vector(31 downto 0);
signal mem_data: std_logic_vector(31 downto 0);
signal mem_read: std_logic;
signal mem_write: std_logic;

cpu_mem_data <= transport memory(to_integer(unsigned(mem_address))) after DELAY when mem_read = '1' else (others => 'Z');

always : PROCESS
    file in_file: text open read_mode is "in.txt";
    variable line_str: line;
    variable address: std_logic_vector(31 downto 0);
    variable data: std_logic_vector(31 downto 0);
BEGIN
    reset <= '1';

    readline(in_file, line_str);
    hread(line_str, address);
    starting_pc <= address;
    while not endfile(in_file) loop
        readline(in_file, line_str);
        hread(line_str, address);
        read(line_str, data);
        memory(to_integer(unsigned(address))) <= …
Run Code Online (Sandbox Code Playgroud)

vhdl modelsim

0
推荐指数
1
解决办法
4236
查看次数

')'预计. - VHDL

我的一段VHDL代码是:

                133 if(grupo = '000' or grupo = '111') then -- 0

                134 elsif(grupo = '001' or grupo = '010') then -- 1

                135 elsif(grupo = '011') then -- 2

                136 elsif(grupo = '100') then -- -2

                137 elsif(grupo = '101' or grupo = '110') then  -- -1

                138 end if;
Run Code Online (Sandbox Code Playgroud)

但是,这个错误来了:


错误:COMP96_0049:Multiplicador.vhd:(133,17):表达式中的语法错误.

错误:COMP96_0015:Multiplicador.vhd:(133,17):')'预期.

错误:COMP96_0019:Multiplicador.vhd:(133,18):关键字'然后'预期.

错误:COMP96_0019:Multiplicador.vhd:(141,6):预期关键字'结束'.

错误:COMP96_0049:Multiplicador.vhd:(141,20):表达式中的语法错误.

错误:COMP96_0015:Multiplicador.vhd:(141,20):')'预期.

错误:COMP96_0019:Multiplicador.vhd:(141,21):关键字'然后'预期.

错误:COMP96_0019:Multiplicador.vhd:(147,9):预期关键字"进程".

错误:COMP96_0015:Multiplicador.vhd:(150,8):';' 预期.

错误:COMP96_0016:Multiplicador.vhd:(150,10):预期的设计单位声明.


但我找不到解决方案.错误在于此部分.

vhdl

0
推荐指数
1
解决办法
1497
查看次数

未解析的信号具有多个源VHDL

我正在使用VHDL实现一个简单的FSM。我在VHDL中使用此代码,但遇到了以下错误:“未解决的信号NS有多个来源”。我对代码进行了深入研究,但无法弄清楚该错误有人可以帮助我解决此问题吗?

                     library ieee ;
                     use ieee.std_logic_1164.all ;
                     entity MeallyMachine is
                     port( 
                     x,res,clk:in std_logic;
                     z1,z2:out std_logic       
                     );

                    end MooreMachine;


                    architecture M1 of MooreMachine is
                    type state_type is(s0,s1,s2,s3);
                    signal PS,NS:state_type;

                     begin
                     ETAT:process(PS,x)
                     begin
                     case PS is
                      when  s0=>  if (x='0') then
                      NS<=s0;
                                 elsif (x='1') then
                                 NS<=s1;
                                 end if;
                     when s1=>  if (x='0') then
                      NS<=s1;
                                elsif (x='1') then
                      NS<=s2;
                                end if;  
                     when s2=>  if (x='0') then
                     NS<=s2;
                                elsif (x='1') then
                     NS<=s3;
                                 end if;
                     when s3=>  if (x='0') then
                     NS<=s3;
                                 elsif (x='1') then
                     NS<=s0; …
Run Code Online (Sandbox Code Playgroud)

vhdl fsm

0
推荐指数
1
解决办法
5804
查看次数

用VHDL代码查找数字的平方根?

是否有任何内置函数或任何库可以包含在设计中以查找数字的平方根?

vhdl

0
推荐指数
1
解决办法
9703
查看次数

如何在FPGA板上使用VHDL显示句子

我只是想知道是否可以在FPGA板的7段显示器上显示一个句子,例如"SOLD OUT",我只能显示四个字母.

我希望它显示SOLD然后OUT.

如果可以实现,我该怎么办?时钟分频器?

fpga vhdl hdl

0
推荐指数
1
解决办法
392
查看次数

信号temp2无法合成,同步描述错误

entity timer is
    Port ( click : in  STD_LOGIC;
           clear : out  STD_LOGIC;
           t_unlock : out  STD_LOGIC);
end timer;

architecture Behavioral of timer is
    signal temp2 : integer range 0 to 20 := 0;
begin
    process
    begin
        if rising_edge(click) then
            temp2<=0;
            clear<='0';
            t_unlock<='0';
        else
            temp2<=temp2+1 after 15 ns;
        end if;
        if temp2=6 then
            clear<='1';
        elsif temp2=20 then
            t_unlock<='1';
        end if;
    end process;
end Behavioral;
Run Code Online (Sandbox Code Playgroud)

我写了这段代码,编译器说:

Signal temp2 cannot be synthesized, bad synchronous description. The description style you are using to …
Run Code Online (Sandbox Code Playgroud)

vhdl

0
推荐指数
1
解决办法
1078
查看次数

标签 统计

vhdl ×10

arrays ×1

fpga ×1

fsm ×1

hdl ×1

math ×1

matlab ×1

modelsim ×1

statistics ×1

string ×1

type-conversion ×1

vector ×1