[Oberon] RISC5 implementation issues.

Paul Reed paulreed at paddedcell.com
Wed Feb 17 10:39:05 CET 2016


Hi Walter,

> So, RISC5 use general propose resources to routing a clock signal.

I agree with Magnus, the tools add the relevant clock buffer as part of
their job, and the source code is kept simple and clear.

FPGAs are a little off-topic for many Oberoners, but hopefully the below
simple hardware LED counter for the Spartan 3 board (easily adapted to
almost any other board!) might be indulged, and interesting for enough
people :)

If you create a project in Xilinx ISE for the xc3s200-4ft256 and add these
source files, then "Generate Programming File", then as far as I can see
from the reports, the tools add the appropriate clock buffers and global
resources - correct me if I'm wrong!

Cheers,
Paul


(test.v)

`timescale 1ns / 1ps

module TestTop(
    input CLK50M,   //50MHz
    output [7:0] leds);

reg clk;
reg [31:0] cnt;

assign leds = cnt[31:24];

always @(posedge clk) //25MHz
  cnt <= cnt + 1;

always @(posedge CLK50M) clk <= ~clk;

endmodule

(test.ucf)

NET "CLK50M" LOC = "T9" ;
NET "leds[0]" LOC = "K12";
NET "leds[1]" LOC = "P14";
NET "leds[2]" LOC = "L12";
NET "leds[3]" LOC = "N14";
NET "leds[4]" LOC = "P13";
NET "leds[5]" LOC = "N12";
NET "leds[6]" LOC = "P12";
NET "leds[7]" LOC = "P11";




More information about the Oberon mailing list