खोज…


परिचय

पुनरावृत्ति एक प्रोग्रामिंग विधि है जहां उप-प्रोग्राम खुद को कॉल करते हैं। सुरुचिपूर्ण और सामान्य तरीके से कुछ प्रकार की समस्याओं को हल करना बहुत सुविधाजनक है। वीएचडीएल पुनरावृत्ति का समर्थन करता है। अधिकांश तर्क सिंथेसाइज़र भी इसका समर्थन करते हैं। कुछ मामलों में अनुमानित लूप-आधारित विवरण की तुलना में अनुमानित हार्डवेयर और भी बेहतर (तेज, समान आकार) है।

एक वेक्टर के हेमिंग वजन की गणना

-- loop-based version
function hw_loop(v: std_logic_vector) return natural is
  variable h: natural;
begin
  h := 0;
  for i in v'range loop
    if v(i) = '1' then
      h := h + 1;
    end if;
  end loop;
  return h;
end function hw_loop;

-- recursive version
function hw_tree(v: std_logic_vector) return natural is
  constant size: natural := v'length;
  constant vv: std_logic_vector(size - 1 downto 0) := v;
  variable h: natural;
begin
  h := 0;
  if size = 1 and vv(0) = '1' then
    h := 1;
  elsif size > 1 then
    h := hw_tree(vv(size - 1 downto size / 2)) + hw_tree(vv(size / 2 - 1 downto 0));
  end if;
  return h;
end function hw_tree;


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow