Hardwarebeschrijvingstalen en verificatie

Als a zoals hierboven is geschreven als een ondertekende -1, werd gt 1. Welke reden is juist?

wire [7:0] a = 8'hFF;
wire gt = (a > 8'd1);
  1. AOmdat het niet als signed is gedeclareerd, is a vergeleken als de niet-ondertekende 255
  2. BOmdat in Verilog het resultaat van een vergelijking altijd 1 is
  3. COmdat 8'hFF dezelfde waarde is als 0
Antwoord en toelichting tonen

Antwoord: A. Omdat het niet als signed is gedeclareerd, is a vergeleken als de niet-ondertekende 255

Signalen in Verilog worden als niet-ondertekend behandeld tenzij signed wordt toegevoegd, dus 8'hFF is 255 en 255 > 1 is waar. Als zowel a als b worden gedeclareerd als 'wire signed [7:0]', worden ze vergeleken als de tweecomplement -1 en is het resultaat 0. Er geldt ook de regel dat als één waarde in een uitdrukking niet-ondertekend is, het geheel als niet-ondertekend wordt berekend, dus bij ondertekende berekeningen is het belangrijk de types van alle waarden gelijk te maken.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Welke combinatie van waarden van de vierwaardige logica die in Verilog-simulatie wordt gebruikt is juist?
  2. In de simulatie was de waarde van een register zonder reset eerst X. Wat wordt aangenomen dat er in een echte chip gebeurt?
  3. Als sel in de bovenstaande beschrijving X (onbepaald) is, wordt in Verilog-simulatie b voor y gekozen. Welke reden waarom deze eigenschap bij verificatie een probleem is, is juist?
  4. Welke uitspraak over de beschrijving van tri-state, dat Z (hoge impedantie) uitvoert, in HDL is juist?
  5. Welke uitspraak over de testbench die bij HDL-verificatie wordt gebruikt is juist?

Vergelijkingen bij dit onderwerp