fossi-foundation / wishbone

Specification of the Wishbone SoC Interconnect Architecture
Other
41 stars 8 forks source link

rst_i should not be a required signal #1

Open olofk opened 6 years ago

olofk commented 6 years ago

3.4.0 lists rst_i as a required signal for masters and slaves. In practice, the rst_i signal should not always be needed. Even the example in A.7.2 does not include rst_i

(discovered by Alfred M. Szmidt)

m-kru commented 3 years ago

What page, which revision? I struggle to find it.

ams commented 3 years ago

It is rule 3.40, page 34-34 of B4. "As a minimum, ... MUST include the following signals: ... [RST_I], ...".

m-kru commented 3 years ago

Ok, I see. Doesn't it depend on the target FPGA/ASIC? With FPGA you do not need reset to bring the logic to the proper initial state. I am not sure how it is with ASIC nowadays, but more than 20 years ago I guess they needed reset to bring it to the known state after power up?

rherveille commented 3 years ago

It is bad practice to rely on FPGA configuration to set required signals to a known state. Always use a reset.

Richard

On 18 Sep 2021, at 12:42, m-kru @.***> wrote:



Ok, I see. Doesn't it depend on the target FPGA/ASIC? With FPGA you do not need reset to bring the logic to the proper initial state. I am not sure how it is with ASIC nowadays, but more than 20 years ago I guess they needed reset to bring it to the known state after power up?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/fossi-foundation/wishbone/issues/1#issuecomment-922257030, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADYKSCN5BOQGFLA6FV2ZEC3UCRUHJANCNFSM4E6DQ2EQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

ams commented 3 years ago

Which is why it should be made optional, not a required signal. The example as such is even not compliant with the spec. The WB spec can't really make any guarantees that a core will work in ASIC.

olofk commented 3 years ago

It's not just about FPGA/ASIC. It is fully possible to make some components with wishbone interfaces that are completely stateless (my wishbone multiplexer being such an example https://github.com/olofk/wb_intercon/blob/master/rtl/verilog/wb_mux.v).

Also, compare with e.g. AXI stream where only the tvalid signal is required IIRC. Even tdata and tready are optional because there exist perfectly valid use cases without them

rherveille commented 3 years ago

Yup, agreed. The signal should be optional, but mandatory for IPs with state.

Richard

On 18 Sep 2021, at 17:09, Olof Kindgren @.***> wrote:



It's not just about FPGA/ASIC. It is fully possible to make some components with wishbone interfaces that are completely stateless (my wishbone multiplexer being such an example https://github.com/olofk/wb_intercon/blob/master/rtl/verilog/wb_mux.v).

Also, compare with e.g. AXI stream where only the tvalid signal is required IIRC. Even tdata and tready are optional because there exist perfectly valid use cases without them

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/fossi-foundation/wishbone/issues/1#issuecomment-922325709, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADYKSCNHNKMNTX65TPTL3ADUCSTQLANCNFSM4E6DQ2EQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

rherveille commented 3 years ago

If a core doesn’t work in an ASIC it’s a bad core

Richard

On 18 Sep 2021, at 16:03, Alfred M. Szmidt @.***> wrote:



Which is why it should be made optional, not a required signal. The example as such is even not compliant with the spec. The WB spec can't really make any guarantees that a core will work in ASIC.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/fossi-foundation/wishbone/issues/1#issuecomment-922280960, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADYKSCPHV7HVXMSFNR4TZ43UCSLZLANCNFSM4E6DQ2EQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

ams commented 3 years ago

If a core doesn’t work in an ASIC it’s a bad core

Such comments are unhelpful and outright hostile to hobbyists that only have access to of the shelf FPGAs but can still write good cores without them working on an ASIC..

Not everyone has the means to try their cores on ASIC.

m-kru commented 3 years ago

@rherveille

It is bad practice to rely on FPGA configuration to set required signals to a known state.

If a core doesn’t work in an ASIC it’s a bad core

You state highly subjective theses without providing any arguments.

rherveille commented 3 years ago

It is bad practice to rely on FPGA configuration to set required signals to a known state.

This is just bad practice. It’s asking for failures. Next technology doesn’t (completely) initialize all signals and the design stops working or works intermittently. I have seen this with 3 projects. One required an ASIC reaping and recall of cars to fix the issue. Very expensive and the fix is so simple; reset the signals that must come up in a known state.

If a core doesn’t work in an ASIC it’s a bad core

IP cores are all about reuse. Certainly there are technology specific cores, but those are usually provided by the vendor. IP cores should be technology agnostic.

Richard

On 19 Sep 2021, at 18:26, m-kru @.***> wrote:



@rherveillehttps://github.com/rherveille

It is bad practice to rely on FPGA configuration to set required signals to a known state.

If a core doesn’t work in an ASIC it’s a bad core

You state highly subjective theses without providing any arguments.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/fossi-foundation/wishbone/issues/1#issuecomment-922500167, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADYKSCMOPACOIX7U2WZJFH3UCYFJTANCNFSM4E6DQ2EQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

ams commented 3 years ago

Let's keep highly subjective and personal comments like this somewhere else.