To be perfectly honest, I don't quite understand the significance of "rtl" or "behavioral" designs, and I've been doing FPGA design for years. I think it's something professors like to confuse you with. I'm probably just showing my ignorance.
But back to your problem: one thing that stands out is your statement: "Res='0' and clk'event and clk='1' ". That's bad form (it's a 'gated clock'). Think about what happens when the RES part of that statement is false: what happens to everything? It's undefined.
If you are trying to create a synchronous reset, you should do something like this:
Code:
process(clk)
begin
if clk='1' and clk'event then
if res='1'then
--reset stuff here
else
--clocked stuff here.
end if;
end if;
The other thing that I'm noticing is that in your first architecture res is active low, in the second one, it's active high. Is that what you wanted?