Passing an 8-bit value to a 1-bit port?
I'm using System Verilog. My top-level design file has a 1-bit output bsOut
. I'm also using a register called shift_reg
, which outputs an 8-bit number from the port dOut
. I want to do this:
module FinalTop (
input clk,
output bsOut
);
Shift_Reg shift_reg(.clk(clk), .dOut(bsOut));
I believe that Vivado/Basys3 will truncate dOut
by using only the LSB --> bsOut
, but what if I want to specify a different bit? For example, what if I want to send .dOut[7](bsOut)
? Obviously this won't work (I tried), but I don't know how to do it properly. I could make a logic [7:0] dOutTemp = dOut
, then assign bsOut = dOutTemp[7];
, but this seems clunky.
system-verilog vivado
add a comment |
I'm using System Verilog. My top-level design file has a 1-bit output bsOut
. I'm also using a register called shift_reg
, which outputs an 8-bit number from the port dOut
. I want to do this:
module FinalTop (
input clk,
output bsOut
);
Shift_Reg shift_reg(.clk(clk), .dOut(bsOut));
I believe that Vivado/Basys3 will truncate dOut
by using only the LSB --> bsOut
, but what if I want to specify a different bit? For example, what if I want to send .dOut[7](bsOut)
? Obviously this won't work (I tried), but I don't know how to do it properly. I could make a logic [7:0] dOutTemp = dOut
, then assign bsOut = dOutTemp[7];
, but this seems clunky.
system-verilog vivado
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32
add a comment |
I'm using System Verilog. My top-level design file has a 1-bit output bsOut
. I'm also using a register called shift_reg
, which outputs an 8-bit number from the port dOut
. I want to do this:
module FinalTop (
input clk,
output bsOut
);
Shift_Reg shift_reg(.clk(clk), .dOut(bsOut));
I believe that Vivado/Basys3 will truncate dOut
by using only the LSB --> bsOut
, but what if I want to specify a different bit? For example, what if I want to send .dOut[7](bsOut)
? Obviously this won't work (I tried), but I don't know how to do it properly. I could make a logic [7:0] dOutTemp = dOut
, then assign bsOut = dOutTemp[7];
, but this seems clunky.
system-verilog vivado
I'm using System Verilog. My top-level design file has a 1-bit output bsOut
. I'm also using a register called shift_reg
, which outputs an 8-bit number from the port dOut
. I want to do this:
module FinalTop (
input clk,
output bsOut
);
Shift_Reg shift_reg(.clk(clk), .dOut(bsOut));
I believe that Vivado/Basys3 will truncate dOut
by using only the LSB --> bsOut
, but what if I want to specify a different bit? For example, what if I want to send .dOut[7](bsOut)
? Obviously this won't work (I tried), but I don't know how to do it properly. I could make a logic [7:0] dOutTemp = dOut
, then assign bsOut = dOutTemp[7];
, but this seems clunky.
system-verilog vivado
system-verilog vivado
edited Nov 17 '18 at 6:02
dave_59
19.9k21537
19.9k21537
asked Nov 17 '18 at 5:27
Alex GAlex G
3903918
3903918
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32
add a comment |
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32
add a comment |
1 Answer
1
active
oldest
votes
You can use a port expression.
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
Note that .clk
is equivalent to .clk(clk)
, etc.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348525%2fpassing-an-8-bit-value-to-a-1-bit-port%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use a port expression.
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
Note that .clk
is equivalent to .clk(clk)
, etc.
add a comment |
You can use a port expression.
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
Note that .clk
is equivalent to .clk(clk)
, etc.
add a comment |
You can use a port expression.
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
Note that .clk
is equivalent to .clk(clk)
, etc.
You can use a port expression.
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
Note that .clk
is equivalent to .clk(clk)
, etc.
answered Nov 17 '18 at 6:07
dave_59dave_59
19.9k21537
19.9k21537
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348525%2fpassing-an-8-bit-value-to-a-1-bit-port%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You need to shift bits. In C, that would be d0ut >> 7
– iPirat
Nov 17 '18 at 5:32