Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17255 Discussions

Assigning individual bits

Altera_Forum
Honored Contributor II
1,346 Views

Hi all, 

 

I'm a complete newbie in Verilog, so I have a question. 

 

I have in my main Verilog file (irrelevant code stripped out): 

 

//======================================================= // This code is generated by Terasic System Builder //======================================================= module Lab2( //////////// SEG7 ////////// HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7 ); //////////// SEG7 ////////// output HEX0; output HEX1; output HEX2; output HEX3; output HEX4; output HEX5; output HEX6; output HEX7; Default u0 ( .id7seg_display_export (???) ); endmodule 

Now, Default.id7seg_display_export is declared as: 

 

output wire id7seg_display_export // id7seg_display.export 

 

My question is, how do I connect individual bits from id7seg_display_export to the different HEX outputs signals? I just can't figure it out because I don't know the syntax...
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
658 Views

That's very simple. Some examples: 

assign HEX0 = id7seg_display_export[6:0]; 

assign HEX1 = id7seg_display_export[13:7]; 

 

assign HEX2[0] = id7seg_display_export[3]; 

assign HEX2[4:1] = id7seg_display_export[12:9]; 

assign HEX2[6:5] = id7seg_display_export[20:19]; 

The last 3 above could even be companded into a single one: 

assign HEX1[6:0] = { id7seg_display_export[20:19], id7seg_display_export[12:9], id7seg_display_export[3]};
0 Kudos
Altera_Forum
Honored Contributor II
658 Views

Are you sure that works? 

For doing 

 

assign HEX2[0] = id7seg_display_export[3]; 

 

I get that id7seg_display_export is undefined. Slapping in uc, as in: 

 

assign HEX2[0] = uc.id7seg_display_export[3]; 

 

gives another error, something like cannot resolve assign id7seg_display_export (dunno if this is right anyway). 

 

BUT, I managed to get it working by using (yes, I changed the name): 

.seg7_display_export ({HEX3, HEX2, HEX1, HEX0})
0 Kudos
Altera_Forum
Honored Contributor II
658 Views

Sorry, You are right. 

I didn't notice that id7seg_display_export is actually the name of the submodule port. 

I treated it like a common signal 

 

I mean, what I wrote should apply in this case, where the same name is defined for the top level signals 

 

wire [27:0] id7seg_display_export; 

 

Default u0 ( 

.id7seg_display_export(id7seg_display_export) 

);
0 Kudos
Altera_Forum
Honored Contributor II
658 Views

Oh, right, that's another way of doing it. 

Thanks for the help!
0 Kudos
Reply