LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Wed Nov 29 13:08:36 CET 2006
    Subject: [cvs-checkins] MODIFIED: CVSROOT ...
    Top
    Date: 00/06/11 29:13:08

    Modified: CVSROOT/VHDL/testing RC5KeyBreaker.vhd
    Log:
    Long shift register for VirtexE and Spartan3 added



    The counters of RC5KeyBreaker were slightly modified because this last version was constraining the operating frequency


    Revision Changes Path
    1.2 CVSROOT/VHDL/testing/RC5KeyBreaker.vhd

    http://www.opencores.org/cvsweb.shtml/CVSROOT/VHDL/testing/RC5KeyBreaker.vhd.diff?r1=1.1&r2=1.2

    (In the diff below, changes in quantity of whitespace are not shown.)

    Index: RC5KeyBreaker.vhd
    ===================================================================
    RCS file: /cvsroot/gmeurice/CVSROOT/VHDL/testing/RC5KeyBreaker.vhd,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -b -r1.1 -r1.2
    --- RC5KeyBreaker.vhd 28 Nov 2006 00:41:41 -0000 1.1
    +++ RC5KeyBreaker.vhd 29 Nov 2006 12:08:36 -0000 1.2
    @@ -12,6 +12,7 @@
    -- This may freely be used, as long as copyright notices are maintained per BSD licensing
    -- Guerric Meurice de Dormale, UCL DICE/Crypto Group, Copyright 2006
    ----------------------------------------------------------------------------------
    +
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    @@ -30,18 +31,23 @@

    architecture RC5KeyBreaker_arch of RC5KeyBreaker is

    +--attribute SHREG_EXTRACT: string;
    +--attribute SHREG_EXTRACT of RC5KeyBreaker_arch: architecture is "no";
    +
    signal Ptxt : std_logic_vector(2*n-1 downto 0) := To_StdLogicVector(Plaintext_contest);
    signal ok_P,ok_Q : std_logic;
    signal go,go_reg,yeah,yeah_reg : std_logic;
    signal key_counter,key_counter_reg : std_logic_vector(n-1 downto 0);

    -signal counter_main : std_logic_vector(n downto 0) := "100000000000000000000000000000001";
    +signal counter_main : std_logic_vector(n downto 0) := "100000000000000000000000000000000";
    signal counter_mirror : std_logic_vector(n-1 downto 0) := x"00000000";
    signal delay_counter : std_logic_vector(9 downto 0) := "0000000000"; -- depends on the size of "total_delay"

    signal key : std_logic_vector(3*n-1 downto 0);
    signal key_range_effective,key_range,key_range_reg : std_logic_vector (39 downto 0);

    +signal counter_main_sign : std_logic;
    +
    type state_type is (S1,S2);
    signal state : state_type := S1;

    @@ -72,6 +78,8 @@
    key_counter_reg <= key_counter;
    key_counter_out <= key_counter_reg;

    + counter_main_sign <= counter_main(32);
    +
    if yeah = '1' then
    key_counter <= counter_mirror;
    end if;
    @@ -86,11 +94,11 @@
    count_proc: process(clk)
    begin
    if rising_edge(clk) then
    - if counter_main(32) = '1' then
    - delay_counter <= CONV_STD_LOGIC_VECTOR(total_delay -4 + 2 +1, 10); -- +2 comes from the addition of 2 registers for testing the output. +1 because there is a difference of 1 between the init of the two counters
    + if counter_main_sign = '1' then
    + delay_counter <= CONV_STD_LOGIC_VECTOR(total_delay -4 + 2, 10); -- +2 comes from the addition of 2 registers for testing the output.
    if go = '1' then
    key_range_effective <= key_range;
    - counter_main <= CONV_STD_LOGIC_VECTOR(1 + 1392705536, 33);
    + counter_main <= CONV_STD_LOGIC_VECTOR(2 + 1392705536, 33);
    -- else
    -- wait for the new key_range
    -- no counter increment
    @@ -112,14 +120,14 @@
    when S1 => -- Wait and Load phase 1
    if (delay_counter(9) = '1') then
    state <= S2;
    - counter_mirror <= CONV_STD_LOGIC_VECTOR(0+ 1392705536, 32);
    + counter_mirror <= CONV_STD_LOGIC_VECTOR(0 + 1392705536, 32);
    else
    state <= S1;
    counter_mirror <= counter_mirror + 1;
    end if;
    when S2 => -- Load phase 2
    counter_mirror <= counter_mirror + 1;
    - if (counter_main(32) = '1') then
    + if (counter_main_sign = '1') then
    state <= S1;
    else
    state <= S2;


     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.